HHJuan 发表于 2024-2-27 13:25:00

乘风飞扬 发表于 2024-2-27 11:15
能确定RxBuffer里面的内容吗?打印前往RxBuffer写几个固定值试试。

ESP32 IIC主机发送的都是固定值,就是我需要在STC这边分别打印一下RxBuffer的值吗?

HHJuan 发表于 2024-2-27 14:33:09

乘风飞扬 发表于 2024-2-27 11:15
能确定RxBuffer里面的内容吗?打印前往RxBuffer写几个固定值试试。



打印RxBuffer里面的内容,结果是为0
运行结果如下:


乘风飞扬 发表于 2024-2-27 15:13:49

HHJuan 发表于 2024-2-27 14:33
打印RxBuffer里面的内容,结果是为0
运行结果如下:

我指的是这样:
Rxbuffer = 0x11;
Rxbuffer = 0x22;
Rxbuffer = 0x33;
Rxbuffer = 0x44;
printf("Rxbuffer=%bd\r\n",Rxbuffer);
printf("Rxbuffer=%bd\r\n",Rxbuffer);
printf("Rxbuffer=%bd\r\n",Rxbuffer);
printf("Rxbuffer=%bd\r\n",Rxbuffer);

HHJuan 发表于 2024-2-27 15:51:57

乘风飞扬 发表于 2024-2-27 15:13
我指的是这样:
Rxbuffer = 0x11;
Rxbuffer = 0x22;


我根据您提供的代码放在while(1)里面,加上了1000ms的延时,



通过查看打印的结果,其字符串输出的结果如下:



乘风飞扬 发表于 2024-2-27 17:03:30

HHJuan 发表于 2024-2-27 15:51
我根据您提供的代码放在while(1)里面,加上了1000ms的延时,




字符串方式打印出来的值没问题,就是输入的值。
只不过输入固定值0x11,0x22,0x33,0x44是十六进制数据,打印出来的17,34,51,68是十进制数据。
把 %bd 改成 0x%bx 就能打印出 0x11,0x22,0x33,0x44

HHJuan 发表于 2024-2-27 18:44:19

乘风飞扬 发表于 2024-2-27 17:03
字符串方式打印出来的值没问题,就是输入的值。
只不过输入固定值0x11,0x22,0x33,0x44是十六进制数据,打 ...

嗯嗯,明白,字符串打印没问题,能理解。
那您的意思是我在实现ESP32和STC8H8K64U之间的IIC通信,主机发过来的数据有问题?
我现在就是想解决输入的值出现的问题。

HHJuan 发表于 2024-2-27 18:47:18

乘风飞扬 发表于 2024-2-27 17:03
字符串方式打印出来的值没问题,就是输入的值。
只不过输入固定值0x11,0x22,0x33,0x44是十六进制数据,打 ...

在ESP32上,我是直接通过IIC 发送一个固定值过去
ESP32端:
Wire.write(1);    //传送数字字符串

HHJuan 发表于 2024-2-29 15:57:12

最近记录最新进展:
所做的修改:

STC8H8K64U IIC从机:

                        if(DisplayFlag)
                        {
                                DisplayFlag = 0;
                                if(RxBuffer < 10)
                                {
                                        Test_cnt = RxBuffer+(RxBuffer*10)+(RxBuffer*100)+(RxBuffer*1000);
                                                printf("I2CRXD=%bd\r\n",I2CRXD);//尝试打印接收到的消息
                                }


ESP32 IIC主机的代码

Wire.write(num);    //传送数字字符串
Serial.println(num);
不断发送自增的数字字符串


测试结果发现:STC8H8K64U接收到的消息是ESP32发送消息*2的内容,但当发送的数据是3位数后,STC接收到的数据是后2位数的结果
请问这是哪里有问题?应该如何修改?


HHJuan 发表于 2024-2-29 17:23:44

为什么STC8H8K64U作为IIC从机做接收的时候,RxBuffer没有数据,打印出来的都是0?

页: 1 [2]
查看完整版本: STC8H8K64U与ESP32进行IIC通讯,数据错误问题