之前想用STM32F103C8T6硬件IIC驱动MAX30102但AI之后被告知此芯片有硬件IIC的缺陷。偶然买得一块STM32H743VIT6最小系统板想用这个来驱动MAX30102也没成功(出了GND其他配置的引脚均有高电平但MAX30102点不亮同一块MAX30102在STM32F103C8T6的DEMO里能正常跑)故想请教是否有硬件IIC驱动MAX30102的教程GPIO:PC0: RED LED (推挽输出, 低电平熄灭)PC13: KEY (输入EXTI, 内部上拉, 下降沿触发)PE12: MAX_INT (EXTI, 内部上拉, 下降沿触发)I2C2 (硬件 I2C): PB10SCL, PB11SDA[STATE_IDLE] 初始状态, RED熄灭, MAX30102关断│▼ 按下 KEY (PC13)[STATE_WARMUP]• 通过 I2C 初始化并启动 MAX30102 (SpO2模式)• 使能 PE12 外部中断 (MAX_INT)• RED LED 开始 500ms 周期翻转闪烁• 持续 5 秒预热期, 不输出数据│▼ 5秒超时[STATE_MEASURING]• PE12 下降沿中断触发 → 读取 MAX30102 FIFO (IRRED原始数据)• 数据存入环形缓冲区• 每 2 秒计算一次 HR/SpO2• 通过 USART1 发送: SPO2xx%,HRxxBPM\\r\\n• RED LED 保持 500ms 翻转│▼ 再次按下 KEY (PC13)[STATE_STOPPING] → 回到 [STATE_IDLE]• 通过 I2C 发送关断命令 (MODE_CONFIG | SHDN)• 禁用 PE12 外部中断• RED LED 熄灭 (拉低)• 清空缓冲区附件1https://wwanr.lanzouw.com/i2jxs3p8m8na STM32F103C8T6MAX30102例程附件2https://wwanr.lanzouw.com/ijp1B3p8maxc STM32H743VIT6MAX30102自己用AI辅助改的编译能过但运行不了
MAX30102驱动问题求解
之前想用STM32F103C8T6硬件IIC驱动MAX30102但AI之后被告知此芯片有硬件IIC的缺陷。偶然买得一块STM32H743VIT6最小系统板想用这个来驱动MAX30102也没成功(出了GND其他配置的引脚均有高电平但MAX30102点不亮同一块MAX30102在STM32F103C8T6的DEMO里能正常跑)故想请教是否有硬件IIC驱动MAX30102的教程GPIO:PC0: RED LED (推挽输出, 低电平熄灭)PC13: KEY (输入EXTI, 内部上拉, 下降沿触发)PE12: MAX_INT (EXTI, 内部上拉, 下降沿触发)I2C2 (硬件 I2C): PB10SCL, PB11SDA[STATE_IDLE] 初始状态, RED熄灭, MAX30102关断│▼ 按下 KEY (PC13)[STATE_WARMUP]• 通过 I2C 初始化并启动 MAX30102 (SpO2模式)• 使能 PE12 外部中断 (MAX_INT)• RED LED 开始 500ms 周期翻转闪烁• 持续 5 秒预热期, 不输出数据│▼ 5秒超时[STATE_MEASURING]• PE12 下降沿中断触发 → 读取 MAX30102 FIFO (IRRED原始数据)• 数据存入环形缓冲区• 每 2 秒计算一次 HR/SpO2• 通过 USART1 发送: SPO2xx%,HRxxBPM\\r\\n• RED LED 保持 500ms 翻转│▼ 再次按下 KEY (PC13)[STATE_STOPPING] → 回到 [STATE_IDLE]• 通过 I2C 发送关断命令 (MODE_CONFIG | SHDN)• 禁用 PE12 外部中断• RED LED 熄灭 (拉低)• 清空缓冲区附件1https://wwanr.lanzouw.com/i2jxs3p8m8na STM32F103C8T6MAX30102例程附件2https://wwanr.lanzouw.com/ijp1B3p8maxc STM32H743VIT6MAX30102自己用AI辅助改的编译能过但运行不了