我使用CH341T的USB转I2C功能(在淘宝上买的转接器),从windows11上面给stm32的开发板发送数据。
现在遇到的问题是,在线上抓到的数据是对的,但是开发板的代码却接收不到数据,可能是什么原因造成的?
开发板的代码是stm32官方的i2c通讯代码,和树苺派能正常通讯,应该不会是代码的问题。
热门产品 :
CH390:以太网控制器芯片
我使用CH341T的USB转I2C功能(在淘宝上买的转接器),从windows11上面给stm32的开发板发送数据。
现在遇到的问题是,在线上抓到的数据是对的,但是开发板的代码却接收不到数据,可能是什么原因造成的?
开发板的代码是stm32官方的i2c通讯代码,和树苺派能正常通讯,应该不会是代码的问题。
windows上使用的是CH341PAR.EXE的“两线串口”的功能
您好,如上能抓取到CH341有波形输出,芯片工作状态应是正常的。您可看下双方是否有速率不匹配,或者单片机端做Slave模式时需要有间隔时间(地址和数据间间隔、连续数据间间隔等)
多谢帮助,问题找到了。是开发板接收的buffer长度必须要严格匹配发送的长度,不能长也不能短。不能先收几个字节长度,处理一下,再收几个字节真正数据这种。
另外像我们这种指令式的外设,上位机在发的时候,要调用两次streamI2C。先写命令不读,sleep(100),再发读指令。
好的,感谢反馈,有问题随时沟通。