你好 ;
我正在尝试配置
ADC1和
ADC2模块以通过
tim1_trgo2触发它们以启动双重同步常规转换,但直到现在才成功。
在我尝试这样做之前,我验证了我可以使用主模块的“
ADSTART ”位通过软件触发器成功触发这些模块并获得结果。
这是配置方案;
ADC1配置为仅转换 1 个通道 (
ADC1_IN1 ) ,
ADC2也配置为转换一个通道 (
ADC2_IN2 ) ,两个通道的“
常规通道序列长度”设置为
0,众所周知,两个通道都是快速 ADC 通道,而不是其中之一那些慢的,所以转换持续时间是相等的
两个通道都配置为在
硬件过采样器模式下进行转换,
128次转换并将结果移位
7,启用
ROVSE。
从
RCC_CCIPR中选择ADC 时钟作为“
系统时钟选择为ADC1/2 时钟”。ADC_CCR,CKMODE设置为“
00 ”(
异步时钟模式),预分频器使用
ADC_CCR_PRESC位设置为
6 。
根据我上面解释的方案,使用master 的
ADSTART位一切正常。
但是当我添加代码时
EXTSEL = 10(
tim1_trgo2在“
10 ”线上相互连接,用于
ADC1/2常规转换),
EXTEN=1(上升沿)到 ADC1 和 ADC2
和
TIM1 , CR2 , MMS2= [0010]
更新 - 更新事件被选为触发输出 (tim_trgo2)。例如,一个
然后主定时器可以用作从定时器的预分频器。
我的 ADC 模块根本没有被触发……我几乎用勘误表阅读了整个数据表,但找不到让它工作的方法。定时器也被启用,并且通过引脚切换上的范围观察周期性定时器中断。(所以我们知道发生了更新事件)