新手入门
- 积分
- 16
- 金钱
- 16
- 注册时间
- 2019-9-3
- 在线时间
- 6 小时
|
- void Get_Adc_Average(u16 times)
- {
- u16 temp_val[2]={0,0};
- u8 t;
- for(t=0;t<times;t++)
- {
- temp_val[0]+=ADC_ConvertedValue[0];
- temp_val[1]+=ADC_ConvertedValue[1];
- delay_ms(5); //读取速度和采集速度,加延时可以保证不会读到同一个数
- }
- ADC_ConvertedLocalValue[0] = temp_val[0]/times;
- ADC_ConvertedLocalValue[1] = temp_val[1]/times;
- }
复制代码 开启ADC1采集两个通道,配置为12M采集速度,开启DMA传输,每次采完DMA传输到ADC_ConvertedValue,假如我要读取某一时刻的ADC_ConvertedValue值,为了消除误差,读取10个ADC_ConvertedValue然后取平均。假如我就在一个for循环里连续读10次,如上述代码,假如不加delay_ms(5)函数延时,那么是读取速度快还是采集速度快?不加延时会不会连续几次读取的都是同一个值?
|
|