發表文章

目前顯示的是 4月, 2018的文章

STM32 讀取 BQ27541 電量

圖片
STM32 讀取 BQ27541 這是個人最近所接到的案子,要讀取電池包中的SOC,花了幾天終於完成了經驗總結如下: TI bq27541 datasheet 對I2C介面的讀取如下圖,                                                                         圖1  我要採用的是(c) 1 byte-read, 用的是ST 範例程式 M24C08 EEPROM讀取的範例來寫: 用的是 MultiByteRead中這函式來讀取。 main 中用的是 I2C_EE_MultiByteRead(Rx1 ,0x2c, u16 NumByteToRead)   註 0x2c 是BQ27541讀取 SOC            而圖1 的時序我把它拆成下面七個步驟 Host Generated   指令 Fuel Gauge Generated 1 Start, I2C_GenerateSTART(I2C1, ENABLE);   while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));  2 ADDR[6:0] 0 I2C_Send7bitAddress(I2C1, 0xaa, I2C_Direction_Transmitter);       Acknowledge while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)); 3 CMD[7:0] I2C_SendData(I2C1, (u8)ReadAddr); Acknowledge     while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)); 4 Start,