UCOSII printf TIM1

2019-08-08 13:09发布

在使用UCOSII情况下,初始化定时器1的通道1做PWM输出,使用printf,没有打印输出,不初始化就有输出
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
若然落木
1楼-- · 2019-08-08 17:38
123将321 发表于 2017-10-29 08:36
按你说的做法确实可以解决问题,不过这是为什么,另外不知道串口1的初始化放在后面会不会干扰到PWM的频率 ...

因为你用的是st的官方库,库再好,也只是bug更少了而已,所有才会更新库版本,就是优化的。这个我认为很可能就是库的一个bug,如果你愿意可以用寄存器初始化试试,使用库遇到的问题用寄存器写后能解决很多问题。
若然落木
2楼-- · 2019-08-08 18:21
你用的是串口1吗?尝试把定时器1的初始化放在串口初始化前面试试?
123将321
3楼-- · 2019-08-09 00:14
若然落木 发表于 2017-10-28 16:44
你用的是串口1吗?尝试把定时器1的初始化放在串口初始化前面试试?

按你说的做法确实可以解决问题,不过这是为什么,另外不知道串口1的初始化放在后面会不会干扰到PWM的频率,到明天用示波器观察下,谢谢你的回答
123将321
4楼-- · 2019-08-09 03:14
 精彩回答 2  元偷偷看……
275891381
5楼-- · 2019-08-09 08:56
若然落木的解决方案肯定可行
好像就是个库的bug,群里很多人问也很多人回复了,好像两个方案能解决,不过推荐方案2,编程养成良好的习惯,避免奇葩的问题

方案1:串口放到pwm(定时器其他功能也是)之后初始化
方案2:定时器函数初始化的时候最前面加上这两句
TIM_OCStructInit(&TIM_OCInitStructure);//设置缺省值,这一步最好加上
TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);//设置缺省值,这一步最好加上,
防止初始化过程中有的成员并没有赋值出现奇怪错误(用到定时器的其他结构体也类似设置缺省值)
123将321
6楼-- · 2019-08-09 12:49
275891381 发表于 2017-10-29 22:07
若然落木的解决方案肯定可行
好像就是个库的bug,群里很多人问也很多人回复了,好像两个方案能解决,不过 ...

谢谢无私奉献的你们,受教了

一周热门 更多>