有谁有关于stm8的ADC 的程序,给我发个
1个回答
2013-01-09
展开全部
ADC1的基本的单次转换
void InitADC()
{
ADC1->CR1 = 0x20; //分频系数为4 单次转换模式 先不启动ADC转换
ADC1->CR2 = 0x08; //非外部触发 数据右对齐 禁止扫描模式
ADC1->CSR = 0x03; //禁止转换结束中断 设置转换通道为AIN3
ADC1->TDRL|= 0x08; //禁止AIN3施密特触发器功能
ADC1->CR1 |= 0x01; //第一次写1是从低功耗模式唤醒
}
unsigned int GET_AD()
{
unsigned int temph=0;
unsigned char templ=0;
ADC1->CR1 |= 0x01; //启动AD转换
while(!(ADC1->CSR&0x80)); //等待转换结束
ADC1->CSR &= ~0x80; //清除转换结束标志
templ = ADC1->DRL;
temph = ADC1->DRH; //读出AD转换结果
temph = ConTOINT(temph,templ);
return(temph);
}
void InitADC()
{
ADC1->CR1 = 0x20; //分频系数为4 单次转换模式 先不启动ADC转换
ADC1->CR2 = 0x08; //非外部触发 数据右对齐 禁止扫描模式
ADC1->CSR = 0x03; //禁止转换结束中断 设置转换通道为AIN3
ADC1->TDRL|= 0x08; //禁止AIN3施密特触发器功能
ADC1->CR1 |= 0x01; //第一次写1是从低功耗模式唤醒
}
unsigned int GET_AD()
{
unsigned int temph=0;
unsigned char templ=0;
ADC1->CR1 |= 0x01; //启动AD转换
while(!(ADC1->CSR&0x80)); //等待转换结束
ADC1->CSR &= ~0x80; //清除转换结束标志
templ = ADC1->DRL;
temph = ADC1->DRH; //读出AD转换结果
temph = ConTOINT(temph,templ);
return(temph);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32是一种由意法半导体(STMicroelectronics)公司设计和生产的单片机系列,广泛用于嵌入式系统、物联网(IoT)设备、汽车电子、工业自动化等领域。STM32具有以下优点:1. 低功耗:STM32单片机通常具有较低的功耗,...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询