[PIC®/AVR®/dsPIC®产品]

PIC18F4550 USB 通信不稳定

[复制链接]
174|2
手机看帖
扫描二维码
随时随地手机跟帖
四十四次日落|  楼主 | 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 | 显示全部楼层
看起来像是缓冲区溢出的问题,你可以尝试增加缓冲区的大小,或者优化数据接收的处理逻辑。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

5

帖子

0

粉丝