主题中讨论的其他器件:BQ25892、
您好!
我正在尝试使用 cc2640 i2c 接口配置 bq25892电池充电器。 但是、当我第一次更新值并尝试读取这些值时、我会遇到一个问题、这是我更新的正确值、但下次我尝试读取相同的值时、它会读取默认值。
静态 uint8_t REG04[2]={0x04、0x2C};/0x04为电池充电器的 REG04、0x2C 为快速充电电流限制设置
静态空 Battery_charger_init ()
{
I2C_STATUS = bspI2cOpen();
if (i2c_status =true)
{
while (bspI2cSelect (interface_0、slaveaddr_charger)==0) //slaveaddr_charge = 0x6B、interface_0 = bsp_i2C_interface_0
{
Task_sleep (ms_2_tick);//(((100)* 1000)/ Clock_tickPeriod)
}
{
if (bspI2cWrite (REG04、2)=true)
{
UART_WRITE (SbpUartHandle、"REG0A writen \n\r\n、15);
/*成功*/
}
}
}
bspI2cDeselect ();
bspI2cClose ();
}
简单的 bleperipheral 中
// 每10秒发生一次电池事件
IF (事件和 BAT_TIMER_EVT)
{
事件&=~BAT_TIMER_EVT;
I2C_STATUS = bspI2cOpen();
if (i2c_status =true)
{
UART_WRITE (SbpUartHandle、"i2c true \n\r\n、11);
while (bspI2cSelect (interface_0、slaveaddr_charger)=true) //interface_0 = bsp_i2C_interface_0、slaveaddr_charger = 6B
{
Task_sleep (ms_2_tick);
}
{
if (bspI2cWriteRead (®0000、1、®00、1)=true)
{
/*成功*/
UART_WRITE (SbpUartHandle、"\n\r reg00 \n\r"、7);
UART_WRITE (SbpUartHandle、®00、1);
}
}
bspI2cDeselect ();
bspI2cClose ();
}