不停电下载确实很实用,特别是对开发人员来说,不用频繁的去操作。特别是这种手把手的教学很好,完全不用自己思考,跟着做就行了,大赞。
但是可惜的是我按照视频做出来后MCU没能出COM口,也不能实现视频的功能,不知是不是因为板子不同的原因。 下载后系统无法识别。我是USB直连到MCU的P3.0和P3.1R的。上电时按住P3.2开关可以进入USB模式,下载了程序后就不行了,代码也跑不起来。如果不用USB库代码,下载代码后都能正常运行.
1.系统不能正确识别MCU模拟的USB 2.以下是项目配置.
3. 代码很简单,就是利用定时器4让P0驱动LED累加亮起来.
#include<STC8051U.H> #include<intrins.h> #include"stc32_stc8_usb.h" char*USER_DEVICEDESC = NULL; char*USER_PRODUCTDESC = NULL; char*USER_STCISPCMD = "@STCISP#"; voidsys_initial() { P0M1 = 0x00; P0M0 = 0xff; P3M1 = 0X00; P3M0 = 0X00; P3PU = 0xff; P_SW2 |= 0x80; //EAXFR = 1; P0 = 0x00; WTST = 0x00; P4M1 = 0X00; P4M0 = 0X00; } voiddelay50ms(void) //@22.1184MHz { unsigned long edata i; _nop_(); _nop_(); i = 276478UL; while (i) i--; } voidtime4_init(void) //10MS @ 24MHz { T4T3M = 0X00; ET4 = 0; T4IF = 0; T4L = 0XE0; T4H = 0XB1; TM4PS = 0X00; T4R = 1; } voidmain() { unsigned char t=0,i=0; sys_initial(); delay50ms(); usb_init(); while (DeviceState != DEVSTATE_CONFIGURED); IE2 |= 0x80; EA = 1; time4_init(); while(1) { _nop_(); _nop_(); if(T4IF) { T4IF=0; i++; if(i>=254) i=0; } if(i==50) { i=0; t++; } if(bUsbOutReady) { USB_SendData(UsbOutBuffer,OutNumber); usb_OUT_done(); } P0 = t; _nop_(); _nop_(); }
} **************************************************************************************** -2025/01/17 问题已解决,但不知道原因。 重新新建项目就可以了。也许是Keil环境问题吧。
|