这几天在调试Stm32F407AD部分,需要对两路信号进行采样处理,还是运用网上推荐的DMA方式进行数据存储传送。
在配饰ADC和DMA中对AD部分有了一些深入的了解。F407AD有规格转换组和注入组,感觉两种方式没有多大的区别,暂时只用到规则组。在配饰AD时,只需要配置通道数和通道的转换顺序即可,相应的通道在芯片中已经确定,比喻PA0为通道1,PC0为通道10,这些都已经确定。
ADC_InitStructure.ADC_NbrOfConversion = 2; 总通道数,
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_3Cycles);
ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 2, ADC_SampleTime_3Cycles); 设置的两路通道转换顺序, 管教PA0和PC0两路,通道0先,通道11后转换。根据硬件电路配置相应的通道。
ADC出发方式可以设置软件触发和外部定时器触发,我运用了Tim8的CC1进行触发,Tim8的配置跟普通定时器相同,配置CC1。ADC_InitStructure.ADC_ExternalTrigConvEdge =ADC_ExternalTrigConvEdge_Rising ;选择一种触发方式。
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T8_CC1; 可以是其他的定时触发。
配置扫描模式和循环模式。
因为要两路信号不停的进行采样,需要利用DMA进行数据传输,如果利用EOC中断可能会导致数据的错误。
在DMA进行配置时, 内存外设的大小结构要