完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
由于要采集电压、电流以计算功率、阻抗等信息,STM32的同步规则模式很适合于这种情景。使用时有几点需要注意的:
1、选择正确的模式:ADC_Mode_RegSimult,即DUALMOD[3:0] = 0110,ADC2在双模式中,这些位为保留位 2、开启ADC的DMA,在双ADC模式里,为了在主数据寄存器上读取从转换数据,必须使能DMA位,即使不使用DMA传输规则通道数据。只有ADC1和ADC3能产生DMA请求。所以只需设置ADC1的DMA:ADC_DMACmd(ADC1, ENABLE); 3、ADC2的转换数据存在ADC1_DR的高半字; 4、不要在2个ADC上转换相同的通道((两个ADC在同一个通道上的采样时间不能重叠)。 5、ADC2的CR2寄存器的第20位——EXTTRIG:规则通道的外部触发转换模式必须开启(软件启动的时候也要),这样才能利用到ADC1的触发信号。不然的话,需要手动再软启动一次ADC2,例如ADC_SoftwareStartConvCmd(ADC2, ENABLE); 但是,假如你设置了这个位之后,就不需要手动软启动ADC2了,所以考虑到同步,这样比较好:
用ADC_SoftwareStartConvCmd(ADC2, ENABLE);为什么可以,一方面它也设置了EXTTRIG位,另一方面也设置了SWSTART。但我觉得先用ADC_ExternalTrigConvCmd(ADC2, ENABLE);的话,一会只要ADC1一启动,两者就同时启动了,这样更正确一点。 |
|
|
相关推荐
|
|
919 浏览 0 评论
797 浏览 0 评论
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
4560 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
3369 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2672 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-11 03:05 , Processed in 0.540026 second(s), Total 66, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖