[PIC®/AVR®/dsPIC®产品] PIC18F4550 USB 通信不稳定

[复制链接]
 楼主| 四十四次日落 发表于 2025-7-2 18:43 | 显示全部楼层 |阅读模式
本帖最后由 四十四次日落 于 2025-7-2 18:47 编辑

最近用 PIC18F4550 做 USB 转串口,遇到数据丢包严重的问题。已检查 USB 中断配置和缓冲区大小,仍无法解决。有大佬遇到过类似情况吗

// USB中断服务程序
void interrupt high_priority USB_ISR(void) {
    if(USBIF) {
        if(USBDATIF) {
            // 接收数据处理
            while(USB_RX_STAT) {
                rx_buffer[rx_count++] = URXREG;
                if(rx_count >= RX_BUFFER_SIZE) rx_count = 0;
            }
            USBDATIF = 0; // 清中断标志
        }
        USBIF = 0; // 清主中断标志
    }
}
lcczg 发表于 2025-7-3 16:13 | 显示全部楼层
你好,你的代码从哪里来的? 在MLA里有PIC18F4550 USB CDC的例子,你可以参考一下。
下载MLA并安装  https://www.microchip.com/en-us/tools-resources/develop/libraries/microchip-libraries-for-applications
安装后所说的例子在此文件夹下
C:\microchip\mla\vXXXX\apps\usb\device\cdc_basic\firmware\picdem_fs_usb.x
彩虹捕手 发表于 2025-7-4 14:59 | 显示全部楼层
看起来像是缓冲区溢出的问题,你可以尝试增加缓冲区的大小,或者优化数据接收的处理逻辑。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

16

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部