您现在的位置: 主页 > MCU > 单片机技术应用 > STM32 定时器输入捕获注意点 -
本文所属标签:
为本文创立个标签吧:

STM32 定时器输入捕获注意点 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]使用的是stm32f103rct6.最近在写一个单定时器捕获4路pwm波的程序,那就必须在中断函数中改变检测边沿,通过手动记录捕获值来手动计算pwm的频率和脉宽值。网上也有很多相关程序,但是我在写的时候却碰到了一个对于初学

使用的是stm32f103rct6.

本文引用地址: http://www.21ic.com/app/mcu/201807/780684.htm

最近在写一个单定时器捕获4路pwm波的程序,那就必须在中断函数中改变检测边沿,通过手动记录捕获值来手动计算pwm的频率和脉宽值。

网上也有很多相关程序,但是我在写的时候却碰到了一个对于初学者来说非常不起眼的问题,导致结果怎么都不对:

如图中所示,我正在用TIM4_CH1,因为看见其他的结构体都是自己定义一边再使用的,于是我将‘TIM_TypeDef’这个结构体也自己定义了一个对象‘TIM4_Type’然后就发现结果不对。

后来仔细分析后发现这个结构体已在stm32f10x.h中有了对象实例:TIM4。并且这个TIM4所在的地方正是那些寄存器所处的地方,而我自己定义的对象‘TIM4_Type’是出于用户内存区,所以不论怎么操作‘TIM4_Type’都不能得到正确的结果。

后来去V3.5的官方手册看了下,发现那些‘xxx_TypeDef’的结构体都在stm32f10x.h有着自己的对象申明,都有自己特定的内存地址,也就是说这一类的结构体都不需要自己定义,而其他种类的由于没有特定的内存地址,故需要自己定义后才能操作。





              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > STM32 定时器输入捕获注意点 -
 

"STM32 定时器输入捕获注意点 -"的相关文章

网站地图

围观()