打印
[STM32MP1]

嵌入式linux与stm32 usb通信

[复制链接]
549|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
合同圣诞节fy|  楼主 | 2022-10-19 17:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
linux为主机,stm32为从机,实现以下:stm32为一个无线传输设备,最大256字节,将接收到的数据通过usb发送给linux,linux将需要发送的信息通过usb发送给stm32。
(linux的usb-skeleton.c已经看过)有以下疑惑:
1.应用程序,发送可以直接使用write,那么我要接收怎么实现?一直read么?还是驱动中一直读取,然后告诉应用程序,具体实现方法?
2.使用那种方式比较好?HID、CDC什么的?
3.usb通信只能有主机发起,如何保证及时接收到数据?
4.usb一包数据是64字节,大于64字节需要分包发送,要如何判断接收到了完整的一包。

使用特权

评论回复
沙发
szt1993| | 2022-10-19 19:08 | 只看该作者
如果主机发起接收的话,从机就得写队列了吧,这样从机压力会很大,有时数据传输也会不及时,USB有四种数据传输模式(Transfer),分别为控制(Control)传输、中断(Interrupt)传输、批量(Bulk)传输、同步(Isochronous)传输,可以参考一下

使用特权

评论回复
板凳
Betty996| | 2022-10-27 11:16 | 只看该作者
HID是主动上传的,你需要用cdc才行吧

使用特权

评论回复
地板
Charlene沙| | 2022-10-27 13:05 | 只看该作者
最后两个问题,我觉得你可以通过协议判断是否收全了

使用特权

评论回复
5
Allison8859| | 2022-10-29 12:26 | 只看该作者
接收的话,linux应该也有USB的中断吧

使用特权

评论回复
6
Undshing| | 2022-11-6 21:53 | 只看该作者
HID是主动上传的

使用特权

评论回复
7
MessageRing| | 2022-11-9 20:37 | 只看该作者
要用cdc的吧

使用特权

评论回复
8
AloneKaven| | 2022-11-11 17:56 | 只看该作者
主机发起接收的话,从机就得写队列了吧

使用特权

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

本版积分规则

15

主题

35

帖子

0

粉丝