STM32
直播中

无人岛

9年用户 878经验值
擅长:嵌入式技术 制造/封装 控制/MCU
私信 关注
[问答]

想用STM32F373的三个SDADC同步采集电压信号,DMA是工作在什么模式?怎么配置?

我想用STM32F373的三个SDADC同步采集电压信号,请问如果要搭配DMA工作,DMA是工作在什么模式?怎么配置?(没有看到像F4系列的三重ADC采样的工作模式解释)
最好是有三个SDADC同步采样+DMA搬运的例程,谢谢了!

回帖(1)

南中南

2024-3-28 17:14:53
在STM32F373系列中,DMA可以在三个SDADC之间进行数据传输,并且可以进行多重模式配置。以下是为三个SDADC配置DMA进行同步采集的步骤:

1. 配置SDADC:
   - 使用SDADC_Init()函数初始化所有SDADC。确保SDADC的所有设置都一致,包括参考电压、触发源、数据对齐方式等。
   - 使用SDADC_ChannelConfig()函数配置每个SDADC的通道。确保所有SDADC的通道设置都一致,包括输入波特率、输入模式等。
   - 使用SDADC_Cmd()函数使能所有SDADC。
   - 使用SDADC_DMARequestModeConfig()函数配置SDADC的DMA请求模式为持续模式。

2. 配置DMA:
   - 使用RCC_AHBPeriphClockCmd()函数使能DMA时钟。
   - 使用DMA_Init()函数初始化DMA。设置DMA通道、数据传输方向、源地址、目的地址、数据长度等。
   - 使用DMA_Cmd()函数使能DMA。

3. 启动采样:
   - 首先使用DMA_ITConfig()函数配置DMA传输完成中断。
   - 使用SDADC_SoftwareStartConv()函数开始所有SDADC的连续转换。

4. 处理DMA传输完成中断:
   - 在DMA传输完成中断中,使用DMA_GetITStatus()函数判断是哪个DMA通道的传输完成,以进行相应的处理。
   - 在中断处理函数中可以将采集到的数据存储到缓冲区,或者执行其他的操作。

需要注意的是,在DMA传输过程中,需要根据需要调整DMA的优先级和通道顺序。

对于具体的代码示例,可以参考ST官方提供的STM32F373芯片的固件库,其中包含了完整的SDADC和DMA的配置和使用示例。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分