初级会员

- 积分
- 186
- 金钱
- 186
- 注册时间
- 2016-11-1
- 在线时间
- 39 小时
|
1金钱
本帖最后由 竹影行风 于 2020-6-1 20:41 编辑
我们都知道,可以勾选“Reset and Run”,用keil烧录完之后,程序直接自动开始运行。
有如下代码,逻辑很简单,在while(1)主循环里,每隔1s钟发送一串数据。 while(1)
{
HAL_UART_Transmit(&huart2, sendbuff, 10, 1000);
HAL_Delay(1000);
}
现在问题是,用STLink烧录后,程序自动运行,发现并没有延时1s钟,而是在不停的发送。当重新上电,程序才按照预想的延时1S在运行,此后再重新上电,程序都是正常的。为什么?
用的是F411VE Discovery官方的开发板,用的是上面自带的STLink烧录。
代码开到了最高优先等级level3,开始是怀疑优化等级太高,把HAL_Delay优化掉了,但这没法解释重新上电延时正常的现象。
|
|