2019-12-11 18:20发布
szjqt 发表于 2019-4-16 17:15 软件的你可以这样写,硬件这样不行的哦。 硬件要把从端掉线,干扰等各种问题都有考虑进去。主机是根据从 ...
最多设置5个标签!
稍微改了一下,加了个while(Wire.available() == 0){}等待数据,现在数据可以从STM32不断的向Arduino传输,其中有一个值wire.avaiable()这个不应该是返回缓冲区的字节数嘛!这里很奇怪的返回了-1,这是什么回事?
然后我下一步想做的是从Arduino发送2个字节给STM32, STM32接收到数据之后直接发送回Arduino。
Arduino这边我是这么写的:
byte my_buffer[2] = {1,1};
Wire.beginTransmission(0x1E);
Wire.write(my_buffer,2);
Wire.endTransmission();
STM32这边:
在while(1)里首先清理buffer,全初始化为0x01,然后开始接收数据
HAL_Delay(10);
HAL_I2C_Slave_Receive_IT(&hi2c1, re_buffer, 2)
之后的根图片的一样,但是没办法实现,不知道是哪里出了问题,还请大佬提示一下
一周热门 更多>