完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用定时器触发ADC采样PWM正脉冲时刻的负载电压电流,触发ADC的定时器用的就是产生PWM的定时器,设置为上升沿触发,测试发现每个PWM周期内ADC被触发了两次,一次是PWM上升沿的时候,另一次是PWM低电平的时候,不知道为什么每个PWM周期内会触发第二次采样?
此外,如何确保ADC采样到PWM正脉冲的中间时刻呢? 测试波形CH1: 定时器产生的其中一路PWM波形(两路PWM交替开启) CH2: ADC采样完成DMA中断函数-连续反转GPIO输出的波形 配置如下: 定时器4:产生两路PWM信号驱动负载,同时将输出触发设置为 Update Event触发ADC采样 ADC: 三个通道连续采样,由定时器4的上升沿触发,DMA循环模式搬运采样结果到内存-开启DMA中断 DMA中断:连续反转GPIO,便于用示波器观测采样时机 |
|
相关推荐
2个回答
|
|
DMA 通常会有传输一半中断,和传输完成中断。
通常比较合适的做法是将代码放在完成中断的回调函数里。 所以放在 IRQhandler 里面很可能执行了两次。 不妨调试看看是不是这个原因。 |
|
|
|
根据您的描述,您的STM32L151定时器在PWM周期内触发ADC采样两次,一次在PWM上升沿,另一次在PWM低电平。这可能是由于以下几个原因:
1. 定时器配置问题:请检查定时器的配置,确保它只在一个PWM周期内触发一次ADC采样。检查定时器的预分频器、自动重载寄存器和捕获/比较模式寄存器的设置。 2. ADC触发源设置问题:请检查ADC的触发源设置,确保它是正确配置为定时器触发。在ADC的配置寄存器中,设置正确的触发源和触发边缘。 3. DMA中断问题:您提到使用DMA中断函数来反转GPIO输出。请检查DMA中断函数的实现,确保它不会意外地触发额外的ADC采样。 为了确保ADC采样到PWM正脉冲的中间时刻,您可以尝试以下方法: 1. 调整定时器的捕获/比较模式寄存器,以确保ADC在PWM正脉冲的中间时刻触发。 2. 使用定时器的输入捕获功能来测量PWM信号的周期和占空比,然后根据这些信息计算PWM正脉冲的中间时刻,并在该时刻触发ADC采样。 3. 如果可能,使用另一个定时器来生成一个与PWM正脉冲中间时刻同步的触发信号,然后将该触发信号用作ADC的触发源。 最后,请确保您的硬件连接和软件实现都是正确的,以避免意外的触发和采样。希望这些建议能帮助您解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 19:25 , Processed in 1.052534 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号