找回密码
 立即注册
查看: 404|回复: 1

USB转UART波特率问题,请大神指点

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2024-08-14 23:38:41

1

主题

2

回帖

83

积分

注册会员

积分
83
发表于 2024-6-10 08:45:05 | 显示全部楼层 |阅读模式
用官方USB转单串口例程做修改,使用串口助手
给STC的UART串口发送0x59时点亮STC的LED灯。
使用例程原波特率115200时可以正常点亮,
当把波特率改为9600时无法点亮LED。
查看虚拟串口收到的数据是0x59,
红色是修改部分。


void uart_init()
{
    P_SW2 &= ~0x01;     //UART2 switch to: 0: P1.0 P1.1

    P1M0 &= ~0x03;      //P1.0,P1.1设置为准双向模式
    P1M1 &= ~0x03;

    S2CON = 0x50;
    T2L = BR(9600);
    T2H = BR(9600) >> 8;
    AUXR |= 0x14;              //定时器2时钟1T模式,开始计时
    IE2  |= 1;            //允许中断

    LineCoding.dwDTERate = REV4(9600);
    LineCoding.bCharFormat = 0;
    LineCoding.bParityType = 0;
    LineCoding.bDataBits = 8;
}



void uart_polling()
{
    BYTE dat;
    BYTE cnt;

    if (DeviceState != DEVSTATE_CONFIGURED)
        return;

    if (!UsbInBusy && (TxRptr != TxWptr))
    {

                        if(TxBuffer[0]==0x59)
                                { LED = 0; }
                        
        IE2 &= ~0x80;   //EUSB = 0;
        UsbInBusy = 1;
        usb_write_reg(INDEX, 1);
        cnt = 0;
        while (TxRptr != TxWptr)
        {
            usb_write_reg(FIFO1, TxBuffer[TxRptr++]);
            cnt++;
            if (cnt == EP1IN_SIZE) break;
        }
        usb_write_reg(INCSR1, INIPRDY);
        IE2 |= 0x80;    //EUSB = 1;
    }



12-USB-CDC转单串口.rar

173.13 KB, 下载次数: 34

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3191

回帖

4872

积分

论坛元老

积分
4872
发表于 2024-6-10 18:14:48 来自手机 | 显示全部楼层
tx是发送,接收应该是rx吧
回复 支持 1 反对 0

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 20:28 , Processed in 0.112262 second(s), 55 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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