当前位置: 首页 > news >正文

STC单片机用户程序控制ISP下载

不知道大家有没有遇到过这样想喊“我C”的问题?
设计打样了一块STC单片机的PCB电路板,焊好单片机想下载程序才发现,没有设计电源开关和复位开关。USB转串口芯片直接设计在同一块板子上,没有办法单独断电。
不知道大家碰到这种情况有没有好的解决方案,反正我都快要放弃这块板子了。
好在STC比较强大(网站和文档也是相当的强大),单片机产品手册上就有成熟的用户自定义下载方案。

STC-ISP程序下载原理

STC单片机的产品手册,有大量ISP/IAP程序下载的相关描述,大致原理如下:

  1. ISP软件点击下载后,以固定波特率向单片机发送'0x7F';
  2. 单片机复位后(上电、硬复位或软复位)进入ISP监控程序区;
  3. 监控程序判断串口数据是否为合法ISP下载命令流;
  4. 是合法ISP下载命令流,执行ISP下载程序,完成后复位到用户程序区;
  5. 非合法ISP下载命令流,直接复位到用户程序区;

STC用户自定义下载(不停电下载)功能

通过用户程序进入ISP下载区有两个方法:

  • 用户程序直接跳转到ISP监控程序(需要知道函数地址);(实际上跳转到MCU上电运行的地址应该也行,没有试过,感兴趣的朋友可以测试一下)
  • 用户程序软复位到ISP监控程序;

实际上第二种方法更简单一点,STC专门设计了一个寄存器IAP_CONTR用于控制软件复位并选择跳转方向(0x20去用户程序,0x60去用户监控程序),官方手册上就有明确的功能描述。
用户程序可以设计当某个按键被按下或者UART接受到下载命令流时,软复位进入ISP监控程序。
如果你像我一样"衰",没有断电开关和硬复位按钮,建议至少设计保留2种进入ISP监控程序的方法,避免程序无法下载。

STC用户自定义下载部分实现代码

软复位进ISP监控程序区代码:

//userisp.h
#define IAP_MODE_RESET	0x20
#define IAP_MODE_ISP	0x60#define UserISP(mode)	IAP_CONTR = mode

按钮被按下,调用ISP跳转函数:

//userisp.c
//定时器回调函数,系统1s定时器函数中调用
//判断下载按键是否被按下,按下后复位到ISP监控程序区
void TimerCallBackUserISP(void)
{if(ISPButton)UserISP(IAP_MODE_ISP);
}

程序下载方法:

  1. ISP软件点击下载;
  2. 按下下载按键并保持1s以上,确认下载已启动后释放;

彩蛋:第一次程序是怎么下载的?

首次下装还是比较麻烦的,先拆除USB转串口芯片,焊接飞线连接到外围USB转串口模块上进行ISP下载,原来的USB口仅用于供电。
确保程序自定义下载可靠后,再焊回USB转串口芯片。

http://www.jsqmd.com/news/10872/

相关文章:

  • 国产DevOps工具链崛起:Gitee如何助力企业数字化转型破局
  • SAP移动类型TR和TF和TP
  • 深入解析:分布式之RabbitMQ的使用(2)
  • 禅道怎么更新MySQL数据库的用户名和密码
  • 【2025-10-03】连岳摘抄
  • 国产项目管理工具Gitee:本土化优势赋能企业数字化转型
  • 2025 年国内一体板厂家最新推荐排行榜:装配式 / 珍珠岩 / 免拆 / 外墙保温品类优质企业权威精选
  • 系统提示词优化模板-通用优化-带输出格式要求
  • aardio编程中的常量
  • Group Theory Note 2/2 (Michael Artin Algebra Chapter 2 Groups) (to complete)
  • 偏微分方程数值解法
  • 仓储ERP系统如何部署?
  • 基于MATLAB的二阶同步挤压小波变换(WSST2)实现
  • 电商-数据库分库分表方案 - 努力-
  • CAD 多个dwg文件合成一张图(无需插件)
  • 2025 年光伏灌注桩厂家推荐:天津宏图新能源发展设备优势与全程服务体系解析
  • 鸿蒙应用开发从入门到实战(十八):组件编程思想之代码复用
  • arm环境vg损坏mysql数据库恢复---惜分飞
  • Atcoder Beginner Contest 422
  • 【Android】解决安卓在隐藏强大的系统栏后usb鼠标被隐藏的疑问
  • RapidJSON 自定义内存分配器详解与实战 - 详解
  • PKC7300高频电流探头在新能源汽车车载充电机稳态电流测试中的应用方案
  • 质量检验知识专题讲座之六:抽样检验步骤
  • 羡慕线段树
  • 质量检验知识专题讲座之七:来料检验
  • windows 10分区教程,win10自带分区教程
  • 决斗(模拟赛题目T3)分析
  • Guidde:AI驱动的视频文档创建工具 - 详解
  • gitlen中,已经提交了内容,如何回退到修改前?
  • HCIP-IoT/H52-111 真题详解(章节C),接入实用的技术和网络设计 /Part1