昨天遇到莫名其妙的打印问题,今天毫无征兆地正常了,心里发毛。

2019-07-21 07:25发布

很简单的程序,1s定时中断,中断里面printf()一个常数,printf("<>ExeTime=%f ", (float)1862); 主程序里面有软定时器,每隔500ms执行一次查询,我去除了软定时器的任何多余操作,只作复位重启定时,以便调试问题所在。
现象是:1s定时器正常打印3次,然后不正常打印3次为0.0000的0数据,之后有正常打印3次,又打印3次0......如此循环。
调整定时时间,可能会出现正常1次不正常多次的情况。
注释掉软定时器,只使用硬件定时器,结果正常。
可是软定时器使用的是SysTick,而1s定时器使用TIM6基本定时器,并无冲突,除了有优先级外。
我又调整优先级,还是如此。
崩溃了。睡了。
今天刚才无事又调试,一开始程序和昨天一样,没有改动,还是如昨天一样的症状。
我又在主程序里面修改了下,下载,正常了。
我现在还没有仔细看看我究竟改了些什么。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
2018Dog
1楼-- · 2019-07-21 12:53
 精彩回答 2  元偷偷看……
xiatianyun
2楼-- · 2019-07-21 15:46
今天我把打印浮点数改为打印整数,printf("%d ", 6812); 一切正常。
看来是printf()的问题。

一周热门 更多>