rt_i2c_transfer函数执行返回-8?

发表在 I2C2019-8-18 23:17 [复制链接] 12 553

本帖最后由 KelvinHe 于 2019-8-18 23:17 编辑
0 G: q, M% `; P! c6 G7 J* `7 S, `% h
请教个问题,最近打算将RT-Thread移植到ufun开发板上,在调试IIC外设(OLED模块,IIC接口)时,遇到个问题。
2 q1 G+ {0 Z0 A& q首先,硬件设备是ok的,已经用测试代码调通了,能正常显示,只是RT-thread的IIC未调通。
1 v) m' V, m( V8 T( f
+ B9 H% z0 R7 O1.注册设备是成功的:2 D! @& B3 v- I4 _" Y+ t
Snipaste_2019-08-18_23-06-37.jpg
! Y; C- U. A) Q. e) ~2 q5 z2 |& B2 o/ k4 m. O
2.然而在使用rt_i2c_transfer()函数时,遇到了问题:
- H1 U& k* f  T6 o6 B 调试函数返回-8.jpg 5 Z& j7 g- r, U

: `! k  O. o; ^/ A9 @1 { 返回-8.jpg 3 ^  r" C( N4 r4 A/ W( r

1 [2 X7 _( T$ K( H1 T2 G+ w( U6 i7 S3.采用模拟IIC,硬件使用PB6,PB7引脚。
1 O" M; k4 h2 O6 M! k9 |: O
  1. #define BSP_I2C1_SCL_PIN         22
    % N' l7 t' D; d) c$ v" D
  2. #define BSP_I2C1_SDA_PIN         23
复制代码
请教下,可能是哪些地方出了问题呢?
5 i) k3 R/ I' A# q+ x/ h8 y0 x9 @$ _# e5 \
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-8-19 09:16:35 | 显示全部楼层
-8 的错误码为 RT_EIO,跟踪一下具体在哪里返回的
使用道具 举报 回复
发表于 2019-8-23 15:22:17 | 显示全部楼层
我现在也遇到了,怎么解决?
使用道具 举报 回复
发表于 2019-8-24 19:33:06 | 显示全部楼层
xb-w 发表于 2019-8-23 15:22
  d/ N2 u, C: `$ R我现在也遇到了,怎么解决?
4 Y. c! g( u/ t, X' J
我还没解决。准确用HAL库了。
使用道具 举报 回复
发表于 2019-9-4 18:09:22 | 显示全部楼层
你好,我也遇见了返回-8,是在写完从设备地址后,i2c_waitack中返回了错误值0,导致后面返回-8,可能有哪些原因呢?
使用道具 举报 回复
发表于 2019-9-19 21:38:14 | 显示全部楼层
aprilhome 发表于 2019-9-4 18:09
( L3 T  [1 |+ v- C你好,我也遇见了返回-8,是在写完从设备地址后,i2c_waitack中返回了错误值0,导致后面返回-8,可能有哪些 ...

* P3 y" Y  j8 s; j# p我也不知道啥原因呢,请RTT技术人员来分析一下~
使用道具 举报 回复
发表于 2019-11-7 10:14:43 | 显示全部楼层
我也遇到此问题,请问您是怎么解决的?
使用道具 举报 回复
发表于 2019-12-15 19:12:22 | 显示全部楼层
我用IIC驱动BL8025也遇到同样的问题?请问大老门都解决了吗?
使用道具 举报 回复
发表于 2019-12-15 23:22:10 | 显示全部楼层
ymd5033 发表于 2019-12-15 19:123 |+ }. @2 C* }, t  G5 S
我用IIC驱动BL8025也遇到同样的问题?请问大老门都解决了吗?
+ Y( i! Y- U  k! \
我的问题解决了,把设备地址搞错了
使用道具 举报 回复
发表于 2020-1-3 18:10:42 | 显示全部楼层
我也遇到了这个问题,返回-8,我开启了#define RT_I2C_BIT_DEBUG调试,报这个错误(I2C bus error, SDA line low),我检测SDA的电平为3.3V,我用的是DS1307,上拉5V啊,怎么会拉不上去呢
: @- s* T& k) r' ]+ _" T
5 L* ?& j& L8 K' r% j$ s6 ?: |  Emsgs[0] W, addr=0x68, len=2
% ?  `+ c( V7 Gsend start condition2 T. m" `9 {8 G* ?" c' {
I2C bus error, SDA line low
4 {2 M( L3 A7 _NACK
3 h: ]* p) ~6 `4 V* O( r2 fsend bytes: NACK.( P8 ?4 n' R: S# ?* k# y
send stop condition$ o) r" `( @2 g' ?- P) `; \+ F& y
使用道具 举报 回复
发表于 2020-1-5 08:52:36 来自手机 | 显示全部楼层
可能是从设备地址不对
使用道具 举报 回复
发表于 2020-1-5 08:55:21 来自手机 | 显示全部楼层
设备地址问题
使用道具 举报 回复
发表于 2020-1-8 15:16:03 | 显示全部楼层
ymd5033 发表于 2019-12-15 23:22) E8 ]6 s1 E/ a( V. s
我的问题解决了,把设备地址搞错了

8 C# `. K9 j3 e9 o楼主解决办法是要把设备地址右移1位吗?
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

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