Linux通过i2c-dev的smbus函数和STM32的HAL_i2c_slave通信

qq964939641 2021-01-21 05:05:32
Linux系统做主机,stm32做从机。通过smbus总线通信。

stm32用的库函数HAL_I2C_Slave_Transmit和HAL_I2C_Slave_Receive,可以多字节收发

Linux系统用的i2c_smbus_read_byte和i2c_smbus_write_byte,只能单字节收发

双方能够通信,但是只能单字节的收发。

我想问怎么才能多字节的读写?如果Linux系统用i2c_smbus_write_block_data函数,需要发送寄存器地址,STM32没有寄存器地址。

或者有什么其它方法能实现这样的功能:Linux系统发送自定义命令,比如0x1234。STM32收到后,判断命令等于0x1234,然后发回数据0x5678。Linux系统接收到数据0x5678。
...全文
431 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

27,370

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧