硬汉嵌入式论坛

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

STM32L4 USBD CDC-MSC组合设备类CDC_Transmit_FS发送问题

[复制链接]

1

主题

0

回帖

3

积分

新手上路

积分
3
发表于 2024-3-12 12:42:09 | 显示全部楼层 |阅读模式
STM32USB库调用CDC_TransmitFS这个函数,只能在CDC_ReceiveFS回环中发送,在main中发送数据,cdc->TxState 这个标志一直是1,所以只成功调用了USBD_CDC_SetTxBuffer,但USBD_CDC_TransmitPacket、USBD_CDC_DataIn以及后续的CDC_TransmitCplt都无法调用。
看论坛有两个解决办法:1.放到和usb同优先级的中断里调用CDC_TransmitFS进行发送。只调用成功了2.`发送之前调用这个函数EP0_RxReady。 但两种方法都会导致程序卡死。
CDC_Receive_FS与CDC_Transmit_FS均在usbd_cdc_if.c中实现,CDC_Receive_FS中调用CDC_Transmit_FS则可以正常回环收发消息。

111111.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-3-13 09:17:29 | 显示全部楼层
现在ST提供的参考例子是用的那个方案发送的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 05:48 , Processed in 0.218967 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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