金牌会员
 
- 积分
- 1633
- 金钱
- 1633
- 注册时间
- 2014-7-11
- 在线时间
- 287 小时
|
1金钱
STM32为什么一定要用DMA呢,顺序转换为什么得不到数据呢,求解
u16 Get_Adc(u8 ch)
{
//设置转换序列
ADC1->SQR3&=0XFFFFFFE0;//规则序列1 通道ch
ADC1->SQR3|=ch;
ADC1->CR2|=1<<22; //启动规则转换通道
while(!(ADC1->SR&1<<1));//等待转换结束
return ADC1->DR; //返回adc值
}
//获取通道ch的转换值,取times次,然后平均
//ch:通道编号
//times:获取次数
//返回值:通道ch的times次转换结果平均值
u16 Get_Adc_Average(u8 ch,u8 times)
{
u32 temp_val=0;
u8 t;
for(t=0;t<times;t++)
{
temp_val+=Get_Adc(ch);
delay_ms(5);
}
return temp_val/times;
}
adcvalue1=Get_Adc_Average(1,10);
adcvalue2=Get_Adc_Average(2,10);
adcvalue3=Get_Adc_Average(3,10);
adcvalue4=Get_Adc_Average(4,10);
这样为什么不行?
|
|