打印
[其他ST产品]

mcu iic问题:mcu作为i2c-slave, main函数内循环打印,收到 i2c get 时,循环打印停止了是什么原因?

[复制链接]
1617|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
probedog|  楼主 | 2024-5-11 20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ic, ge, MCU, I2c, AI
mcu作为i2c-slave, main函数内循环打印, 收到 i2c set 时,循环打印正常, 收到 i2c get 时,循环打印停止了
com4 窗口是 mcu 循环打印的数据, 执行 i2cset -f -y 0 0x33 0x42 0x41 不影响打印 执行 i2cget -f -y 0 0x33 0x41 后打印停止了是什么原因
打印停止前
iicget打印停止

使用特权

评论回复
沙发
一秒落纱| | 2024-6-19 10:56 | 只看该作者
在MCU(微控制器单元)作为I2C从设备的情况下,如果主函数内的循环打印在收到"i2c get"命令时停止了,可能是I2C通信通常是通过中断来处理的。当MCU作为从设备接收到I2C数据时,可能会触发一个中断。如果中断服务例程(ISR)没有正确地保存和恢复上下文,或者在ISR中消耗了太多时间,可能会导致主循环的执行被暂停。

使用特权

评论回复
板凳
夜阑风雨| | 2024-6-19 13:00 | 只看该作者
如果I2C通信和主循环打印操作共享了某些资源(如内存、外设等),可能会发生资源竞争。例如,如果I2C通信正在访问一个共享的缓冲区,而主循环也在尝试访问该缓冲区,可能会导致主循环被阻塞。

使用特权

评论回复
地板
远山寻你| | 2024-6-19 15:00 | 只看该作者
在MCU的程序中,可能存在一个状态机来处理I2C通信。如果状态机逻辑设计不当,可能会在接收到"i2c get"命令后进入一个状态,导致主循环的执行被暂停。

使用特权

评论回复
5
光辉梦境| | 2024-6-19 19:00 | 只看该作者
如果MCU支持多任务或多线程,可能存在优先级设置问题。如果I2C中断或任务的优先级高于主循环,那么在I2C通信期间,主循环可能会被抢占。

使用特权

评论回复
6
三生万物| | 2024-6-19 21:00 | 只看该作者
可能是软件编程错误,比如在处理I2C数据时出现了死循环、内存溢出或其他逻辑错误,导致程序无法继续执行主循环。

使用特权

评论回复
7
淡漠安然| | 2024-6-19 23:00 | 只看该作者
虽然不太常见,但也有可能是硬件问题,比如I2C总线上的电气问题导致MCU在接收到数据时进入了一个异常状态。

使用特权

评论回复
8
暖了夏天蓝了海| | 2024-6-20 02:00 | 只看该作者
确保ISR正确地保存和恢复了上下文,并且不会阻塞太长时间。

使用特权

评论回复
9
江河千里| | 2024-6-20 04:00 | 只看该作者
检查资源访问:确保没有资源竞争,所有共享资源都有适当的同步机制。

使用特权

评论回复
10
别乱了阵脚| | 2024-6-20 11:00 | 只看该作者
检查状态机的设计,确保在接收到I2C命令后,程序能够正确地继续执行。

使用特权

评论回复
11
冰春彩落下| | 2024-6-20 13:00 | 只看该作者
如果MCU支持多任务,检查任务和中断的优先级设置。

使用特权

评论回复
12
小小蚂蚁举千斤| | 2024-6-23 17:35 | 只看该作者
可能是I2C通信通常是通过中断来处理的

使用特权

评论回复
13
duo点| | 2024-6-24 10:41 | 只看该作者
检查I2C中断处理逻辑

使用特权

评论回复
14
两只袜子| | 2024-6-24 12:00 | 只看该作者
调整中断优先级

使用特权

评论回复
15
jcky001| | 2024-6-24 15:00 | 只看该作者
使用调试器或逻辑分析仪来监视I2C通信和MCU的行为,以便更好地理解问题所在。

使用特权

评论回复
16
cr315| | 2024-6-24 15:00 | 只看该作者
检查代码逻辑

使用特权

评论回复
17
AdaMaYun| | 2024-6-24 22:26 | 只看该作者
I2C通信通常是通过中断来处理的

使用特权

评论回复
18
喂什么玩意| | 2024-6-30 14:45 | 只看该作者
确保从设备正确实现了I2C协议的读取操作。需要检查从设备的代码,确认它能够正确地响应读取请求并发送数据。

使用特权

评论回复
19
wang6623| | 2024-6-30 15:07 | 只看该作者
可能存在数据传输错误或冲突,导致主设备无法收到正确的响应或从设备无法发送正确的数据。

使用特权

评论回复
20
wang6623| | 2024-6-30 15:07 | 只看该作者
检查硬件连接和电路设计,确保I2C总线上的信号完整性和稳定性。特别是检查SDA(数据线)和SCL(时钟线)上的信号质量,避免电气问题导致通信失败。

使用特权

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

本版积分规则

387

主题

2128

帖子

3

粉丝