请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4309|回复: 7
收起左侧

[I2C] stm32 I2C DMA方式使用失败

[复制链接]

41

主题

112

回帖

235

积分

高级会员

积分
235
发表于 2020-10-29 15:04:25 | 显示全部楼层 |阅读模式
正常使用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库的文档也看过了,都没有帮助

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
发表于 2020-10-29 15:30:59 | 显示全部楼层
没整过硬件I2C
回复

使用道具 举报

41

主题

112

回帖

235

积分

高级会员

积分
235
 楼主| 发表于 2020-10-29 16:40:04 | 显示全部楼层

硬汉,敢挑战一下吗?
回复

使用道具 举报

41

主题

112

回帖

235

积分

高级会员

积分
235
 楼主| 发表于 2020-10-29 17:59:15 | 显示全部楼层

是硬汉,就搞一把硬的吧!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
发表于 2020-10-30 00:13:14 | 显示全部楼层
好的,后面有时间了搞搞。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2021-3-7 18:30:54 | 显示全部楼层
大神,方便发我一份h7硬件I2C的程序么,最近也在搞,总不出东西。邮箱409815493@qq.com
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106398
QQ
发表于 2021-3-8 14:38:38 | 显示全部楼层
zjy13387838923 发表于 2021-3-7 18:30
大神,方便发我一份h7硬件I2C的程序么,最近也在搞,总不出东西。邮箱

STM32CubeH7的软件包里面有。
回复

使用道具 举报

4

主题

6

回帖

18

积分

新手上路

菜鸟在飞

积分
18
发表于 2022-10-9 14:27:51 | 显示全部楼层
伙计 问题解决了吗,我也遇到了同样的问题,我的是一块键盘驱动芯片,第一次可以正确读出数值,但是第二次就busy了。我暂时的办法是将iic复位重新初始化一遍,但是这样一来影响到了我按键点亮的操作,而且用一次复位一次总感觉不是事。如果您已经解决了的话,能不能说说解决办法那,感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-19 03:00 , Processed in 0.289554 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表