你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f103 I2C DMA方式使用失败

[复制链接]
zhoubintiantian 提问时间:2017-9-7 20:45 /

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

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调用这个接口,从逻辑分析仪上看波形,读取的寄存器的值都是对的,但传进去的参数却还是没有读到正确的值。


不知道有没有遇到同样问题,或者知道答案的大神,帮忙帮忙,找问题的过程很痛苦。


收藏 1 评论4 发布时间:2017-9-7 20:45

举报

4个回答
1401696616 回答时间:2017-9-29 09:53:27
刚签到的时候看到你的问题的  ,  刚接触不久没有什么思路把你解决 ,程序传上来可以帮你分析一下 我用的是KEIL

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

1401696616 回答时间:2017-9-29 09:54:12
你有的芯片是什么 型号的
无薪税绵 回答时间:2017-9-29 11:20:24
不建议楼主使用HAL。

这里的九楼有成功的参考代码,供楼主参考:
http://www.openedv.com/posts/list/18461.htm

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

雪花微风 回答时间:2017-9-29 11:33:28
很多芯片在写完之后后是不能立即进行读取的,芯片不会有回应。需要有一定的时间等待。看芯片有没有介绍,写完后,是否是要有MS级以上的间隔,或10MS以上,,,才能进行读取动作。。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版