|
|
楼主 |
发表于 2026-10-19 16:39:30
|
显示全部楼层
3、不停电下载
实现不停电下载主要是调用USB头文件和LIB文件,初期化USB,加载USB中断。
#include "ai8051u.h" //调用头文件
#include "stc32_stc8_usb.h" //调用头文件
#include "intrins.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();
}
P20 = 0; //P20端口输出0V
Delay300ms();
P20 = 1;
P21 = 0; //P21端口输出0V
Delay300ms();
P21 = 1;
P20 =0;
}
}
我们只要(至少)一个.c加一个.h就可以生产一个.lib文件,这个lib文件别人是打不开原码看不到的,这样就可以防止代码被人篡改,也是方便我们快速的移植。
|
|