当前位置: 首页 > 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.hskmm.com/?act=detail&tid=27866

相关文章:

  • 国产DevOps工具链崛起:Gitee如何助力企业数字化转型破局
  • SAP移动类型TR和TF和TP
  • docker-compose 启动 elk
  • Gitee领航中国DevOps市场:本土化优势与云原生战略的双轮驱动
  • 禅道怎么更新MySQL数据库的用户名和密码
  • 【IEEE出版、EI检索稳定】 第五届数字化社会与智能系统国际学术会议(DSInS 2025)
  • 【2025-10-03】连岳摘抄
  • maxscript的自动科学计数法转换导致dotnet json序列化识别错误
  • 国产项目管理工具Gitee:本土化优势赋能企业数字化转型
  • 【光照】UnityURP[光照贴图]GPU instancing在静态动态物体上的应用
  • 2025 年电缆桥架厂家最新推荐排行榜:涵盖不锈钢 / 铝合金 / 热镀锌等多类型,助力用户精准选购优质桥架托盘式/防火/喷塑/防火喷塑/大跨距电缆桥架厂家推荐
  • 国家社科基金立项清单和申请书范本(直接领)
  • AOP编程有三大场景:控制器切面,内部切面,外部切面,你get到了吗?
  • Gitee本土化战略:如何构建中国开发者的代码托管新生态?
  • Vue3路由传递复杂参数(比如一个对象)
  • 2025 年国内一体板厂家最新推荐排行榜:装配式 / 珍珠岩 / 免拆 / 外墙保温品类优质企业权威精选
  • 系统提示词优化模板-通用优化-带输出格式要求
  • CRMEB标准版PHP订单列表源码解析:自定义字段与导出功能
  • odoo18安装环境
  • 系统提示词优化模板-通用模板
  • aardio编程中的常量
  • CF2145E Predicting Popularity
  • 偏微分方程数值解法
  • 2025 年 英国 / 澳洲 / 香港 / 美国 / 加拿大 / 留学机构推荐:金矢留学服务解析,从院校资源到全程规划的优质之选
  • 基于MATLAB的二阶同步挤压小波变换(WSST2)实现
  • 2025 年聚丙烯酰胺厂商最新推荐排行榜:聚焦优质企业,助力企业精准选购环保水处理耗材PAM/沉淀剂/脱泥药剂/阴离子/阳离子聚丙烯酰胺厂商推荐
  • 半导体行业文件摆渡系统:守护核心数据安全,赋能高效协同!
  • 电商-数据库分库分表方案 - 努力-
  • VMware 17.6 虚拟机 永久免费版安装包下载及安装教程!
  • 使用perf进行性能分析-入门级别