| 梁工,还得麻烦你下,我现在用试验箱也出现这种问题了,还是插电脑usb能运行,插充电头不能运行
 复制代码#include "stc32g.h"
#include "stc32_stc8_usb.h"
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
void Delay500ms(void)        //@11.0592MHz
{
        unsigned long edata i;
        _nop_();
        _nop_();
        i = 1382398UL;
        while (i) i--;
}
void main()
{
         WTST= 0;
         CKCON= 0;
         EAXFR= 1;        
//    P_SW2 |= 0x80;
    
    P0M1 = 0x00;   P0M0 = 0x00;
    P1M1 = 0x00;   P1M0 = 0x00;
    P2M1 = 0x00;   P2M0 = 0x00;
    P3M1 = 0x00;   P3M0 = 0x00;
    P4M1 = 0x00;   P4M0 = 0x00;
    P5M1 = 0x00;   P5M0 = 0x00;
    P6M1 = 0x00;   P6M0 = 0x00;
    P7M1 = 0x00;   P7M0 = 0x00;
    P3M0 &= ~0x03;
    P3M1 |= 0x03;
    P3PU = 0x04; 
    IRC48MCR = 0x80;
    while (!(IRC48MCR & 0x01));
    
    USBCLK = 0x00;
    USBCON = 0x90;
    
    usb_init();                                     //USB CDC 接口配置
 
                EUSB=1;
//    IE2 |= 0x80;                                    //使能USB中断
    EA = 1;
    
    while (DeviceState != DEVSTATE_CONFIGURED);     //等待USB完成配置
                P40=0;
                while(1)
                {
                        Delay500ms();
                        P60=!P60;
                
                }
//    while (1);
}
/************************************************
函数功能:USB-CDC串口接收数据的回调函数
函数描述:回调函数由USB中断在接收到串口数据时自动调用
          回调函数处理完成串口数据后需要返回1
函数返回:返回1:USB中断服务程序自动完成后续的收尾工作
          返回0:USB会暂停接收串口数据,直到用户自行调用
                 usb_OUT_done()函数后USB才会重新恢复接收数据
注意事项:当函数返回1时用户无需调用usb_OUT_done()
          只有返回0时才需要调用usb_OUT_done()进行手动收尾
          强烈建议usb_OUT_callback返回1
************************************************/
BOOL usb_OUT_callback()
{
    USB_SendData(UsbOutBuffer,OutNumber);           //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
    
    return 1;
}
 |