stm32f103 I2C DMA方式使用失败

来源:互联网 发布:软件生产线技术介绍 编辑:程序博客网 时间:2024/06/08 02:51

正常使用STM32硬件I2C没有问题,本想尝试更好的方法比如DMA方式,却失败了。

这个问题已经看了两天了,思路也有很多,但都没能解决问题

1.该开的中断都已经开启比如DMA通道的中断,I2C事件中断都开启。

2.调用        

ret[4] = HAL_I2C_Master_Transmit_DMA(&hi2c1, Buf[4], Buf+6, 1);
i2cState = HAL_I2C_Master_Receive_DMA(&hi2c1, Buf[4], &ret[7], 1);

第二次读总是会返回BUSY,就是说还没发送完的感觉,但从逻辑分析仪上看是发送完了的。

3.还有HAL_I2C_Mem_Read_DMA调用这个接口,从逻辑分析仪上看波形,读取的寄存器的值都是对的,但传进去的参数却还是没有读到正确的值。


HAL库的版本也更新到最新的1.6.0

官方HAL库的文档也看过了,都没有帮助


暂时先放弃了,以后有时间再看,先记录下。