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_*
HAL库版本缺陷。 硬件限制,STM32L0的I2C外设可能对从机模式的支持不完善,导致中断或DMA触发条件不满足。 升级HAL库,检查STM32CubeIDE是否为最新版本,并更新HAL库至最新版。 放弃中断/DMA模式,改用轮询模式,通过超时机制模拟非阻塞操作 可以向ST官方提交Bug报告
页:
[1]