林中独步 发表于 2016-7-5 21:21:15

STM32 Cube I2C访问16位寄存器数据函数


利用HAL库函数,访问从设备16位寄存器机数据,函数如下:
int Dev_I2C_W16(uint16_t reg_addr,uint16_t data)
{
uint8_t tx_buffer;

tx_buffer=reg_addr>>8;//reg_MSB
tx_buffer=reg_addr;//reg_LSB
tx_buffer=data;      //data_LSB
tx_buffer=data>>8;    //data_MSB

HAL_I2C_Master_Transmit(&hi2c1, (uint16_t)I2C_ADDRESS, tx_buffer, 4, 100);

return 0;
}

求大神指导一下,这种写法是否正确?谢谢!

dsjsjf 发表于 2018-3-12 16:16:43

可以的,如果是EEPROM之类的器件可以用这个函数
HAL_I2C_Mem_Write(&hi2c3, 0xa0, StartAddr, I2C_MEMADD_SIZE_16BIT, pDataArray, Size, 1000);
页: [1]
查看完整版本: STM32 Cube I2C访问16位寄存器数据函数