一,STM8S 的 ADC 支持 5 种转换模式:单次模式、连续模式、带缓冲的连续模式、单次扫描模式、连
续扫描模式。
1单次模式
单次模式,STM8S 的 ADC 只在选定的通道上进行一次 ADC 转换,转换的结果存储在 ADC_DR 寄
存器中。
void ADC_Init(void)
{
ADC1_DeInit();//ADC 相关寄存器恢复默认值
//初始化 ADC:单次转换/通道 8/时钟分频/关闭事件/数据右对齐/使能施密特触发器
ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_8, ADC1_PRESSEL_FCPU_D2,
ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_ALL,
DISABLE);
ADC1_Cmd(ENABLE);//使能 ADC
}
void main( void )
{
u16value=0;
adc_init();
while(1)
{
ADC1_StartConversion();//开启一次转换一次
while(!ADC1_GetFlagStatus(ADC1_FLAG_EOC));//等待转换完成
ADC1_ClearFlag(ADC1_FLAG_EOC);//软件清除
value=(u16)ADC1_GetConversionValue();//从ADC_DR中读取ADC值
}
}
}
**2连续模式
连续模式,ADC 在结束一次转换之后立刻自动进行下一次转换。连续模式时,转换结果存储在 ADC_DR 寄存器**