第四集 USB不停电下载
1.程序实验对比演示
2.程序下载所需文件(STC官网-软件工具-库函数-USB库文件)
3.程序移植关键部分到工程:
3.1程序 添加头文件
3.2 USB初始化函数(lib+.h库实现)
3.3 命令参数
3.4 打开P_SW2寄存器和IE2寄存器
示例代码如下所示:
- #include "ai8051u.h" //调用头文件
-
- #include "stc32_stc8_usb.h" //调用头文件
-
- char *USER_DEVICEDESC = NULL;
- char *USER_PRODUCTDESC = NULL;
- char *USER_STCISPCMD = "@STCISP#";
-
- void main(void)
- {
- P_SW2 |= 0x80; //B7位写1,使能访问XFR
-
- 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;
-
- usb_init(); //USB CDC 接口配置
-
- IE2 |= 0x80; //使能USB中断
- EA = 1; //IE |= 0X80;
-
- while (DeviceState != DEVSTATE_CONFIGURED); //等待USB完成配置
-
- while(1)
- {
-
- if (bUsbOutReady)
- {
- USB_SendData(UsbOutBuffer,OutNumber); //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
-
- usb_OUT_done();
- }
-
- P40 = 0; //P40端口输出0V
- P00 = 0; //P00端口输出0V
- P02 = 0; //P02端口输出0V
- //P01 = 0; //P01端口输出0V
- //
- }
- 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;
-
- usb_init(); //USB CDC 接口配置
-
- IE2 |= 0x80; //使能USB中断
- EA = 1; //IE |= 0X80;
-
- while (DeviceState != DEVSTATE_CONFIGURED); //等待USB完成配置
-
- while(1)
- {
-
- if (bUsbOutReady)
- {
- USB_SendData(UsbOutBuffer,OutNumber); //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
-
- usb_OUT_done();
- }
-
- P40 = 0; //P40端口输出0V
- P00 = 0; //P00端口输出0V
- P02 = 0; //P02端口输出0V
- //P01 = 0; //P01端口输出0V
- //
- }
-
- }
复制代码
这个USB不停电下载烧录程序可以提高我们的调试效率。 |