初级会员

- 积分
- 162
- 金钱
- 162
- 注册时间
- 2017-11-4
- 在线时间
- 88 小时
|
10金钱
以前在学F103的时候,在串口程序里面用延时的时候会出现卡在延时函数那行代码的这种情况,通过一些途径,找到解决办法如图1所示。现在学F767的时候,也遇到了一样的问题。我在程序中不注释掉那行delay_ms(500);代码的时候,发现程序没法执行到 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET); 这行代码。但是我把delay_ms(500)注释掉后,中间加一行空延时,发现可以执行到 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET)这一行指令,因为 HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET)是让LED灯亮,所以可以很方便的观察到现象。说明程序就是卡死在了delay_ms(500)这一行指令中了。不知道该怎么解决?原子哥、各路大哥,有能帮着解答一下吗?好糟心啊!难道在串口程序里面没办法延时?还是要用i++这种形式来实现延时?
|
-
图2,F767遇到问题
-
图1,F103解决办法
|