主题中讨论的其他器件:BQ25713、
您好!
当我回读 BQ25713 ADC 寄存器值不正确时、所有寄存器(VBAT、VSYS、ICHG、IDCHG、IIN、 PSYS、VBUS、CMPIN)值不正确。
2节锂离子电池;适配器输入电压:5V3A;
寄存器设置值:
充电选项0 170E
充电电流寄存器0400
充电电压寄存器20D0
最低系统电压1900
PROCHOT 状态寄存器4000
充电选项1 9201
充电选项2 417F
充电选项3 0010
PROCHOT 选项0 4C37
PROCHOT 选项1 8001
ADC 选项 E07F
其他寄存器默认设置;
这会在设置后读回值
测量输入电压=5V;测量输入电流 =1920mA;
测量电池电压=8.3V;
代码:
void set_bq25713_main_reg (void)
{
uint8_t device_ID;
//读取 ID
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (DeviceID_ADDR);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
DEVICE_ID = I2C_READ_NACK ();
if ((device_ID =IC_BQ25713B)||(device_ID =IC_BQ25713))
{
rt_kprintf ("\r\n 与 bq25713"的通信成功);
}
其他
{
rt_kprintf ("\r\n 与 bq25713"的通信失败);
}
//ChargeOption0
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption0_LSB);
I2C_WRITE (0x0E);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption0_MSB);
I2C_WRITE (0x17);
I2C_STOP();
Board_func_delayU (50000);
//ChargeOpion1.
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption1_LSB);
I2C_WRITE (0x01);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption1_MSB);
I2C_WRITE (0x92);
I2C_STOP();
Board_func_delayU (50000);
//ChargeOpion2.
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption2_LSB);
I2C_WRITE (0x7F);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption2_MSB);
I2C_WRITE (0x41);
I2C_STOP();
Board_func_delayU (50000);
//ChargeOpion3.
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption3_LSB);
I2C_WRITE (0x10);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption3_MSB);
I2C_WRITE (0x00);
I2C_STOP();
Board_func_delayU (50000);
//ProchotOption0
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ProchotOption0_LSB);
I2C_WRITE (0x37);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ProchotOption0_MSB);
I2C_WRITE (0x4C);
I2C_STOP();
Board_func_delayU (50000);
//ProchotOption1.
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ProchotOption1_LSB);
I2C_WRITE (0x01);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ProchotOption1_MSB);
I2C_WRITE (0x80);
I2C_STOP();
Board_func_delayU (50000);
//ChargerStatus
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargerStatus_LSB);
I2C_WRITE (0x00);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargerStatus_MSB);
I2C_WRITE (0x00);
I2C_STOP();
Board_func_delayU (50000);
//ProchotStatus
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ProchotStatus_LSB);
I2C_WRITE (0x00);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ProchotStatus_MSB);
I2C_WRITE (0x40);
I2C_STOP();
Board_func_delayU (50000);
// MinSystemVoltage
// I2C_start (slave_address<<1、I2C_DIRECTION 发送器);
// I2C_write (MinSystemVoltage_LSB);
// I2C_WRITE (0x00);
// I2C_stop ();
// board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (MinSystemVoltage_MSB);
I2C_WRITE (0x19);
I2C_STOP();
Board_func_delayU (50000);
//ChargeCurrent
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeCurrent_LSB);
I2C_WRITE (0x00);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeCurrent_MSB);
I2C_WRITE (0x04);
I2C_STOP();
Board_func_delayU (50000);
//ADCOption
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCOption_LSB);
I2C_WRITE (0x7F);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCOption_MSB);
I2C_WRITE (0xA0);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCOption_LSB);
I2C_WRITE (0x7F);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCOption_MSB);
I2C_WRITE (0xE0);
I2C_STOP();
Board_func_delayU (50000);
}
void read_bq25713_main_reg (void)
{
// uint8_t device_ID;
uint8_t CHARGE_opt0_H、CHARGE_OPT1_H、CHARGE_OPt2_H、CHARGE_OPt3_H;
uint8_t CHARGE_opt0_L、CHARGE_OPT1_L、CHARGE_opt2_L、CHARGE_opt3_L;
uint8_t PROCHOT_opt0_H、PROCHOT_opt0_L;
uint8_t PROCHOT_OPT1_H、PROCHOT_OPT1_L;
uint8_t CHARGE_CURRENT_H、CHARGE_CURRENT_L;
uint8_t max_charge volt_H、max_charge volt_L;
uint8_t min_sys_volt;
uint8_t in_current;
uint8_t temp_LSB、temp_MSB;
//¶ÁCharge 选项0 ¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption0_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
CHARGE_opt0_L = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption0_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
CHARGE_opt0_H = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nChargeOption0 = 0x%X"、(uint16_t)(CHARGE_opt0_H)<<8 | CHARGE_opt0_L);
//¶ÁCharge 选项1 ¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption1_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
CHARGE_OPT1_L = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption1_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
CHARGE_OPT1_H = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nChargeOption1 = 0x%X"、(uint16_t)(CHARGE_OPT1_H)<<8 | CHARGE_OPT1_L);
//¶ÁCharge 选项2 ¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption2_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
CHARGE_opt2_L = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption2_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
CHARGE_opt2_H = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nChargeOption2 = 0x%X"、(uint16_t)(CHARGE_opt2_H)<<8 | CHARGE_opt2_L);
//¶ÁCharge 选项3 ¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption3_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
CHARGE_opt3_L = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargeOption3_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
CHARGE_opt3_H = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nChargeOption3 = 0x%X"、(uint16_t)(CHARGE_opt3_H)<<8 | CHARGE_opt3_L);
//¶ÁMax 充电电压¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (MaxChargeVoltage_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
MAX_CHARGE_VOLT_L = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (MaxChargeVoltage_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
MAX_CHARGE_VOLT_H = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nMaxChargeVoltage =%DMV"、(uint16_t)(max_charge_volt_H)<<8 | max_charge_volt_L);
//¶ÁProchot 选项0 ¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ProchotOption0_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
PROCHOT_opt0_L = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ProchotOption0_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
PROCHOT_opt0_H = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nProchotOption0 = 0x%X"、(uint16_t)(PROCHOT_opt0_H)<<8 | PROCHOT_opt0_L);
//¶ÁProchot 选项1 ¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ProchotOption1_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
PROCHOT_OPT1_L = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ProchotOption1_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
PROCHOT_OPT1_H = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nProchotOption1 = 0x%X"、(uint16_t)(PROCHOT_OPT1_H)<<8 | PROCHOT_OPT1_L);
//¶Á ADCOption ¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCOption_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_LSB = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCOption_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_MSB = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nADCOption = 0x%X"、(uint16_t)(temp_msb)<<8 | temp_LSB);
//¶Á ChargerStatus ¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargerStatus_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_LSB = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ChargerStatus_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_MSB = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nChargerStatus = 0x%X"、(uint16_t)(temp_msb)<<8 | temp_LSB);
//¶Á ProchotStatus ¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ProchotStatus_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_LSB = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ProchotStatus_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_MSB = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nProchotStatus = 0x%X"、(uint16_t)(temp_msb)<<8 | temp_LSB);
//¶Á IN_DPM (使用中的输入电流限制)¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (IN_DPM_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_LSB = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (IN_DPM_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_MSB = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nIN_DPM =%DMA"、(uint16_t)(temp_msb)*50);
//¶Á InputVoltage (输入电压)¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (InputVoltage_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_LSB = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (InputVoltage_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_MSB = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nInputVoltage =%DMV"、(((uint16_t)(temp_msb)<<8)| temp_LSB));
//¶Á MinSystemVoltage (最小系统电压)¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (MinSystemVoltage_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_LSB = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (MinSystemVoltage_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_MSB = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nMinSystemVoltage =%DMV"、(uint16_t)(temp_MSB<8)| temp_LSB);
//¶Á IIN_HOST (主机设置的输入电流限制)¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (IIN_HOST_LSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_LSB = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (IIN_HOST_MSB);
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_MSB = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nIIN_host =%DMA"、(uint16_t)(temp_msb)*50);
//读取 ADC 顺序:VBAT、VSYS、ICHG、IDCHG、IIN、 PSYS、VBUS、CMPIN。
//¶Á ADCVSYSVBAT (系统电压和电池电压)¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCVSYSVBAT_LSB);//VBAT
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_LSB = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCVSYSVBAT_MSB);//VSYS
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_MSB = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nADCVSYSVBAT =%DMV、%DMV"、(uint16_t)(temp_msb)<<6、(uint16_t)(temp_LSB)<<6);
//¶Á ADCIBAT (充电电流)¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCIBAT_MSB);// ICHG
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
CHARGE_CURRENT_H = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCIBAT_LSB);//IDCHG
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
CHARGE_CURRENT_L = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nADCIBAT = ichg:%dma、idchg:%dma"、(uint16_t)(charge_current_H)<<6、(uint16_t)(charge_current_L)<<8);
//¶Á ADCIINCMPIN (输入电流和 cmpin 电压)¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCIINCMPIN_MSB);//IIN
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_MSB = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nADCIIN =%DMA"、(uint16_t) temp_LSB*50);
//¶Á ADCVBUS_PSYS (输入电压和系统功率)¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCVBUS PSYS_LSB);//PSYS
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_LSB = I2C_READ_NACK ();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCVBUS PSYS_MSB);//VBUS
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_MSB = I2C_READ_NACK ();
Board_func_delayU (50000);
rt_kprintf ("\r\nADCVBUS_PSYS =%DMV_%DMV"、(uint16_t)(temp_MSB)<<6、(uint16_t)(temp_LSB)*12);
//¶Á ADC CMPIN (cmpin 电压)¼Ä´æÆ÷
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 发送器);
I2C_WRITE (ADCIINCMPIN_LSB);//CMPIN
I2C_STOP();
Board_func_delayU (50000);
I2C_START (SLAVE_ADDRESS<<1、I2C_DIRECTION 接收器);
TEMP_LSB = I2C_READ_NACK ();
rt_kprintf ("\r\nADC CMPIN =%DMV"、(uint16_t) temp_LSB*12);
rt_kprintf ("\r\n");
}
所以、我不知道 问题是什么!
可以帮帮我吗? 谢谢!
E-MEIL:527419127@qq.com