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

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

  [复制链接]

该用户从未签到

8

主题

29

回帖

164

积分

注册会员

积分
164
发表于 2023-10-9 23:42:17 | 显示全部楼层
梁工,我买的STC32G12K128芯片的降龙棍,用这个作为例子改了一星期了也不行,能不能发一个降龙棍的MODBUS例子
回复 支持 反对 送花

使用道具 举报

该用户从未签到

8

主题

29

回帖

164

积分

注册会员

积分
164
发表于 2023-10-11 10:43:50 | 显示全部楼层
有没有最新STC32G的
回复 支持 反对 送花

使用道具 举报

该用户从未签到

0

主题

1

回帖

22

积分

新手上路

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

谢谢大神
回复 支持 反对 送花

使用道具 举报

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

    [LV.1]初来乍到

    1

    主题

    6

    回帖

    43

    积分

    新手上路

    积分
    43
    发表于 2023-12-12 18:03:46 | 显示全部楼层
    梁工 发表于 2023-9-30 21:21
    不好意思!我的例程是STC8系列的,降龙棍勇的是STC32G,不能直接下载运行(我记混了)。
    下面的工程我改 ...

    梁工您好,我用的是STC8A8K64D4单片机,直接下载您的STC8G单片机MODBUS程序后通讯成功。
    但是我用STC-ISP生成的STC8A8K64D4单片机头文件则不行。一大堆错误。怎么能移植到STC8A单片机呢?

    点评

    STC8G、STC8H、STC8A8K的串口都是通用的啊,怎么有错误?你贴出错误提示看看。  详情 回复 发表于 2023-12-12 18:30
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2927

    回帖

    6585

    积分

    超级版主

    积分
    6585
    发表于 2023-12-12 18:30:30 | 显示全部楼层
    jianjun 发表于 2023-12-12 18:03
    梁工您好,我用的是STC8A8K64D4单片机,直接下载您的STC8G单片机MODBUS程序后通讯成功。
    但是我用STC-ISP ...

    STC8G、STC8H、STC8A8K的串口都是通用的啊,怎么有错误?你贴出错误提示看看。
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.1]初来乍到

    1

    主题

    6

    回帖

    43

    积分

    新手上路

    积分
    43
    发表于 2023-12-13 08:45:22 | 显示全部楼层
    本帖最后由 jianjun 于 2023-12-13 08:55 编辑

    您的工程我把#include        "..\..\STC8Gxxx.h"改为#include        "STC8A.h",然后编译出现下面的错误:

    Build target 'Target 1'
    compiling UART1.c...
    UART1.c(321): error C141: syntax error near 'TIMER0_VECTOR', expected 'const'
    UART1.c(322): error C132: 'TIMER0_VECTOR': not in formal parameter list
    UART1.c(322): error C141: syntax error near '{', expected ';'
    UART1.c(325): error C132: 'RX1_TimeOut': not in formal parameter list
    UART1.c(329): error C244: 'B_RX1_OK': can't initialize, bad type or class
    UART1.c(329): error C132: 'B_RX1_OK': not in formal parameter list
    UART1.c(330): error C141: syntax error near '}', expected 'hdata'
    UART1.c(387): error C202: 'INT_CLKO': undefined identifier
    Target not created.
    Build Time Elapsed:  00:00:00


    定位下来都是下面这一段和INT_CLKO变量未定义的问题

    void timer0_ISR (void) interrupt TIMER0_VECTOR
    {
            if(RX1_TimeOut != 0)
            {
                    if(--RX1_TimeOut == 0)        //超时
                    {
                            if(RX1_cnt != 0)        //接收有数据
                            {
                                    B_RX1_OK = 1;        //标志已收到数据块
                            }
                    }
            }
    }


    回复 支持 反对 送花

    使用道具 举报

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

    [LV.7]常住居民III

    15

    主题

    531

    回帖

    1932

    积分

    金牌会员

    打工人

    积分
    1932
    发表于 2023-12-13 11:17:37 | 显示全部楼层
    好东西,收藏
    打工人
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.1]初来乍到

    1

    主题

    6

    回帖

    43

    积分

    新手上路

    积分
    43
    发表于 2023-12-13 13:47:12 | 显示全部楼层
    本帖最后由 jianjun 于 2023-12-13 13:48 编辑
    梁工 发表于 2023-12-12 18:30
    STC8G、STC8H、STC8A8K的串口都是通用的啊,怎么有错误?你贴出错误提示看看。 ...
    按提示加上这些定义后正常了,哎,头文件不统一造成
    #define                TIMER0_VECTOR        1
    #define                S1_USE_P36P37()                                        P_SW1  =  (P_SW1 & ~0xc0) | 0x40        //UART1 使用P3.6 P3.7口
    #define                S1_USE_P16P17()                                        P_SW1  =  (P_SW1 & ~0xc0) | 0x80        //UART1 使用P1.6 P1.7口
    #define                S1_USE_P43P44()                                        P_SW1  =  (P_SW1 & ~0xc0) | 0xc0        //UART1 使用P4.3 P4.4口
    #define         P1n_standard(bitn)                        P1M1 &= ~(bitn),        P1M0 &= ~(bitn)
    #define   P3n_standard(bitn)                        P3M1 &= ~(bitn),        P3M0 &= ~(bitn)
    #define         P4n_standard(bitn)                        P4M1 &= ~(bitn),        P4M0 &= ~(bitn)
    #define                S1_USE_P30P31()                                        P_SW1 &= ~0xc0
    回复 支持 反对 送花

    使用道具 举报

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

    [LV.1]初来乍到

    1

    主题

    6

    回帖

    43

    积分

    新手上路

    积分
    43
    发表于 2023-12-16 16:13:00 | 显示全部楼层
    梁工您好,我有2个寄存器变量是带小数点的浮点型数据,浮点型数据如何通过8位串口发过去?上位机(标准MODBUS协议)又是如何整合成浮点型32位数据的, 有点蒙逼,有没有示例代码演示?先感谢指教
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    前天 08:56
  • 签到天数: 124 天

    [LV.7]常住居民III

    3

    主题

    87

    回帖

    381

    积分

    中级会员

    积分
    381
    发表于 2023-12-20 10:44:54 | 显示全部楼层
    哇哦,正好是我需要的,感谢大神,改天学习一下
    You can you up!~No can no BB!~
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-30 08:51 , Processed in 0.070012 second(s), 65 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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