上次我们在 CH567 的 USB1 上实现了 USB CDC 的功能,这一次尝试在 USB0上实现同样的同能。相比之前的程序,需要修改的位置有:
- \src\sys\CH56X_irq.c 中使用USB0DevIntDeal() 响应 USB 0 的中断
__attribute__( ( interrupt ( "id="XSTR(INT_ID_SATA) ) ) )void SATA_Handler(void)
{
USB0DevIntDeal( );
}
2. \src\main\main.c 中打开 USB0 的中断
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