Treasure101 发表于 2025-8-18 21:00

STM的I2C HAL驱动存在严重问题

这些驱动在STM32CubeIDE-1.7.0版本中仍未修复。
这些驱动有一个未解决的案例:https://github.com/STMicroelectronics/stm32l0xx_hal_driver/issues/5。官方提供的示例代码也无法正常运行(问题主要出在_IT和_DMA系列函数上)。

举例说明:
HAL_I2C_Slave_Receive_IT和HAL_I2C_Slave_Receive_DMA函数从未调用过HAL_I2C_SlaveRxCpltCallback或其他任何回调函数,这在实际中完全无法使用。这个问题急需修复。
HAL_I2C_Master_Transmit_IT和HAL_I2C_Master_Transmit_DMA却能正常工作,并能正确调用HAL_I2C_MasterTxCpltCallback回调函数。
是否有其他电工正成功使用过这些基础功能?

另外,关于以下函数是否有实际可用的使用文档:
HAL_I2C_Mem_Write
HAL_I2C_Mem_Read
HAL_I2C_Master_Seq_Transmit_*
HAL_I2C_Master_Seq_Receive_*


麻花油条 发表于 2025-8-19 11:55

HAL库版本缺陷。

duo点 发表于 2025-8-19 11:55

硬件限制,STM32L0的I2C外设可能对从机模式的支持不完善,导致中断或DMA触发条件不满足。

onlycook 发表于 2025-8-19 11:56

升级HAL库,检查STM32CubeIDE是否为最新版本,并更新HAL库至最新版。

duo点 发表于 2025-8-19 11:57

放弃中断/DMA模式,改用轮询模式,通过超时机制模拟非阻塞操作

七毛钱 发表于 2025-8-19 11:58

可以向ST官方提交Bug报告
页: [1]
查看完整版本: STM的I2C HAL驱动存在严重问题