打印

gd32e230 IIC读数据问题

[复制链接]
4384|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kerb_huang|  楼主 | 2024-7-18 09:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/* send the internal register address to */i2c_data_transmit(I2C0, read_address);

/* wait until BTC bit is set */
while(!i2c_flag_get(I2C0, I2C_FLAG_BTC);
一直卡在上面

请问什么原因?

使用特权

评论回复
沙发
kerb_huang|  楼主 | 2024-7-18 17:33 | 只看该作者
结束
谢谢

使用特权

评论回复
板凳
y1n9an| | 2024-7-27 16:29 | 只看该作者
在使用I2C(Inter-Integrated Circuit)进行通信时,如果您的代码卡在while(!i2c_flag_get(I2C0, I2C_FLAG_BTC));这一行,这通常意味着程序在等待I2C传输完成标志(BTC,即Byte Transfer Complete)被设置。如果这个标志一直没有被设置,程序就会无限期地等待下去。

使用特权

评论回复
地板
suw12q| | 2024-7-27 17:38 | 只看该作者
检查I2C总线上的硬件连接是否正确,包括SDA和SCL线是否连接良好,上拉电阻是否正确安装等

使用特权

评论回复
5
p0gon9y| | 2024-7-27 18:39 | 只看该作者
确保I2C的时钟配置正确。I2C通信对时钟信号非常敏感,不正确的时钟配置可能导致通信失败

使用特权

评论回复
6
q1d0mnx| | 2024-7-27 19:43 | 只看该作者
要保证I2C外设已经正确初始化。这包括设置正确的时钟速度、地址模式、中断使能等

使用特权

评论回复
7
l1uyn9b| | 2024-7-27 20:45 | 只看该作者
检查I2C通信协议是否正确执行。这包括正确的起始条件、地址发送、读写位设置、数据传输和停止条件

使用特权

评论回复
8
zhizia4f| | 2024-7-28 08:50 | 只看该作者
检查是否有其他部分的代码干扰了I2C通信,例如其他中断服务例程或任务可能占用了CPU资源,导致I2C通信无法完成

使用特权

评论回复
9
q1ngt12| | 2024-7-28 10:00 | 只看该作者
在代码中添加更多的调试信息,例如打印日志或使用LED指示灯,以帮助确定问题发生的位置和原因。

使用特权

评论回复
10
t1ngus4| | 2024-7-28 11:30 | 只看该作者
如果I2C通信失败,尝试复位I2C外设并重新开始通信。

使用特权

评论回复
11
d1ng2x| | 2024-7-28 13:20 | 只看该作者
查阅芯片的数据手册和参考手册,了解I2C外设的详细操作和可能的错误处理方法。您也可以考虑使用逻辑分析仪或示波器来观察I2C总线上的信号,以帮助确定问题的根源

使用特权

评论回复
12
shenxiaolin| | 2024-7-29 22:08 | 只看该作者
感谢分享

使用特权

评论回复
13
地瓜patch| | 2024-7-31 16:58 | 只看该作者
iic需要加上拉电阻

使用特权

评论回复
14
小小蚂蚁举千斤| | 2024-7-31 21:25 | 只看该作者
条件不满足肯定卡住了

使用特权

评论回复
15
shijiaohui123| | 2024-8-12 12:12 | 只看该作者

gd32e230 IIC读数据问题

要加4.7K上拉电阻

使用特权

评论回复
16
而服务器人| | 2024-9-30 03:19 | 只看该作者
条件不满足容易卡住

使用特权

评论回复
17
王派oo| | 2024-9-30 13:22 | 只看该作者
wait until BTC bit is set

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

58

帖子

4

粉丝