求stm8 AD单次扫描程序,麻烦给加注释,要调试出来能用的!!
1个回答
展开全部
*******************************************************************************
function : STM8的AD初始化
*******************************************************************************/
void InitAD(void)
{
ADC2->CR1 = 0x40; //ADC时钟=主时钟/8=2MHZ,转换模式=单次,禁止ADC转换
ADC2->CR2 = 0x00; //A/D结果数据左对齐
//ADC2->CSR = 0x08;
ADC2->CR1 |= 0x01; //唤醒
ADC2->CR1 |= 0x01;
}
/*******************************************************************************
function : 读取STM8的AD值
*******************************************************************************/
unsigned char ReadAD(unsigned char channel)
{
unsigned char x=0;
ADC2->CSR = channel; //通道选择
ADC2->CR1 |= 0x01;
while((ADC2->CSR & 0x80) == 0x00);
ADC2->CSR &= 0x7f;
x = ADC2->DRH;
return (x);
}
刚刚调试完,调用就行
function : STM8的AD初始化
*******************************************************************************/
void InitAD(void)
{
ADC2->CR1 = 0x40; //ADC时钟=主时钟/8=2MHZ,转换模式=单次,禁止ADC转换
ADC2->CR2 = 0x00; //A/D结果数据左对齐
//ADC2->CSR = 0x08;
ADC2->CR1 |= 0x01; //唤醒
ADC2->CR1 |= 0x01;
}
/*******************************************************************************
function : 读取STM8的AD值
*******************************************************************************/
unsigned char ReadAD(unsigned char channel)
{
unsigned char x=0;
ADC2->CSR = channel; //通道选择
ADC2->CR1 |= 0x01;
while((ADC2->CSR & 0x80) == 0x00);
ADC2->CSR &= 0x7f;
x = ADC2->DRH;
return (x);
}
刚刚调试完,调用就行
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询