完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
想用CUBE配置然后用HAL库实现F407 3ADC交替采样实现7.2MSPS采样率,网上查了很多资料,3adc交替采样的资料很少,有用寄存器配置的,但是用HAL库的基本上没有找到,只能自己摸索。
首先是Pinout,值得注意的是3ADC 交替通常用到一样的通道,我用的是0通道。 然后是时钟的配置ADC最快时钟是36MHz,所以系统最快只能在144MHz,要做相应的更改 然后是ADC设置,这里面要选择模式是Triple interleaved Mode, DMA mode 2, delay设置为5cycle,ADC采样3cycle,Clock 要选择div2,这样能才能达到最快速度。 ADC2,3 配置相类似就略过 然后是DMA配置,只需要配置ADC1的DMA就可以了。 长度要选WORD, mode注意了我选的是Normal,因为选了circule 之后数据不对,估计是中断时时候数据还没有处理完数据就已经被覆盖了。没有细究。 然后主程序里面添加以下关键代码 HAL_ADC_Start(&hadc3); HAL_ADC_Start(&hadc2); HAL_ADCEx_MultiModeStart_DMA(&hadc1,(uint32_t *)ADC123_Buff, 1024); DMA中断处理数据,注意数据的高低字节,一个WORD里面有2个ADC数据。 void DMA2_Stream0_IRQHandler(void) { if(DMA2-》LISR & 0x00000010) //完成中断 { DMA2-》LIFCR |= 0x00000010; //clear flag //data processing.。. } } 但是这样的话DMA搬一次之后就停止了,尝试过很多种方法,函数都无法让DMA重新传输,最终发现通过反初始化ADC1再初始化ADC1,然后开ADC2,ADC3,然后开交替ADC可以实现,这样就可以等数据处理完了之后开始下一次的DMA 传输。 通过对信号发生器100khz信号的采样测试,证实能达到7.2MSPS,丝毫不差!!! |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1934 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1710 浏览 1 评论
1187 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
785 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1752 浏览 2 评论
1992浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
827浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
281浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
638浏览 3评论
645浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-3 11:42 , Processed in 1.049014 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号