Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
I2C
报一个LPC4008代码中I2C的bug
发布于 2015-07-27 10:42:00 浏览:3238
订阅该版
淘宝买的LPC4008开发板,验证I2C时发现bug 只能写一个寄存器,调了一下,发现bug如下 ``` static rt_size_t lpc_i2c_recv_bytes(LPC_I2C_TypeDef *I2Cx, struct rt_i2c_msg *msg) { rt_size_t bytes = 0; rt_size_t len = msg->len; rt_uint32_t stat = 0; while (len--) { I2Cx->CONCLR = I2C_I2CONCLR_SIC; if (len == 0) { I2Cx->CONCLR = I2C_I2CONCLR_AAC; } else { I2Cx->CONSET = I2C_I2CONSET_AA; } while (!(I2Cx->CONSET & I2C_I2CONSET_SI)); msg->buf[bytes++] = (uint8_t)(I2Cx->DAT & I2C_I2DAT_BITMASK); stat = I2Cx->STAT & I2C_STAT_CODE_BITMASK; if (len && (I2C_I2STAT_M_RX_DAT_ACK != stat)) { i2c_dbg("i2c recv error on the byte of %d,send ack error! ", bytes); return bytes; } **_ if ((len==0)&&(I2C_I2STAT_M_RX_DAT_NACK != stat))_** { i2c_dbg("i2c recv error on the byte of %d,send nack error! ", bytes); return bytes; } } return bytes; } ``` 原来是else if(I2C_I2STAT_M_RX_DAT_NACK != stat) 请验证修改
查看更多
3
个回答
默认排序
按发布时间排序
aozima
2015-07-27
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
我有空也试试
aozima
2015-07-27
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
更新后测试通过,这里确实有问题。 判断条件不充分,当读取多字节时,就提前异常返回了,并把总线给钳制起来了。 ``` software/rtthread_examples/drivers/drv_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/software/rtthread_examples/drivers/drv_i2c.c b/software/rtthread_examples/drivers/drv_i2c.c index 3928600..af26f1e 100644 --- a/software/rtthread_examples/drivers/drv_i2c.c +++ b/software/rtthread_examples/drivers/drv_i2c.c @@ -142,7 +142,7 @@ static rt_size_t lpc_i2c_recv_bytes(LPC_I2C_TypeDef *I2Cx, struct rt_i2c_msg *ms i2c_dbg("i2c recv error on the byte of %d,send ack error! ", bytes); return bytes; } - else if (I2C_I2STAT_M_RX_DAT_NACK != stat) + else if ( (len == 0) && (I2C_I2STAT_M_RX_DAT_NACK != stat) ) { i2c_dbg("i2c recv error on the byte of %d,send nack error! ", bytes); return bytes; ```
撰写答案
登录
注册新账号
关注者
0
被浏览
3.2k
关于作者
tuoxiebb
这家伙很懒,什么也没写!
提问
1
回答
0
被采纳
0
关注TA
发私信
相关问题
1
NXP的I2C应该比ST的好用吧
2
Use of I2C device driver
3
关于I2C 驱动问题请教
4
我如何知道这个iic的io配置和我电路设计的是一致的?
5
I2C模拟读操作失败,不知道问什么进不去读函数
6
RTT的I2C有官方文档资料没有
7
求 STM32F103 IIC 自定义IO初始化 代码
8
RTOS IIC总线使用
9
关于在RTT中使用STM32 I2C的疑问
10
裸机跑调外设ic程序已经调好,rt-thread系统 在stm32f407如何实现i2c外设
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
五分钟玩转RT-Thread新社区
5
国产MCU移植系列教程汇总,欢迎查看!
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
FRDM-MCXN94 7Flash实践--W25Q64
2
NXP MCXN947测评(一)开箱+环境配置
3
stm32f103的adc+dma多通道采集数据
4
恩智浦FRDM-MCX947上的 IIC(硬件) 实践
5
栈溢出及中断向量偏移BUG记录与分析
热门标签
RT-Thread Studio
串口
LWIP
Env
SPI
Bootloader
AT
ART-Pi
CAN总线
Hardfault
FinSH
USB
文件系统
RT-Thread
DMA
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
ota在线升级
WIZnet_W5500
cubemx
flash
I2C
UART
packages_软件包
freemodbus
潘多拉开发板_Pandora
PWM
定时器
BSP
ADC
keil_MDK
socket
中断
编译报错
MicroPython
Debug
SDIO总线
GD32
msh
rt_mq_消息队列_msg_queue
ulog
C++_cpp
SFUD
本月问答贡献
xiaorui
20
个答案
3
次被采纳
Juggernaut
12
个答案
3
次被采纳
踩姑娘的小蘑菇
12
个答案
2
次被采纳
小小李sunny
10
个答案
2
次被采纳
a1012112796
8
个答案
1
次被采纳
本月文章贡献
ZVML_9668
4
篇文章
6
次点赞
Lu_盼盼
4
篇文章
3
次点赞
Z_Y
3
篇文章
5
次点赞
ThinkCode
2
篇文章
2
次点赞
oxlm
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部