Skip to content

drinktoomuchsax/sc8886s.c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

sc8886s.c

本项目为 SC8886S 电源管理芯片的驱动库,采用 C 语言实现,兼容多种嵌入式平台(如 ESP-IDF 4.x/5.x、RTOS 等),支持灵活的寄存器批量操作、位域抽象、I2C 线程安全访问等高级特性。

主要特性

  • I2C 互斥锁保护:防止多线程/中断下的总线竞争,保证数据一致性。
  • 寄存器位域抽象:支持跨寄存器位域的读写,自动掩码与位移,极大简化寄存器操作。
  • 批量寄存器操作:支持批量配置,自动分组优化读写次数,提升效率。
  • 平台兼容性强:兼容 ESP-IDF 4.x/5.x,支持 FreeRTOS/裸机等多种环境。
  • 丰富的注释与示例:每个核心函数均有详细注释,便于二次开发和维护。

典型用法

// 初始化互斥锁(必须)
sc8886s_mutex_init();

// 硬件初始化(批量配置寄存器)
sc8886s_hw_init();

// 设置充电电压/电流
sc8886s_set_charge_voltage(8400); // 单位 mV
sc8886s_set_charge_current(2000); // 单位 mA

// 读取 ADC 电压/电流
uint16_t vbat = 0;
sc8886s_adc_read(ADC_VBAT, &vbat);

代码亮点

  • 位域掩码与跨寄存器处理:自动判断字段是否跨寄存器,统一接口读写,极大提升代码健壮性。
  • 批量操作机制:通过 sc8886s_batch_handle_t,可一次性配置多个寄存器字段,适合复杂初始化场景。
  • 错误处理与日志:统一的错误码与日志输出,便于调试和集成。

About

南芯SC8886s.c充电IC驱动

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages