tonylgh 发表于 2023-5-17 10:54:21

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



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

32G12K128 发表于 2023-5-17 11:58:59

本帖最后由 STC32G12K128 于 2023-5-17 12:02 编辑

楼主试试范例看看:

tonylgh 发表于 2023-5-17 12:10:07

本帖最后由 tonylgh 于 2023-5-17 12:15 编辑

试了,不行
u8 senddata={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;
            B_TX3_Busy = 1;
            if(++TX3_Cnt >= UART3_BUF_LENGTH)   TX3_Cnt = 0;
      }*/
                        Delay500ms();
                        Delay500ms();
                        PrintString3(senddata);//   senddata
    }
}

32G12K128 发表于 2023-5-17 13:14:32

上你原理图的PDF, 大家帮你分析:
或者试下别的串口!

tonylgh 发表于 2023-5-17 15:06:18

STC32G12K128 发表于 2023-5-17 13:14
上你原理图的PDF, 大家帮你分析:
或者试下别的串口!

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

tonylgh 发表于 2023-5-17 15:44:38

如何用PrintString3()发送十六进制数组?谢谢诸位

梁工 发表于 2023-5-17 16:07:29

tonylgh 发表于 2023-5-17 15:44
如何用PrintString3()发送十六进制数组?谢谢诸位

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

tonylgh 发表于 2023-5-17 16:34:48

谢谢大家,我再试试

tonylgh 发表于 2023-5-18 09:07:19

试过了,可以!谢谢
页: [1]
查看完整版本: STC8H8K64U单片机串口3发送十六进制数组数据