赞
踩
今天给大家带来STM32输入捕获应该配置的代码编写,我用的是STM32G431的开发板,之前参加蓝桥杯的板子,如图
首先查看数据手册定时器有哪些引脚支持pwm输出和输入捕获。采用的PA1的TIM2_CH2做为PWM输出,PA7的TIM3_CH2作为输入捕获,
接着对cubeMX进行配置如图,先设置pwm输出,先勾选PA1引脚为TIM2_CH2,内部时钟,通道二设置成输出PWM模式,预分配是80-1,(我板子的主频是80M,不同板子不一样自行设置),自动重装置值是1000-1,pulse设置为400,占空比设置成40%,(80 000 000/80)/1000=1000hz
然后进行配置输入捕获,先勾选PA7的TIM3_CH2,同样也是内部时钟,通道二设置成输入捕获模式,设置预分配是80-1(不同板子不一样自行设置),自动重装置值65535,设置上升沿触发,这里需要打开中断,在NVC settings中开中断,基本就配置好点击生成代码。
先编写定时器中断函数如图,上升沿捕获一次,下降沿捕获一次,然后再次捕获一次上升沿,代码有注释很详细。
编写一个捕获的函数,用来 处理和计算捕获的数值如图
在mian.c中打开定时器,最可以将数据打印到LCD上进行显示(这里没写LCD 的代码),运行下载到板子,同时需要用杜邦线将PA1和PA7引脚相连如图所示。
得到频率1000hz,占空比40%(一点点不准哈哈哈)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。