如题,项目中要对一个接触面的压力进行采集,应用传感器阵列,需要应用模拟开关对行进行切换和扫描,这样的程序该如何设计?自己的想法是ADC采集+DMA传输,DMA传输完一行的数据后在DMA中断里实现通道切换?不知这样可行不?还有一种就是TIM+ADC+DMA,应用TIM来触发ADC,控制ADC的采样率,
ADC_RegularChannelConfig(ADC1, ADC_Channel_9,10, ADC_SampleTime_480Cycles);这句话是不是控制ADC的采样率,竟然已经有了,那为啥还有可以应用TIM定时器来控制其采样率?
在TIM来控制ADC的采样率时,标注的两种触发方式有什么区别?
/* ADC1 regular channel 12 configuration ************************************/
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
//ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//á¬DøÄ£ê½êÇê2Ã′¿
ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_Rising;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T2_TRGO;//_TRGO定时器触发???
// ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T2_CC2;//与上者有什么区别?
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfConversion =10;
ADC_Init(ADC1, &ADC_InitStructure);
// /* Enable ADC1 DMA */
// ADC_DMACmd(ADC1, ENABLE);
此帖出自
小平头技术问答
CH1采样率配置为100Khz,CH2采样率配置为50Khz,TIM1的溢出中断作为触发源,然后配置溢出频率为10HZ,即每秒中单片机会读取10次CH1,CH2的数据。
ADC_SampleTime_480Cycles 这个与采样率有关,
ADC_ExternalTrigConv_T2_TRGO这个与你读取数据的频率有关。
中断源配置见图。
一周热门 更多>