硬汉嵌入式论坛

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

RLUSB重定向stdout到CDC遇到的问题,时好时坏。

[复制链接]

20

主题

94

回帖

154

积分

初级会员

积分
154
发表于 2024-2-6 11:33:52 | 显示全部楼层 |阅读模式
本帖最后由 ifree 于 2024-2-6 12:31 编辑

通常使用USB CDC都是将USB的数据转发到某个UART,UART的数据转发到USB。


我想尝试一下在代码里直接将stdout重定向到CDC。也就是代码中printf,可在PC机的串口助手上直接看到结果。我的测试工程如下:
F4USBCDCPrintf.zip (136.06 KB, 下载次数: 1)

其实工程也初步实现了预期功能。
测试代码如下:
测试线程里,不同的printf打印消息
app_main.png
重定向有关代码为:
stdout.png
USB创建了一个线程来从g_tVUart中读取printf的数据Write到USB
usbthread.png
串口助手上可以看到如下实验效果
jcom.png

现在的问题是,app_main中我只要把延时时间改短一点,串口就无法收到任何数据。
USB转发的线程里面的延时参数改成较小的值,也容易导致没有任何数据。
调节app_main,usb线程的delay参数值,有时还会遇到USB枚举可以看到设备,但串口助手无法打开串口的问题。

使用MDK的调试功能,也很奇怪。
rtx.png
调试运行时,这个Kernel Tick Count并不增加,但暂停后,这个值就变大了。

还请大佬能指导一下是怎么回事,谢谢!


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 10:57 , Processed in 0.155762 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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