找回密码
 立即注册
查看: 66|回复: 2

为什么ADC采集打印不出来,STC8H8K64U,我感觉没问题啊

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:42
  • 最近打卡:2025-12-17 11:34:47
已绑定手机

1

主题

0

回帖

155

积分

注册会员

积分
155
发表于 2025-11-15 17:19:27 | 显示全部楼层 |阅读模式
#include        "config.h"
#include        "STC8G_H_ADC.h"
#include        "STC8G_H_GPIO.h"
#include        "STC8G_H_Delay.h"
#include        "STC8G_H_UART.h"
#include        "STC8G_H_NVIC.h"
#include        "STC8G_H_Switch.h"


/******************* IO配置函数 *******************/
void        GPIO_config(void)
{
        P0_MODE_IN_HIZ(GPIO_Pin_0);         //P0.0设置为高阻输入
        P3_MODE_IO_PU(GPIO_Pin_0 | GPIO_Pin_1);        //P3.0,P3.1 设置为准双向口
}

/******************* AD配置函数 *******************/
void        ADC_config(void)
{
        ADC_InitTypeDef                ADC_InitStructure;                //结构定义

        ADC_InitStructure.ADC_SMPduty   = 31;                //ADC 模拟信号采样时间控制, 0~31(注意: SMPDUTY 一定不能设置小于 10)
        ADC_InitStructure.ADC_CsSetup   = 0;                //ADC 通道选择时间控制 0(默认),1
        ADC_InitStructure.ADC_CsHold    = 1;                //ADC 通道选择保持时间控制 0,1(默认),2,3
        ADC_InitStructure.ADC_Speed     = ADC_SPEED_2X16T;                //设置 ADC 工作时钟频率        ADC_SPEED_2X1T~ADC_SPEED_2X16T
        ADC_InitStructure.ADC_AdjResult = ADC_RIGHT_JUSTIFIED;        //ADC结果调整,        ADC_LEFT_JUSTIFIED,ADC_RIGHT_JUSTIFIED
        ADC_Inilize(&ADC_InitStructure);                //初始化
        ADC_PowerControl(ENABLE);                                //ADC电源开关, ENABLE或DISABLE
        NVIC_ADC_Init(DISABLE,Priority_0);                //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
}

/***************  串口初始化函数 *****************/
void        UART_config(void)
{
        COMx_InitDefine                COMx_InitStructure;                                        //结构定义

        COMx_InitStructure.UART_Mode      = UART_8bit_BRTx;                //模式,   UART_ShiftRight,UART_8bit_BRTx,UART_9bit,UART_9bit_BRTx
        COMx_InitStructure.UART_BRT_Use   = BRT_Timer1;                        //选择波特率发生器, BRT_Timer1, BRT_Timer2
        COMx_InitStructure.UART_BaudRate  = 9600ul;                        //波特率,  110 ~ 115200
        COMx_InitStructure.UART_RxEnable  = DISABLE;                                //接收允许,   ENABLE或DISABLE
        UART_Configuration(UART1, &COMx_InitStructure);                //初始化串口2 USART1,USART2,USART3,USART4
        NVIC_UART1_Init(DISABLE, Priority_1);                //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
        UART1_SW(UART1_SW_P30_P31);        //通道切换,选择P3.0, P3.1引脚通信
        
}

int fputc(int ch)
{
    SBUF = ch;
    while (!TI);
    TI = 0;
    return ch;
}


void main(void)
{
        u16        j;
        float voltage;
        
        EAXSFR();
        GPIO_config();
        UART_config();
        ADC_config();
        EA = 1;

        while (1)
        {

                        delay_ms(250);

                        j = Get_ADCResult(8);
                        voltage = (float)j * 5.0 / 4095.0;
                        printf("AD%02d=%.3fV ",8, voltage);

        }
}


屏幕截图 2025-11-15 171813.png
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:646
  • 最近打卡:2025-12-17 07:25:27
已绑定手机

93

主题

6932

回帖

1万

积分

超级版主

积分
13008
发表于 2025-11-15 18:22:45 | 显示全部楼层
参考程序:
  1. CH15=ADC_Convert(15);
  2.                 CH10=ADC_Convert(10);
  3.                 VREF=(unsigned int)((unsigned long)BGV*4096UL/(unsigned long)CH15);
  4.                 V_CH10=(unsigned int)((unsigned long)VREF*(unsigned long)CH10/4096UL);
  5.                 printf("BGV=%dmV CH15=%d Vref=%dmV CH10=%d V_CH10=%dmV\r\n",BGV,CH15,VREF,CH10,V_CH10);
复制代码
CDC发送VREF.zip (48.39 KB, 下载次数: 0)

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:390
  • 最近打卡:2025-12-17 08:54:40
已绑定手机

97

主题

3863

回帖

8332

积分

荣誉版主

无情的代码机器

积分
8332
发表于 2025-11-15 18:39:30 | 显示全部楼层

和ADC无关,先把串口捋顺
https://www.stcaimcu.com/data/do ... DIP64-DEMO-CODE.zip

使用例程测试下
上传完整工程、电路原理图
检查config里时钟设置是否一致、串口线上是否有别的信号。
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-12-17 13:21 , Processed in 0.107303 second(s), 61 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表