实现 Ch567 USB0 串口

上次我们在 CH567 的 USB1 上实现了 USB CDC 的功能,这一次尝试在 USB0上实现同样的同能。相比之前的程序,需要修改的位置有:

  1. \src\sys\CH56X_irq.c 中使用USB0DevIntDeal() 响应 USB 0 的中断
1
2
3
4
__attribute__( ( interrupt ( "id="XSTR(INT_ID_SATA) ) ) )void SATA_Handler(void)
{
    USB0DevIntDeal( );
}

2. \src\main\main.c 中打开 USB0 的中断

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Interrupt_init( 1<<INT_ID_USB0 );     /* 系统总中断开启 */
 
USB0DeviceInit();           /* USB0Device Init */
printf("USB0 Device Init!\n");
 
    while(1)
    {
            printf("Run\n");
            mDelaymS(5000);
            if (UsbConfig!=0)
            {
                    memcpy( UsbEp3INBuf, &Msg[0], sizeof( Msg ));
                    R16_UEP3_T_LEN1 =  sizeof( Msg );
                    R8_UEP3_TX_CTRL1 = (R8_UEP3_TX_CTRL1 & ~ MASK_UEP_T_RES) | UEP_T_RES_ACK;
                    while (R8_USB0_MIS_ST&bUMS_SIE_FREE==0) {}
            }
    };

3. ch56x_usb0dev372.h 中全部 USB1 替换为 USB0

4. ch56x_usb0dev372.c 中全部 USB1 替换为 USB0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注