找回密码
 立即注册
楼主: manz***

STC8系列4组串口同时通信的程序,Modbus 演示程序

  [复制链接]
  • TA的每日心情
    慵懒
    2024-2-22 09:29
  • 签到天数: 38 天

    [LV.5]常住居民I

    5

    主题

    51

    回帖

    285

    积分

    中级会员

    积分
    285
    发表于 2024-1-11 16:49:16 | 显示全部楼层
    梁工 发表于 2023-2-21 16:31
    如果依旧无法解压缩,那是你的解压软件版本太旧了,升级一下吧。


    bit busy;
    char wptr;
    char rptr;
    char buffer[16];

    void UART_Init()//9600bps@11.0592MHz
    {
              SCON = 0x50;
        TMOD = 0x00;
        TL1 = BRT;
        TH1 = BRT >> 8;
        TR1 = 1;
        AUXR = 0x40;
        wptr = 0x00;
        rptr = 0x00;
        busy = 0;
           
    }

    void UART_SendByte(u16 Data)
    {
      
                    while (busy);
        busy = 1;
        SBUF = Data;
    }


    void UartIsr() interrupt 4
    {
        if (TI)
        {
            TI = 0;
            busy = 0;
        }
    //    if (RI)
    //    {
    //        RI = 0;
    //        buffer[wptr++] = SBUF;
    //        wptr &= 0x0f;
    //    }
    }

    void main(void)
    {
            Io_Init();
            UART_Init();
      ES = 1;
      EA = 1;
       
        while (1)
        {
    //        if (rptr != wptr)
    //        {
    //            UART_SendByte(0x33);
    //            rptr &= 0x0f;
    //        }
                            UART_SendByte(0x33);


        }

    }

    梁工你好  这是我参考历程改写的串口代码,我希望实现只发送数据给PC 不接收数据,但是我发现这样子传输发送的是乱码,我不确定是什么问题所导致的。我尝试过用ISP助手生成的初始化配置以选择以选择比较低的波特率,但是发现还是传输乱码,所以想请教一下梁工是哪里出现了问题

    点评

    你的实际主频多少MHz?BRT是在怎么定义的?  详情 回复 发表于 2024-1-11 19:13
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    45

    主题

    2920

    回帖

    6564

    积分

    超级版主

    积分
    6564
    发表于 2024-1-11 19:13:57 | 显示全部楼层
    Honsiti 发表于 2024-1-11 16:49
    bit busy;
    char wptr;
    char rptr;

    你的实际主频多少MHz?BRT是在怎么定义的?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-2-22 09:29
  • 签到天数: 38 天

    [LV.5]常住居民I

    5

    主题

    51

    回帖

    285

    积分

    中级会员

    积分
    285
    发表于 2024-1-11 22:50:21 | 显示全部楼层
    梁工 发表于 2024-1-11 19:13
    你的实际主频多少MHz?BRT是在怎么定义的?

    #define FOSC        11059200UL
    #define BRT         (65536 - FOSC / 115200 / 4)
    是这个

    点评

    编译测试了你的程序,PC接收正确,没有问题: [attachimg]32594[/attachimg]  详情 回复 发表于 2024-1-11 23:07
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    45

    主题

    2920

    回帖

    6564

    积分

    超级版主

    积分
    6564
    发表于 2024-1-11 23:07:25 | 显示全部楼层
    Honsiti 发表于 2024-1-11 22:50
    #define FOSC        11059200UL
    #define BRT         (65536 - FOSC / 115200 / 4)
    是这个

    编译测试了你的程序,PC接收正确,没有问题:
    截图202401112306444211.jpg

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-17 11:19
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    1

    主题

    10

    回帖

    95

    积分

    注册会员

    积分
    95
    发表于 2024-1-25 15:32:39 | 显示全部楼层
    梁 工,你好!
    我的串口3发送不数据,帮我看一下,哪 里出了问题?
                                    MOV       S3CON,#00H       ;不接收数据,=10允许接收数据S3SM0 S3ST3 S3SM2 S3REN S3TB8 S3RB8 S3TI S3RI
                                    MOV       S3BUF,#00H       ;模式0,S3T3=0,选T2为波发器,可变波率8位数据方式
                                    MOV       IE2,#08H         ;允许UART3中断- ET4 ET3 ES4 ES3 ET2 ESPI ES2
    ;--------------------------------------------------------------------------------------
    UART3_ISR:
                   PUSH      ACC
                   PUSH      PSW
                   ;MOV       PSW,#08H      ;CY AC F0 RS1 RS0 OV - P
                   MOV       S3DA,S3CON              
                               ;MOV       S3DA,A         ;S3DA=2EH
                  JB        S3DA.1,U3RT1
                   MOV       S3CON,#00H
                   SJMP      UART3ISR_EXIT
    ;----------------------------------------------
    U3RT1:         SETB      T3BA
                   CLR       S3DA.1
                               ;MOV       A,S3DA
                               MOV       S3CON,S3DA
                              
    ;==============================================
    UART3ISR_EXIT:
                   POP       PSW
                   POP       ACC
                   RETI
    ;===============================================
                                    ;发送BIO的7个数据
    //================================================================  
    SENDS:          CLR      TR0
                         MOV      R1,#56H
                         MOV      R7,#07D
    ;-----
    SENDS1:         MOV      A,@R1
                          MOV      S3BUF,A
    ;----
    SENDS1A:
                                    JBC      T3BA,SENDS1B
                                    SJMP     SENDS1A
    ;---
    SENDS1B:                  CPL      OUT_YL             ;指示作用,
                                    INC      R1
                                    DJNZ     R7,SENDS1
                                    CALL     ADJ_ON
                                    RET                          
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-17 11:19
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    1

    主题

    10

    回帖

    95

    积分

    注册会员

    积分
    95
    发表于 2024-1-25 15:33:54 | 显示全部楼层
    我的串口1和串口3都用T2作为波特率发生器  ,115200
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:28
  • 签到天数: 113 天

    [LV.6]常住居民II

    8

    主题

    67

    回帖

    672

    积分

    高级会员

    积分
    672
    发表于 2024-1-28 21:22:05 | 显示全部楼层
    梁工 发表于 2022-12-19 13:09
    STC8H/STC8G 的 4组 独立串口程序, 通用
    Modbus 演示程序, 2023/8/28更新
    解压缩后参考、测试“08-串口1中 ...

    波特率相同可以共用定时器T2,又学到了一个精华,@梁工,还有其他类似精华共享吗

    点评

    4个串口如果波特率相同,都可以使用定时器2做波特率。 应用类,可以在本论坛找,很多干货!  详情 回复 发表于 2024-1-28 22:11
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    45

    主题

    2920

    回帖

    6564

    积分

    超级版主

    积分
    6564
    发表于 2024-1-28 22:11:02 | 显示全部楼层
    小坤 发表于 2024-1-28 21:22
    波特率相同可以共用定时器T2,又学到了一个精华,@梁工,还有其他类似精华共享吗 ...

    4个串口如果波特率相同,都可以使用定时器2做波特率。
    应用类,可以在本论坛找,很多干货!
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-1-29 09:57
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    3

    回帖

    13

    积分

    新手上路

    积分
    13
    发表于 2024-1-29 11:03:09 | 显示全部楼层
    回复 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9234

    回帖

    1万

    积分

    管理员

    积分
    13942
    发表于 2024-2-9 21:37:23 | 显示全部楼层
    截图202402092137204588.jpg
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-29 00:36 , Processed in 0.073225 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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