梁工,还得麻烦你下,我现在用试验箱也出现这种问题了,还是插电脑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;
- }
复制代码
|