GD32F30X的USB cdc虚拟串口,走modbus RTU协议问题

[复制链接]
 楼主| 童心~ 发表于 2022-11-24 11:14 | 显示全部楼层 |阅读模式
GD32F30X的USB cdc虚拟串口,走modbus RTU协议问题

根据官网提供的USB cdc虚拟串口例程,能够调通USB通讯,收发正常。即使发送给ARM一帧1024bytes的数据,程序也能够正常回复1024bytes。
但是这个过程其实是分为多帧进行的,因为USB一帧只能收发64个bytes,所以程序其实是将一帧长字节的数据分割为多帧进行收发的。

那么,如果想要在USB内走modbus RTU的协议,可能收到大约64bytes的数据帧,并对这个数据帧进行分析做出相应回复。
改如何修改例程?应该在USB接收中断内将收到的数据进行组合?(如果不在中断内处理,是不是来不及转存导致后面的数据被覆盖?)

有没有大神做过类似的修改?STM32的USB cdc例程与GD的差异较大,似乎借鉴意义不大
 楼主| 童心~ 发表于 2022-11-24 17:42 | 显示全部楼层
有做过的前辈吗?还请指导
fxyc87 发表于 2022-11-25 08:43 | 显示全部楼层
和普通串口收是一样啊,收到一组USB数据后,定时器中置标志,超时5mS后就认为modbus结束,正常usb是1mS一组数据。
 楼主| 童心~ 发表于 2022-11-25 10:16 | 显示全部楼层
fxyc87 发表于 2022-11-25 08:43
和普通串口收是一样啊,收到一组USB数据后,定时器中置标志,超时5mS后就认为modbus结束,正常usb是1mS一组 ...

感谢回复!
再请教您:
那在连续接收状态,收到数据并组合数据的操作应该在USB中断usbd_isr()内进行吗?
\version 2022-06-10, V3.1.0, firmware for GD32F30x,这个版本的USB 驱动是下面这个部分代码吗 36486380252c41965.png

biechedan 发表于 2022-12-2 21:32 | 显示全部楼层
modbus RTU不是串口的吗?
jonas222 发表于 2022-12-3 12:28 | 显示全部楼层
USB cdc虚拟串口有中断可以用的吗?
bartonalfred 发表于 2022-12-4 21:51 | 显示全部楼层
虚拟串口会不会卡死呢?              
MiniCNC 发表于 2023-1-8 10:40 | 显示全部楼层
最近也在调GD32的虚拟串口,也挺茫然。。。可加好友吗18629431286
yklstudent 发表于 2023-1-8 21:08 | 显示全部楼层
嗯 我先研究下ST的虚拟串口,感觉不难啊
369122197 发表于 2023-5-5 15:09 | 显示全部楼层
ingramward 发表于 2023-5-10 20:44 | 显示全部楼层
usb cdc 就是虚拟串口吗   
lzmm 发表于 2023-5-10 21:11 | 显示全部楼层
USB虚拟串口的原理是什么?              
eefas 发表于 2023-5-10 21:29 | 显示全部楼层
gd32f450的usb虚拟串口不
sheflynn 发表于 2023-5-10 21:44 | 显示全部楼层
usbcdc可以双向通信吗               
uytyu 发表于 2023-5-10 21:54 | 显示全部楼层
USB转的虚拟串口和实际的串口有什么区别
bartonalfred 发表于 2023-5-10 22:14 | 显示全部楼层
usb串口怎样传输单片机数据给电脑
fengm 发表于 2023-5-11 16:43 | 显示全部楼层
如何传输数据的               
wengh2016 发表于 2023-5-11 17:14 | 显示全部楼层
如何修改STM32的USB例程为GD32F30X所用
linfelix 发表于 2023-5-11 18:14 | 显示全部楼层
怎么把usb接口的虚拟成com口
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

0

粉丝

3

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部