Linux通过i2c-dev的smbus函数和STM32的HAL_i2c_slave通信
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。