四十四次日落 发表于 2025-7-2 18:43

PIC18F4550 USB 通信不稳定

本帖最后由 四十四次日落 于 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 = 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

看起来像是缓冲区溢出的问题,你可以尝试增加缓冲区的大小,或者优化数据接收的处理逻辑。
页: [1]
查看完整版本: PIC18F4550 USB 通信不稳定