发新帖我要提问
12
返回列表
打印
[STM32F1]

STM32基础篇——输入捕获试验

[复制链接]
楼主: aizaixiyuanqian
手机看帖
扫描二维码
随时随地手机跟帖
21
aizaixiyuanqian|  楼主 | 2018-1-10 13:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
例程主程序
int main()
{
u32 temp;
key_init();  //按键初始化
input_init(); //输入捕获初始化
printf_init(); //printf 初始化
while(1)
{
if((TIM5CH1_CAPTURE_STA&0x80))  //成功捕获到了一次上升沿
{
temp=TIM5CH1_CAPTURE_STA&0x3f;
temp=temp*65536;  //溢出时间总和
temp=temp+TIM5CH1_CAPTURE_VAL;//得到总的高电平时间
printf("高电平持续时间为:%d us\r\n",temp);
TIM5CH1_CAPTURE_STA=0; //开启下一次捕获
}
delay_ms(10);
}
}

使用特权

评论回复
22
aizaixiyuanqian|  楼主 | 2018-1-10 13:21 | 只看该作者
通过设置自动装载值是0xffff和预分频值是71,将 TIM5_CH1 的捕获计数器设计为 1us 计数一次,并设置重装载值为最大,所以我们的捕获时间精度为 1us。主函数通过 TIM5CH1_CAPTURE_STA 的第 7 位,来判断有没有成功捕获到一次高电平,如果成功捕获,则将高电平时间通过串口输出到电脑。通过按键 K_UP 按下后输出对应的捕获时间。

使用特权

评论回复
23
aizaixiyuanqian|  楼主 | 2018-1-10 13:22 | 只看该作者
程序下载进去后,打开串口,对 DTR 前进行勾选,然后在取消。再通过发送字符即可以显示。


使用特权

评论回复
24
aizaixiyuanqian|  楼主 | 2018-1-10 13:22 | 只看该作者
本次的定时器捕获就到这里了哈

使用特权

评论回复
25
mmuuss586| | 2018-1-10 13:45 | 只看该作者
感谢分享;

使用特权

评论回复
26
w1a2n3g4| | 2018-1-11 12:30 | 只看该作者
学习

使用特权

评论回复
27
wangluyao0106| | 2018-4-24 10:17 | 只看该作者
有没有输入捕获测量pwm频率的程序呀,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则