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

请教串口收发问题

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-12-13 10:49:11
已绑定手机

1

主题

4

回帖

23

积分

新手上路

积分
23
发表于 7 天前 | 显示全部楼层 |阅读模式
用以下DEMO的例程,下载到STC8H1K08 ,串口接收区接收不到字符串,但是直接在串口里发送的可以被接收到,这个是什么原因?试了好几台电脑都不行,同时也用了调试软件上的范例例程,也是不行。
也看了别人关于串口收发的视频,一模一样的程序,别人可以在电脑上显示,我这里不管什么程序都无法显示,这个问题困扰了我好几个月都解决不了。请高手指教一下!
另外我用的STC U8W - Mini  烧录器来测试的
/*---------------------------------------------------------------------*/
#include   “STC8H.H”
#include        "config.h"
#include        "STC8G_H_GPIO.h"
#include        "STC8G_H_UART.h"
#include        "STC8G_H_Delay.h"
#include        "STC8G_H_NVIC.h"
#include        "STC8G_H_Switch.h"

/*************        功能说明        **************

本例程基于STC8H8K64U为主控芯片的实验箱8进行编写测试,STC8G、STC8H系列芯片可通用参考.

双串口全双工中断方式收发通讯程序。

通过PC向MCU发送数据, MCU收到后通过串口把收到的数据原样返回, 默认波特率:115200,N,8,1.

通过开启 STC8G_H_UART.h 头文件里面的 UART1~UART4 定义,启动不同通道的串口通信。

用定时器做波特率发生器,建议使用1T模式(除非低波特率用12T),并选择可被波特率整除的时钟频率,以提高精度。

下载时, 选择时钟 22.1184MHz (用户可在"config.h"修改频率).

******************************************/

/*************        本地常量声明        **************/


/*************        本地变量声明        **************/


/*************        本地函数声明        **************/


/*************  外部函数和变量声明 *****************/


/******************* IO配置函数 *******************/
void        GPIO_config(void)
{
        GPIO_InitTypeDef        GPIO_InitStructure;                //结构定义

        GPIO_InitStructure.Pin  = GPIO_Pin_All;                //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7
        GPIO_InitStructure.Mode = GPIO_PullUp;        //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
        GPIO_Inilize(GPIO_P3,&GPIO_InitStructure);        //初始化
}

/***************  串口初始化函数 *****************/
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 (注意: 串口2固定使用BRT_Timer2)
        COMx_InitStructure.UART_BaudRate  = 115200ul;                        //波特率, 一般 110 ~ 115200
        COMx_InitStructure.UART_RxEnable  = ENABLE;                                //接收允许,   ENABLE或DISABLE
        COMx_InitStructure.BaudRateDouble = DISABLE;                        //波特率加倍, ENABLE或DISABLE
        UART_Configuration(UART1, &COMx_InitStructure);                //初始化串口1 UART1,UART2,UART3,UART4
        NVIC_UART1_Init(ENABLE,Priority_1);                //中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3

        UART1_SW(UART1_SW_P30_P31);                //UART1_SW_P30_P31,UART1_SW_P36_P37,UART1_SW_P16_P17,UART1_SW_P43_P44
}


/**********************************************/
void main(void)
{
        u8        i;

        EAXSFR();                /* 扩展寄存器访问使能 */
        GPIO_config();
        UART_config();
        EA = 1;

        printf("STC8H1K08 UART1 Test Programme!\r\n");        //UART1发送一个字符串
//        PrintString1("STC8H8K64U UART1 Test Programme!\r\n");        //UART1发送一个字符串

        while (1)
        {
                delay_ms(1);
                if(COM1.RX_TimeOut > 0)                //超时计数
                {
                        if(--COM1.RX_TimeOut == 0)
                        {
                                if(COM1.RX_Cnt > 0)
                                {
                                        for(i=0; i<COM1.RX_Cnt; i++)        TX1_write2buff(RX1_Buffer[i]);        //收到的数据原样返回
                                }
                                COM1.RX_Cnt = 0;
                        }
                }
        }
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:647
  • 最近打卡:2025-12-18 07:29:35
已绑定手机

93

主题

6940

回帖

1万

积分

超级版主

积分
13026
发表于 7 天前 | 显示全部楼层
程序没发现问题,检查电路连接
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-12-13 10:49:11
已绑定手机

1

主题

4

回帖

23

积分

新手上路

积分
23
发表于 5 天前 | 显示全部楼层
Debu*** 发表于 2025-12-11 16:52
程序没发现问题,检查电路连接

程序能正常下载的话电路连接应该不可能有问题吧?
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-12-18 14:54 , Processed in 0.127002 second(s), 52 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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