[STM32F1] STM32 多路ADC 定时触发

[复制链接]
800|15
 楼主| stly 发表于 2021-7-3 08:49 | 显示全部楼层 |阅读模式
实现的目的是,100us循环点亮6个LED,每次只有一个亮,在LED亮的时候开启对应对通道的ADC采集数据(每个LED对应一路ADC,开启LED后,ADC的电压会根据环境变化而变化)
huangchui 发表于 2021-7-3 08:52 | 显示全部楼层

你有什么打算呢?或者你想知道什么?
 楼主| stly 发表于 2021-7-3 08:55 | 显示全部楼层
我用定时器触发LED点亮,同时触发ADC采样,这样在初始化的时候就初始化6路ADC,用DMA中断来收集数据,这样做就是要需要收集6路的ADC数据。我在根据需要采集其中的一路
             这样的做法就是会收集很多无用数据。
 楼主| stly 发表于 2021-7-3 09:00 | 显示全部楼层
就是关于DMA中断来的时间问题。如开启6路ADC,缓存BUFF为20*6,例如ADC采样频率239.5,这样第一次DMA中断来的时间大概在2520us,这个时间是正确的。但是如果第二次                     DMA中断很快就来了。我理解是DMA也是先进先出的。ADC转换完一次就来一次DMA中断。
 楼主| stly 发表于 2021-7-3 09:02 | 显示全部楼层
配置一路ADC
llljh 发表于 2021-7-3 09:04 | 显示全部楼层
每次定时器中断来了点亮LED后  切换下一路ADC  这样不知是否可行
xxrs 发表于 2021-7-3 09:06 | 显示全部楼层
这样就是要频繁配置ADC。
jiajs 发表于 2021-7-3 09:08 | 显示全部楼层
你可以通过定时器触发,ADC配置在间断触发模式
yszong 发表于 2021-7-3 09:11 | 显示全部楼层
每触发一次就转换一个ADC通道。
dingy 发表于 2021-7-3 09:14 | 显示全部楼层
这样的话 让各路ADC结果放在固定的内存地址
heweibig 发表于 2021-7-3 09:16 | 显示全部楼层
一轮6路转换完成后产生DMA传输完成中断
wyjie 发表于 2021-7-3 09:17 | 显示全部楼层
你按需提取结果。
 楼主| stly 发表于 2021-7-3 09:19 | 显示全部楼层
不用dma也可以吧
dengdc 发表于 2021-7-3 09:21 | 显示全部楼层
可以自己试一下
dingy 发表于 2021-7-3 09:23 | 显示全部楼层
我也想试试
 楼主| stly 发表于 2021-7-3 09:25 | 显示全部楼层

好的,我明天去单位试一下,多谢各位大侠了哈        
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部