找回密码
 立即注册
查看: 1266|回复: 8

STC8H8K64U单片机串口3发送十六进制数组数据

[复制链接]

1

主题

5

回帖

19

积分

新手上路

积分
19
发表于 2023-5-17 10:54:21 | 显示全部楼层 |阅读模式
STC8H8K64U单片机串口3发送十六进制数组数据-1.png

发送十六进制数组数据始终不对
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:20
  • 最近打卡:2025-04-28 16:56:43

21

主题

376

回帖

2345

积分

超级版主

积分
2345
发表于 2023-5-17 11:58:59 | 显示全部楼层
本帖最后由 STC32G12K128 于 2023-5-17 12:02 编辑

楼主试试范例看看:

03-串口3中断收发-C语言.rar

22.99 KB, 下载次数: 87

电话:0513-55012946 QQ:2195591714  微信:  19952583740
回复 支持 反对

使用道具 举报 送花

1

主题

5

回帖

19

积分

新手上路

积分
19
发表于 2023-5-17 12:10:07 | 显示全部楼层
本帖最后由 tonylgh 于 2023-5-17 12:15 编辑

试了,不行
u8 senddata[5]={1,2,3,4,5};


void PrintString3(u8 *puts)
{
    for (; *puts != 0;  puts++)     //Óöµ½Í£Ö¹·û0½áÊø
    {
        S3BUF = *puts;
        B_TX3_Busy = 1;
        while(B_TX3_Busy);
    }
}

...
while (1)
    {
        /*if((TX3_Cnt != RX3_Cnt) && (!B_TX3_Busy))   //ÊÕµ½Êý¾Ý, ·¢ËÍ¿ÕÏÐ
        {
            S3BUF = RX3_Buffer[TX3_Cnt];
            B_TX3_Busy = 1;
            if(++TX3_Cnt >= UART3_BUF_LENGTH)   TX3_Cnt = 0;
        }*/
                        Delay500ms();
                        Delay500ms();
                        PrintString3(senddata);//   senddata
    }
}

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:20
  • 最近打卡:2025-04-28 16:56:43

21

主题

376

回帖

2345

积分

超级版主

积分
2345
发表于 2023-5-17 13:14:32 | 显示全部楼层
上你原理图的PDF, 大家帮你分析:
或者试下别的串口!

STC8G系列-串口相关程序 STC8HSTC8G 的 4组独立串口程序, 通用.rar

274.11 KB, 下载次数: 81

电话:0513-55012946 QQ:2195591714  微信:  19952583740
回复 支持 反对

使用道具 举报 送花

1

主题

5

回帖

19

积分

新手上路

积分
19
发表于 2023-5-17 15:06:18 | 显示全部楼层
STC32G12*** 发表于 2023-5-17 13:14
上你原理图的PDF, 大家帮你分析:
或者试下别的串口!

您好,发送字符串没问题,就是发送十六进制数组不对!另外,STC单片机的源码例程基本相同
回复 支持 反对

使用道具 举报 送花

1

主题

5

回帖

19

积分

新手上路

积分
19
发表于 2023-5-17 15:44:38 | 显示全部楼层
如何用PrintString3()发送十六进制数组?谢谢诸位

点评

PrintString3()是发送非0的数据,碰到数据0就结束发送,根本不理会是什么数据,发字符串,最终还是16机制的,比如字母A就是0x41,不存在发字符可以,发十六进制不可以的说法,因为最终都是一个字节数据。 可以用STC  详情 回复 发表于 2023-5-17 16:07
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2023-5-17 16:07:29 | 显示全部楼层
tony*** 发表于 2023-5-17 15:44
如何用PrintString3()发送十六进制数组?谢谢诸位

PrintString3()是发送非0的数据,碰到数据0就结束发送,根本不理会是什么数据,发字符串,最终还是16机制的,比如字母A就是0x41,不存在发字符可以,发十六进制不可以的说法,因为最终都是一个字节数据。
可以用STC官方例子测试,将你要发的数据放在数组中,然后调用发送即可,这是非常常用的方法。
回复 支持 反对

使用道具 举报 送花

1

主题

5

回帖

19

积分

新手上路

积分
19
发表于 2023-5-17 16:34:48 | 显示全部楼层
谢谢大家,我再试试
回复 支持 反对

使用道具 举报 送花

1

主题

5

回帖

19

积分

新手上路

积分
19
发表于 2023-5-18 09:07:19 | 显示全部楼层
试过了,可以!谢谢
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 22:15 , Processed in 0.116706 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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