2019-07-20 22:46发布
nashui_sx 发表于 2019-7-12 09:48 定时器触发adc采样然后dma读取,这样能固定采样频率 你要是不固定采样频率,dma读取意义我觉得不大, ...
最多设置5个标签!
//获取ADC值
u16 Get_ADC(u8 times)
{
u8 i=0;
u16 temp=0;
u16 avg=0;
for(i=0;i<times;i++){
ADC_SoftwareStartConvCmd(ADC1,ENABLE); //软件启动ADC
ADC_DMACmd(ADC1,ENABLE);//开始ADC_DMA传输
if(DMA_GetFlagStatus(DMA1_FLAG_TC1)!=RESET)//等待通道1传输完成
{
delay_ms(10);
temp+=ADC_ConvertedValue;
}
DMA_ClearFlag(DMA1_FLAG_TC1);//清除通道1传输完成标志
}
avg=temp/times;
return (float)avg*(3.3/4096);
}
请问这样使用可以吗,ADC为单通道单次转换。这个函数在主函数循环里面被调用
一周热门 更多>