OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1974|回复: 2

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

[复制链接]

29

主题

338

帖子

1

精华

金牌会员

Rank: 6Rank: 6

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


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2018-11-13
在线时间
26 小时
发表于 2018-11-27 16:13:35 | 显示全部楼层
SysTick生成的延时貌似和Hal_Delay不可同时使用,不知道楼主有没有涉及?
回复 支持 反对

使用道具 举报

29

主题

338

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1181
金钱
1181
注册时间
2018-4-13
在线时间
170 小时
 楼主| 发表于 2018-11-28 09:46:35 | 显示全部楼层
今天我把打印浮点数改为打印整数,printf("%d\r\n", 6812); 一切正常。
看来是printf()的问题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 05:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表