因为工作需求,移植了野火无刷电机+霍尔信号的例程。
由STM32F103ZET6移植到STM32F103C8T6,在移植过程中,发现TIM4的TIMX_CRR1寄存器和TIMX_SR寄存器怎么也刷新不了。
通过查看输入PB6-PB8的ODR寄存器,发现数据有更新!
然后就是抓破脑袋,根据寄存器状态重新用STM32CUBEMX重新配置TIM4输入捕获(霍尔专用)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021060711283593.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyOTczOTYx,size_16,color_FFFFFF,t_70)
然后再查看寄存器状态,卧槽!竟然有反应。F1的定时器应该都是相同的,最后发现原例程竟然开了重映射!关键是PWM和输入捕获都开了!
怪我不好好听课,直接引用。最后把MOTOR_OCPWM1_AF_ENABLE();去除!打完收工完美转动!
STM32CUBEMX具体配置看这篇文章https://www.wpgdadatong.com/tw/blog/detail?BID=B1091