找回密码
 立即注册
查看: 862|回复: 7

stc8G1k8a,串口无法收发数据,跪求各位大佬帮忙

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2023-12-20 08:30:08

4

主题

12

回帖

78

积分

注册会员

积分
78
发表于 2023-12-7 11:09:49 | 显示全部楼层 |阅读模式
void Uart1_Init(void)        //9600bps@11.0592MHz
{
        PCON &= 0x7f;                //波特率不倍速
        SCON = 0x50;                //8位数据,可变波特率
       
        AUXR |= 0x40;                //定时器时钟1T模式
        AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
       
        TMOD &= 0x0F;                //设置定时器模式
        TMOD |= 0x20;                //设置定时器模式
       
        TL1 = 0xDC;                        //设置定时初始值
        TH1 = 0xDC;                        //设置定时重载值
       
        ET1 = 0;                        //禁止定时器中断
        TR1 = 1;                        //定时器1开始计时
       
        ES = 1;
  EA = 1;
}
void main()
{
    P3M0 = 0x00;
    P3M1 = 0x00;
       
    P5M0 = 0x00;
    P5M1 = 0x00;

    Uart1_Init();


       
    REN=0;
    while (1)
    {
                        DelayXms(1000);
                         P54=0;
                         SBUF = 2;
                        DelayXms(1000);
                          SBUF = 2;
                         P54=1;
    }
}

程序在这,试了很多中办法,用了8位自动装载,还是发不出来,球球各位大佬帮帮忙,小弟真的很急,下方是电路


截图202312071109372167.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-12-7 16:49:12 | 显示全部楼层
建议使用STC-ISP软件里面的串口波特率寄存器生成配置代码,如果开启了串口中断的话,中断函数记得要写。
截图202312071648172406.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2023-12-20 08:30:08

4

主题

12

回帖

78

积分

注册会员

积分
78
发表于 2023-12-8 08:26:09 | 显示全部楼层
乘风*** 发表于 2023-12-7 16:49
建议使用STC-ISP软件里面的串口波特率寄存器生成配置代码,如果开启了串口中断的话,中断函数记得要写。
...

感谢您的回复,但我的串口初始化,就是用的stc软件里的,但还是没用
我还想问一下,我电路有问题吗
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2023-12-20 08:30:08

4

主题

12

回帖

78

积分

注册会员

积分
78
发表于 2023-12-8 08:31:27 | 显示全部楼层
shijia*** 发表于 2023-12-8 08:26
感谢您的回复,但我的串口初始化,就是用的stc软件里的,但还是没用
我还想问一下,我电路有问题吗
...

还有啊,我想问一下,我选用的是P3.0、P3.1作为串口中断口,那么我将这两个端口配置为“准双向口”,能行吗
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-12-8 08:57:09 | 显示全部楼层
shijia*** 发表于 2023-12-8 08:31
还有啊,我想问一下,我选用的是P3.0、P3.1作为串口中断口,那么我将这两个端口配置为“准双向口”,能行 ...

电路很简单,没什么问题,Tx/Rx别接反就行。
还是注意一下细节,例如:DelayXms(1000) 函数原型是怎么写的?参数定义什么类型的?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2023-12-20 08:30:08

4

主题

12

回帖

78

积分

注册会员

积分
78
发表于 2023-12-8 11:06:27 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:383
  • 最近打卡:2025-04-30 09:42:19

40

主题

194

回帖

601

积分

高级会员

积分
601
发表于 2023-12-8 21:59:09 | 显示全部楼层
你的串口初始化函数可以使用,我对其它部分进行了调整,这是我调整后的程序,在我这里可以运行,STC8G1K08A上电后,就一直向串口调试助手发送十六进制02。




/*---------------------------------------------------------------------*/
/* --- STC MCU Limited ------------------------------------------------*/
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
/* --- Mobile: (86)13922805190 ----------------------------------------*/
/* --- Fax: 86-0513-55012956,55012947,55012969 -----------------------*/
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
/* --- Web: www.STCMCU.com --------------------------------------------*/
/* --- Web: www.GXWMCU.com --------------------------------------------*/
/* --- QQ:  800003751 -------------------------------------------------*/
/* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序        */
/*---------------------------------------------------------------------*/
/*************  功能说明    **************
STC8G1K08A 发送通讯程序。
2023-5-17 KILL C51环境,STC8G1K08A,时钟11059200,波特率9600L,编译错误0警告0
******************************************/
#include    "STC8G.H"

#define     MAIN_Fosc           11059200L   //定义主时钟
#define     Baudrate1           9600L

typedef     unsigned char   u8;
typedef     unsigned int    u16;
typedef     unsigned long   u32;

void  DelayXms(u8 ms);                          //延时涵数声明

//串口初始化涵数
void Uart1_Init(void)         //9600bps@11.0592MHz
{
        PCON &= 0x7f;               //波特率不倍速
        SCON = 0x50;                //8位数据,可变波特率

        AUXR |= 0x40;               //定时器时钟1T模式
        AUXR &= 0xFE;               //串口1选择定时器1为波特率发生器
       
        TMOD &= 0x0F;               //设置定时器模式
        TMOD |= 0x20;               //设置定时器模式
       
        TL1 = 0xDC;                 //设置定时初始值
        TH1 = 0xDC;                 //设置定时重载值
       
        ET1 = 0;                    //禁止定时器中断
        TR1 = 1;                    //定时器1开始计时
       
        ES = 1;
}
//========================================================================
// 函数: void main(void)
// 描述: 主函数。
// 参数: none.
// 返回: none.
// 版本: VER1.0
// 日期: 2014-12-8
// 备注:
//========================================================================
void main(void)
{
    u8 tim;

                P3M0 = 0x00;    P3M1 = 0x00;
    P5M0 = 0x00;    P5M1 = 0x00;
    Uart1_Init();  //串口初始化
    REN=0;  
    EA = 1; //允许总中断
                tim        = 250;  //延时时间
       
    while (1)
    {
      DelayXms(tim);
                          P54=0;
                          SBUF = 2;
                        DelayXms(tim);
                                SBUF = 2;
                          P54=1;
                }
}
/***********************************************************************/
//名称:DelayXms(u8 ms);
//描述: 延时函数。
//参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟.
//返回: none.
//版本: VER1.0
//日期: 2013-4-1
//备注: 摘自STC15范例程序,原涵数名:void  delay_ms(unsigned char ms)
//========================================================================
void DelayXms(u8 ms)
{
     u16 i;
         do{
              i = MAIN_Fosc / 13000;
                  while(--i)        ;   //14T per loop
     }while(--ms);
}



1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-10 14:27:36

0

主题

17

回帖

48

积分

新手上路

积分
48
发表于 2023-12-10 15:17:05 | 显示全部楼层
用下载软件里的demo试一下啊
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 22:10 , Processed in 0.162678 second(s), 99 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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