完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、PWM波形的产生;
使用定时器2 (TIM2)PA5端口输出。 通过配置 TIM_TimeBaseStructure.TIM_Period= 1000 - 1; TIM_TimeBaseStructure.TIM_Prescaler= 9000 - 1; TIM_OCInitStructure.TIM_Pulse= 300 ; 三个参数,TIM_Prescaler控制计数频率,此处9000即计数频率为90M/9000 = 10Khz,即计数一次的时间为0.1ms,TIM_Period控制PWM波周期时间,此处1000即PWM波的周期为1000*0.1ms = 100ms;TIM_Pulse控制有效电平时间,此处300即有效电平时间为300*0.1ms=30ms;调用初始化程序,上点即产生PWM波信号。 二、PWM波占空比的测量: 捕获输入通过定时器5(TIM5)通道二PA1端口; 初始化函数同课堂使用的函数,此处略写。 下面详写捕获中断服务函数。 定义五个变量 TIM5CH1_CAPTURE_STA 存放输入捕获状态 TIM5CH1_CAPTURE_VAL存放输入捕获值(TIM2/TIM5是32位) CATCH2 存放第一次触发中断到第二次触发中断的时间; CATCH3 存放第二次触发中断到第三次触发中断的时间; okflag 捕获结束标志位; 捕获原理:通过获取第一次触发中断到第二次触发中断的时间,和第二次到第三次触发的时间,两次时间求和即为总时间,即周期,然后用 (前文产生PWM波使用的是高电平有效); 一个成功的捕获周期顺序如上图标识1-2-3所示: 过程1:原本初始化之后,该中断为下降沿触发,所以当检测到有下降沿时进入到该中断服务函数,此时 if(TIM5CH1_CAPTURE_STA & 0x80) if(TIM5CH1_CAPTURE_STA&0X40) 以上两个if均不成立,所以程序直接进入最后一个else中,先进行清空操作,然后把STA标志位次高位置1,表示捕获到了第一次,捕获了一个下降沿,初始化定时器5(TIM5),然后开启定时器,将中断捕获触发信号改为上升沿触发,下一次为上升沿触发; 过程2:第二次进入该中断服务函数时 if(TIM5CH1_CAPTURE_STA&0X40) 成立,进入第二个阶段,将标志位STA最高位置1,表示捕获完第二次,将当前时间存入全局变量:CATCH2中,初始化定时器5(TIM5),然后开启定时器,将中断捕获触发信号改为下降沿触发,下一次为下降沿触发。 过程3:第三次进入该中断服务函数时: if(TIM5CH1_CAPTURE_STA & 0x80) 成立,进入第三阶段,获取当前定时器时间,放入全局变量CATCH3,即第二次捕获到第三次捕获时间间隔,即高电平时间,将全局标志位okflag置1,通知main函数接下来可以打印到串口了。 main 函数中新建变量Comp存放占空比,total存放CATCH2+CATCH3即总时间,周期。用高电平时间CATCH3/total即占空比。 三、运行结果: 测出占空比为29%,与实际值在误差允许范围内近似相等,程序正确。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1621 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1546 浏览 1 评论
980 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
686 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1599 浏览 2 评论
1867浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
650浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
518浏览 3评论
536浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
506浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 05:16 , Processed in 0.767613 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号