找回密码
 立即注册
查看: 462|回复: 3

不确定“CDC协议规范”例程中此处是否存在BUG

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2025-05-27 09:25:30

20

主题

68

回帖

252

积分

等待验证会员

积分
252
发表于 2024-6-7 15:23:19 | 显示全部楼层 |阅读模式
前段时间做一个特别应用,使用CDC方式,发现在实时数据传输过程中改变波特率出现串口助手死锁情况。
后来对usb_reg_class.c中的usb_uart_setting()进行了修改,死锁现象消失。

原代码:

void usb_uart_settings()
{
    if (Setup.bRequest == SET_LINE_CODING)
    {
        LineCoding.bCharFormat = 0;
        LineCoding.bDataBits = 8;
        
        uart_set_parity(LineCoding.bParityType);
        uart_set_baud(reverse4(LineCoding.dwDTERate));
    }
}


修改后代码:(对计数器和中断进行了管理)

void usb_uart_settings()
{
    if (Setup.bRequest == SET_LINE_CODING)
    {
        ES2=0;T2R=0;//关串口中断和计数器

        LineCoding.bCharFormat = 0;
        LineCoding.bDataBits = 8;
        
        uart_set_parity(LineCoding.bParityType);
        uart_set_baud(reverse4(LineCoding.dwDTERate));

       T2R=1; ES2=1;//开串口中断和计数器
    }
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:422
  • 最近打卡:2025-06-16 00:53:18

0

主题

336

回帖

1628

积分

金牌会员

积分
1628
发表于 2024-6-7 19:08:38 | 显示全部楼层
学习了
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:267
  • 最近打卡:2025-06-16 06:00:40

61

主题

830

回帖

1545

积分

金牌会员

积分
1545
发表于 2024-6-8 08:21:21 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:566
  • 最近打卡:2025-06-16 07:52:44

113

主题

2027

回帖

5810

积分

论坛元老

积分
5810
发表于 2024-6-8 08:22:11 | 显示全部楼层
本帖最后由 xxkj2010 于 2024-6-8 08:25 编辑

不管有没有BUG,这个得先收藏下来,以后用到的时候可以注意一下。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-17 02:45 , Processed in 0.133369 second(s), 70 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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