江上酒酒 发表于 2024-11-2 22:20:35

ADC电压采集

本帖最后由 江上酒酒 于 2024-11-2 22:23 编辑

用一箭双雕转化器和STC32G12K128试验箱进行ADC电压采集,没有反应为什么。


#include <STC32G.H>
#include <INTRINS.H>
void Delay2ms(void);
void ADC_Init(void);
unsigned int ADC_Read(unsigned char no);
unsigned int ADC_CAL_Voltage(unsigned int num);
void main()
{
      unsigned int ADC_VAL;
      ADC_Init();
      while(1)
      {
                Delay2ms();
                ADC_VAL=ADC_Read(0);
                printf("当前ADC数\xfd值:%d\t%dmv\r\n",(int)ADC_VAL,(int)ADC_CAL_Voltage(ADC_VAL));
      }
}
void Delay2ms(void)      //@24.000MHz
{
      unsigned char data i, j;

      i = 8;
      j = 197;
      do
      {
                while (--j);
      } while (--i);
}
void ADC_Init(void)
{
      P1M0=0X00;
      P1M1=0X01;
      ADCTIM=0X3F;
      ADCCFG=0X2F;
      ADC_POWER=1;
}
unsigned int ADC_Read(unsigned char no)
{
      unsigned int adcval;
      ADC_CONTR &=0XF0;
      ADC_CONTR |=no;
      ADC_START=1;
      _nop_();
      _nop_();
      while(!ADC_FLAG);
      ADC_FLAG=0;
      adcval=(ADC_RES<<8)+ADC_RESL;
      return adcval;
}
unsigned int ADC_CAL_Voltage(unsigned int num)
{
      return num*2.5*1000/4096;
}


王昱顺 发表于 2024-11-2 22:45:33

本帖最后由 王昱顺 于 2024-11-2 22:46 编辑

这是对的,因为你没配置串口相关,也没将printf关联到串口上。
具体可以参考论坛内有关printf的相关帖子,有详细介绍应该如何使用
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=8145&highlight=printf&page=1&extra=#pid105956

soma 发表于 2024-11-2 22:57:31

有 printf,但是没初始化串口单片机不知道 printf到哪里

王昱顺 发表于 2024-11-2 23:04:17

soma 发表于 2024-11-2 22:57
有 printf,但是没初始化串口单片机不知道 printf到哪里

我记得是默认打印到内存里了,不过具体存在哪里,就不知道了
页: [1]
查看完整版本: ADC电压采集