方法/步骤
STC官方软件中有个我们可以利用的工具。使用STC-ISP自定义下载功能来轻松搞定我们的需求。新版的ISP软件名称为“收到用户命令后复位到ISP监控程序区”如下图所示:
我们自定义一个下载命令,当串口检测到该命令后,复位到ISP监控器,进行下载。这里我们定义下载命令为:0x55,0xaa,0x5a,0xa5 这个当然你可以随意定义成自己需要的,不要和串口通信冲突就行。我们在程序中添加如下代码:
// ISP下载命令static const U8 ISP_DownCmd[4] = {0x55,0xaa,0x5a,0xa5};
// 下载命令检测函数U8 ISP_CmpDownCmd(U8 chr){ static U8 i=0; if(chr == ISP_DownCmd[i]) { i++; if(i == 4) { delay(100000); // 延时1秒就足够了 IAP_CONTR = 0x60; // 软复位到系统ISP监控区 } }else{ i=0; } return 0;}
//在串口中断服务中添加如下代码
// 串口中断void UART_Interrupt_Receive(void) interrupt 4{ U8 k = 0; if(RI==1) { RI = 0; k = SBUF; ISP_CmpDownCmd(k); } if(TI == 1) { TI = 0; }}//代码结束
加入自己程序后,编译下载(第一次还要冷启动哦,这是一劳永逸的事哦)。
在ISP中进行如下配置,然后就和正常一样下载了,这是再也不用手动断电了。妈妈再也不用担心我下载单片机的问题了....
