[STM32F1] stm32高级定时器的一些奇怪的现象,无法解释,欢迎讨论

[复制链接]
1545|2
 楼主| 摩天轮1111 发表于 2015-12-20 00:01 | 显示全部楼层 |阅读模式
如标题所示,我最近在用tim8定时器的时候出现了很怪异的事情,查了整整一天才发现就只是顺序的问题,但是实在费解,感觉不该出现这样的事情,
情况我描述一下,用的tim8输出pwm,tim8配置的时候通道用的是ch1,ch2,ch3,pc6.7.8,不存在和spi1重合的情况,然后函数写法如下图
捕获.JPG
捕获2.JPG
将tim8的配置函数TIM8_Configuration(1, 1800, 0); 放在第1幅图所示位置,延时函数delay_us(500)必须放在TLE5012B_Init()里面最后,tim8才有pwm输出,否则,如图示放置延时函数,或者把printf前面注释去掉,都会导致不能输出pwm。但是如果改成第二幅图上这样的配置顺序,输出pwm就很正常了,这个是为什么,有什么能解释一下吗?好诡异
2012dove 发表于 2016-2-12 00:00 | 显示全部楼层
最好把声明,定义这一类的东西放在开头,否则编译器容易出错
airwill 发表于 2016-2-14 13:37 | 显示全部楼层
这可能是初始化代码中部分函数配置寄存器时出现冲突引起的. 每一个功能都会设置一系列的寄存器, 面对复杂的设置, 难免出现相互的冲突, 可以详细看一下函数的实现过程.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

224

帖子

15

粉丝
快速回复 在线客服 返回列表 返回顶部