找回密码
 立即注册
楼主: xxkj2010

CDC范例中,怎样实现波特率自适应的?

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-12-12 13:00:48 | 显示全部楼层

USB_CDC , 例程中,上位机改变MCU串口波特率的过程:

->上位机发送一次控制传输(其中的OUT包中包含有要设置的波特率信息)

->MCU的USB硬件在收到OUT包后根据包数据判断是否需要改变波特率。

image.png

-> 如果需要改变波特率,则调用usb_uart_settings(); usb_uart_settings()又调用了uart_set_baud();

uart_set_baud()位于文档uart.c,它才是真正改变波特率的函数。

调用uart_set_baud()时没有看到参数传递,这是因为波特率信息是通过全局变量(结构体LineCoding)来传递数据的

点评

很详细,谢谢!  发表于 2024-12-12 13:13
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:374
  • 最近打卡:2025-04-29 08:33:10

16

主题

137

回帖

978

积分

高级会员

积分
978
发表于 2024-12-28 21:59:22 | 显示全部楼层
既然CDC是按固定12M通信的,为什么CDC例程中说明“波特率最高可支持460800,且支持自定义波特率”,460800还不够12M啊。只是说明后面如果需要用到串口时,最高到460800?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:520
  • 最近打卡:2025-05-01 08:06:21

109

主题

1897

回帖

5204

积分

论坛元老

积分
5204
发表于 2024-12-29 08:07:51 | 显示全部楼层
purs*** 发表于 2024-12-28 21:59
既然CDC是按固定12M通信的,为什么CDC例程中说明“波特率最高可支持460800,且支持自定义波特率”,460800 ...

CDC通讯速率其实是USB通讯速率,而串口波特率通讯是单片机内部处理串口数据的通讯速率,单片机从USB获取数据后还需要进行分析、处理,才能获取到正确的串口数据,这个过程需要一定的时间,所以是无法与USB通讯速率的12M同步。

点评

谢谢解答!  发表于 2024-12-29 19:37
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-12-29 10:08:07 | 显示全部楼层
USB-FS, CDC, HID, 通信时是 12Mbps !
后面大家用不是USB的 串口转发 第三方
才用得到 用多快的波特率 转发出去

===  《= 12Mbps, 目前我们做的是 《=10Mbps
截图202412291008032928.jpg


点评

谢谢~  发表于 2024-12-29 19:38
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:374
  • 最近打卡:2025-04-29 08:33:10

16

主题

137

回帖

978

积分

高级会员

积分
978
发表于 2024-12-29 19:43:37 | 显示全部楼层
我用AIapp-ISP-v6.95软件中的USB驱动安装,
成功在win7下安装了STC 的USB CDC驱动,谢谢!
我这里想请教一下,这种USB CDC驱动是通用的吗?
比如我还有其他USB CDC的设备,
也能用STC安装的这个CDC驱动吗?

点评

应该可以  详情 回复 发表于 2024-12-30 11:09
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:520
  • 最近打卡:2025-05-01 08:06:21

109

主题

1897

回帖

5204

积分

论坛元老

积分
5204
发表于 2024-12-30 07:11:45 | 显示全部楼层
purs*** 发表于 2024-12-29 19:43
我用AIapp-ISP-v6.95软件中的USB驱动安装,成功在win7下安装了STC 的USB CDC驱动,谢谢!我这里想请教一下 ...

应该是不通用的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-12-30 11:09:18 | 显示全部楼层
purs*** 发表于 2024-12-29 19:43
我用AIapp-ISP-v6.95软件中的USB驱动安装,
成功在win7下安装了STC 的USB CDC驱动,谢谢!
我这里想请教一 ...

应该可以
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:204
  • 最近打卡:2025-04-02 13:56:58

19

主题

37

回帖

236

积分

中级会员

积分
236
发表于 2024-12-30 11:52:20 | 显示全部楼层
cdc不就是串口吗
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:520
  • 最近打卡:2025-05-01 08:06:21

109

主题

1897

回帖

5204

积分

论坛元老

积分
5204
发表于 2024-12-30 11:56:29 | 显示全部楼层

是的,只不过是虚拟串口而已,与硬件串口可能有差别吧
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 06:49 , Processed in 0.166630 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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