硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1023|回复: 7
收起左侧

[技术讨论] STM32H5系列USB虚拟串口桥接I2C通信

[复制链接]

2

主题

7

回帖

13

积分

新手上路

积分
13
发表于 2025-1-1 21:42:45 | 显示全部楼层 |阅读模式
工程基于STM32H563ZIT6官方例程修改,如下图:
21.png

这个例程实现USB虚拟串口与UART3进行通信,实测可正常工作。
根据我的需求(USB虚拟串口桥接I2C通信)移植到我这个工程后出现以下现象:
程序编译通过,下载程序后设备管理器找到相应的COM口,在串口助手可以发送第一个数据(还未使用示波器观察I2C接口上是否有正确的数据),发送第二个数据会造成串口调试助手卡死,卡死后拔掉USB线再插上,PC显示无法识别设备!不知道是哪里出问题了
刚才我在想I2C通信协议要求发送设备地址后,从设备返回ACK信号,我现在的硬件I2C接口未接任何从设备,导致没有ACK信号返回,I2C主设备(MCU)未接收到ACK信号,不发送后续的数据(串口调试助手中的数据),导致程序卡死在HAL_I2C_MasterTxCpltCallback这个回调函数内?我验证后更新在这个贴子下面。
大家相互学习!!!
附件包含CUBEIDE初始化配置和关键的app_usbx_device.c,ux_device_cdc_acm.c两个文件!

调试记录.pdf

2.88 MB, 下载次数: 20

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2025-1-2 07:31:53 | 显示全部楼层
谢谢楼主分享。
回复

使用道具 举报

2

主题

7

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2025-1-2 10:08:57 | 显示全部楼层
汉哥,刚才我在MCU I2C接口上接了从设备,用示波器打波形,发现发送的数据正常,从设备也有ACK信号返回,但还是只能发送一次,第二次无法发送,串口助手卡死,设备管理器里面的串口也识别不到了,你觉得我这个是什么问题?
回复

使用道具 举报

2

主题

7

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2025-1-3 09:35:19 | 显示全部楼层
更新:注释掉I2C传输完成回调函数HAL_I2C_MasterTxCpltCallback和tx_event_flags_get相关代码,能够正常连续多次发送,不会卡死。不知道为什么卡在这里,这两个函数的使用有什么问题?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2025-1-4 07:13:09 | 显示全部楼层
Pzrrrr 发表于 2025-1-2 10:08
汉哥,刚才我在MCU I2C接口上接了从设备,用示波器打波形,发现发送的数据正常,从设备也有ACK信号返回,但 ...

方便用软件I2C测试下不,硬件I2C的主机方式,我一直没有用顺手过。
回复

使用道具 举报

2

主题

7

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2025-1-5 21:12:16 | 显示全部楼层
eric2013 发表于 2025-1-4 07:13
方便用软件I2C测试下不,硬件I2C的主机方式,我一直没有用顺手过。

我后面尝试注释掉I2C传输完成回调函数HAL_I2C_MasterTxCpltCallback和tx_event_flags_get相关代码,能够正常连续多次发送,不会卡死。不知道为什么卡在这里,这两个函数的使用有什么问题?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2025-1-6 01:24:58 | 显示全部楼层
Pzrrrr 发表于 2025-1-5 21:12
我后面尝试注释掉I2C传输完成回调函数HAL_I2C_MasterTxCpltCallback和tx_event_flags_get相关代码,能够 ...

这个地方有检查不是卡死在handler里面的吧
回复

使用道具 举报

2

主题

7

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2025-1-20 21:27:58 | 显示全部楼层
eric2013 发表于 2025-1-6 01:24
这个地方有检查不是卡死在handler里面的吧

已解决,谢谢回复,空了我把完整代码放上来供大家参考。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 04:48 , Processed in 0.348393 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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