STC32G支持使用硬件usb直接下载程序,可省去CH340等usb转串口下载芯片
接线图如下:
实测使用效果不错,但需要注意的是如果不需要进行USB下载,芯片复位时P3.0/P3.1/P3.2 不可同时为低电平,否则芯片会一直处于USB下载模式而不会运行用户代码。
假如项目处于开发阶段需要反复下载代码进行测试又不想频繁的 断电、短接P3.2到地、上电进行下载怎么办呢?STC32为此增加了一个特殊功能寄存器IAP_CONTR,当用户向此寄存器写入0x60,即可软件复位到系统区,从而实现不断电下载。
STC32G官方技术参考手册介绍了两种不断电下载方法,这里只介绍一种。
代码如下:
#include "stc32g.h" //stc32g头文件
void main() //主函数
{
EAXFR = 1; //使能访问 XFR
CKCON = 0x00; //设置外部数据总线速度为最快
WTST = 0x00; //设置程序代码等待参数,
//赋值为 0可将 CPU执行程序的速度设置为最快
P3M0 = 0x00; //将P3口设置为准双向口
P3M1 = 0x00;
P32 = 1; //将P3.2置为高电平
while(1)
{
if(!P32) IAP_CONTR = 0x60; //当检测到P3.2的电平为低时,软件复位到系统区
... //用户代码
}
}