menuconfig配置充电管理模块为SF32l52自带的充电管理,按照如下方式驱动。可以设置充电电流,无法设置充满电压,到4.2v之后就充不上去了,电流降到了6mA。
/**
* @brief Main program
* @param None
* @retval 0 if success, otherwise failure number
*/
int main(void)
{
rt_err_t charge_result;
// 初始化充电器参数
rt_kprintf("Initializing charger...\n");
// 设置充电满电电压为4.35V (4350mV)
charge_result = rt_charge_set_target_volt(4300);
if (charge_result != RT_CHARGE_EOK) {
rt_kprintf("Failed to set target voltage: %d\n", charge_result);
} else {
rt_kprintf("Target voltage set to 4.35V\n");
}
// 设置充电电流为300mA
charge_result = rt_charge_set_cc_current(300);
if (charge_result != RT_CHARGE_EOK) {
rt_kprintf("Failed to set charge current: %d\n", charge_result);
} else {
rt_kprintf("Charge current set to 300mA\n");
}
// 设置保护电压为4.6V (4600mV)
charge_result = rt_charge_set_over_volt(4600);
if (charge_result != RT_CHARGE_EOK) {
rt_kprintf("Failed to set over voltage: %d\n", charge_result);
} else {
rt_kprintf("Over voltage protection set to 4.6V\n");
}
// 启用充电
charge_result = rt_charge_enable(1);
if (charge_result != RT_CHARGE_EOK) {
rt_kprintf("Failed to enable charging: %d\n", charge_result);
} else {
rt_kprintf("Charging enabled\n");
}
while (1)
{
// ds_twr_responder();
rt_thread_mdelay(5000);
//rt_kprintf("__main loop__\r\n");
}
return RT_EOK;
}
我已经修改了sdk的一个问题,如下图
但是依然充电模块依然无法正常工作,会是什么问题呢?日志如下:

