我按照教学进行了跑马灯实验,成功了,到现在只要一开机就闪,想请教友友们怎么结束,回到最开始那个可以触屏的屏幕,还有好多小程序。

我按照教学进行了跑马灯实验,成功了,到现在只要一开机就闪,想请教友友们怎么结束,回到最开始那个可以触屏的屏幕,还有好多小程序。

关注引自免费微信小程序:皆我百晓生
要关闭STM32上的跑马灯实验并恢复到初始状态,你需要修改你的程序代码,使其在初始化阶段不再执行闪烁功能,或者添加一个控制流程来停止闪烁。由于你没有提供具体的代码,我将为你提供一个通用的步骤和示例代码片段。
首先,确认你的主循环(通常在main()函数中)中有一个条件判断,用于控制是否执行跑马灯的循环。例如,你可以定义一个全局布尔变量,用来作为开关,当这个变量为真时,执行跑马灯。
这里是一个简单的伪代码示例,展示了如何实现这一逻辑:
#include "stm32f1xx_hal.h" // 添加必要的头文件
// 假设这是一个全局变量,用于控制跑马灯是否运行
bool run_marquee = true;
int main(void)
{
HAL_Init(); // 初始化HAL库
SystemClock_Config(); // 设置系统时钟
// 其他初始化代码...
while (1)
{
if (run_marquee)
{
// 跑马灯代码块
for (uint8_t i = 0; i < NUM_LEDS; ++i)
{
GPIO_SetBits(GPIOD, LED_PORT[i]); // 点亮当前LED
HAL_Delay(MARQUEE_DELAY); // 延迟
GPIO_ResetBits(GPIOD, LED_PORT[i]); // 关闭当前LED
}
}
// 检查是否有停止信号,比如按键输入或者其他中断
if (CheckStopSignal())
{
run_marquee = false;
}
// 其他应用程序代码...
}
}
// 假设这是检查停止信号的函数
bool CheckStopSignal()
{
// 根据实际情况编写代码,可能是读取按键值、检查串口数据等
return false; // 返回false表示没有检测到停止信号
}
根据你的硬件配置,你需要找到一种方法来触发CheckStopSignal()函数返回true,这样就可以退出跑马灯循环。这可能涉及到读取用户输入(如触摸屏或按钮),也可能涉及通过串口接收特定命令。你需要根据你的具体项目需求来实现这部分代码。
如果你的代码已经存在,只需要按照上述思路调整,找到相应的部分并添加控制流程即可。如果你需要更详细的指导,请提供你的现有代码,以便我能给出更精确的建议。