# 美甲灯I²C共享引脚目标配置 A49

当前新增lamp_i2c_pins.c/h，并在实际目标main启动调用初始化、每次输入采样调用可用性检查。A39板图未改。候选PB6/AF6 SCL、PB7/AF6 SDA来自ST DS12991 Rev6表14；TSSOP20图4及表12列明共用引脚：SCL物理20脚还绑定PB3/4/5，SDA物理1脚绑定PB8。ST技术人员对绑定与SYSCFG重映射的区别另作官方回复，URL见source_references.json。网页PDF当前取得100页解析内容；终端curl仍超时，本包不声称已下载完整官方PDF，也不使用旧论坛打印件作为数据手册。

初始化先启用GPIOB与I2C1寄存器访问时钟，拒绝已置PE的I2C1及锁定组。先把PB3..PB8全组置模拟输入，清上拉下拉与非选中AF，再预置PB6/PB7高锁存、开漏，最后设AF6复用。其他绑定GPIO保持模拟输入，无内部上下拉。运行时检查别名模式、AF、开漏、时钟及锁状态，任何异常使可用性返回false。此函数不写PE/START/TIMINGR，不读取PCA，不释放LED复位/关断；PB9复位、PB0键及组外GPIO配置保留。GPIO初始化只在启动调用；未来恢复总线不能直接重入此函数而忽略安全状态。

ASan/UBSan主机测试使用实际源及厂家寄存器结构，覆盖零/全1原配置、6个锁引脚、运行中PE拒绝、全部组内模式变化、AF/上下拉/开漏/时钟被改变、组外配置保存。把两处AF6一致改成AF5的真实变异源仍被独立AF6断言拒绝。原有启动关断/映射、IR、ADC72情况、NTC4096码、测量36855情况、PCA单芯片与业务协议回归继续运行。目标编译及ELF检查证明调用绑定，不代表实物时序或通信成功。

下一步尚需I²C时钟/滤波/TIMINGR、带预算的寄存器传输与错误恢复、A48三芯片排程接入、实际线路及电流/光学/热资格验证。A48是独立候选，本轮没有将其接入main。无PCA回调、无故障回读、无LED输出、无实物测试。LED驱动历史子电路仍无封装与PCB，禁止把本轮目标镜像当三款制造放行。三款20项功能效果仍0项实测确认；完整整机千台成本未完成实际锁料报价。无采购/外联/烧录/通电/下单。

复现：python3 test_i2c_pins.py；sh run_checks.sh。需要macOS cc、Python3、arm-none-eabi工具链。器件源码上游版本见firmware内UPSTREAM-VERSIONS.md。本包为工程评审，FABRICATION_HOLD。
