做了一个stm8的一个测量电压电流的项目,发现adc通道通过一个10k电阻连接VCC,的时候ADC数据出来都是只有200多,按理说,10位adc应该出来1000多才对,由于adc出来的数据是十六位的,怀疑是串口发送数据的时候数据位数不对。于是改为
uint16_t dat_tmp = 0;
// ADC_conf(4);
// dat_tmp = ADC_GetConversionValue();
// printf("\r\ndddddddddd\r\n");
// delay(0xffff);
TIM1_SR1 &= ~(1 << 0); //清除中断标志
ms_count++;
if(ms_count > 1000) //1ms*1000=1s
{
ms_count = 0;
ADC_conf(2);
dat_tmp = ADC_GetConversionValue(2);
printf("\r\n,ch2 = %hu", dat_tmp);
ADC_conf(3);
dat_tmp = ADC_GetConversionValue(3);
printf("ch3 = %hu", dat_tmp);
ADC_conf(4);
dat_tmp = ADC_GetConversionValue(4);
printf("ch4 = %hu", dat_tmp);
if(SWITCH_ON)
{
printf("switch on");
}
else
{
printf("switch off");
}
printf("\r\n");
// PE_ODR ^= 1<&l