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

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

[复制链接]
  • TA的每日心情
    郁闷
    2023-12-20 08:30
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    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
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    3 小时前
  • 签到天数: 141 天

    [LV.7]常住居民III

    26

    主题

    1338

    回帖

    4165

    积分

    论坛元老

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

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-12-20 08:30
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    4

    主题

    12

    回帖

    78

    积分

    注册会员

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

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

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-12-20 08:30
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    4

    主题

    12

    回帖

    78

    积分

    注册会员

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

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

    使用道具 举报

  • TA的每日心情
    奋斗
    3 小时前
  • 签到天数: 141 天

    [LV.7]常住居民III

    26

    主题

    1338

    回帖

    4165

    积分

    论坛元老

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

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

    使用道具 举报

  • TA的每日心情
    郁闷
    2023-12-20 08:30
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    4

    主题

    12

    回帖

    78

    积分

    注册会员

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

    使用道具 举报

  • TA的每日心情
    奋斗
    4 小时前
  • 签到天数: 120 天

    [LV.7]常住居民III

    34

    主题

    164

    回帖

    276

    积分

    中级会员

    积分
    276
    发表于 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 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2023-12-10 14:27
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    19

    回帖

    52

    积分

    注册会员

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-15 12:44 , Processed in 0.069024 second(s), 59 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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