在线时间0 小时
UID2084928
ST金币0
蝴蝶豆0
注册时间2014-4-10
新手上路
- 最后登录
- 1970-1-1
|
a0a.1 0b0c
先用到STM8L151芯片 ,有21路AD转换,在0V输入时,每路的AD转换值也有1540,Vref+链接的是VCC电源端,找了好久不知道什么原因,请高手支招。谢谢!下面是代码:
void ADCinit(void)
{
ADC1_CR1 = 0x00;
ADC1_CR2 = 0x02;//0x02 0~23通道AD16分频寄存器
ADC1_SR = 0x00;
ADC1_TRIGR1 = 0x00;
ADC1_TRIGR2 = 0xff;//禁止AIN16~AIN23施密特触发 ADC1_TRIGR3 = 0xff;//禁止AIN8~AIN15施密特触发
ADC1_TRIGR4 = 0xf8;//禁止AIN3~AIN7施密特触发
ADC1_SQR1 = 0x80;//禁用DMA模块
ADC1_SQR2 = 0x00;
ADC1_SQR3 = 0x00;
ADC1_SQR4 = 0x08;//
ADC1_CR1 |= 0x01;//使能ADC
Delay_us(20);
ADC1_CR1 |= 0x02;//启动ADC
}
void ADConvert(void)
{
unsigned int ADCValue=0;
if(!(ADC1_SR&0x01))return;
ADC1_SR &= 0xfe;//清除转换标志
//ADCValue = ADC1_DRL;
<span style="color: rgb(34, 34, 34); font-family: sans-serif; font-size: 14px; line-height: 21px; background-color: rgb(238, 238, 238); "> //ADCValue |= ADC1_DRH |
|