当前位置: 首页 > 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.gsyq.cn/news/18033.html

相关文章:

  • 国产DevOps工具链崛起:Gitee如何助力企业数字化转型破局
  • SAP移动类型TR和TF和TP
  • docker-compose 启动 elk
  • Gitee领航中国DevOps市场:本土化优势与云原生战略的双轮驱动
  • 禅道怎么更新MySQL数据库的用户名和密码
  • 【光照】UnityURP[光照贴图]GPU instancing在静态动态物体上的应用
  • Vue3路由传递复杂参数(比如一个对象)
  • 系统提示词优化模板-通用优化-带输出格式要求
  • CRMEB标准版PHP订单列表源码解析:自定义字段与导出功能
  • 系统提示词优化模板-通用模板
  • 开源 C# 快速开发(三)复杂控件 - 教程
  • CF2145E Predicting Popularity
  • 深入解析:从Android到iOS:启动监控实现的跨平台技术对比
  • 百度开源 Qianfan-VL: 领域增强的通用视觉语言模型 - 详解
  • 2025 年聚丙烯酰胺厂商最新推荐排行榜:聚焦优质企业,助力企业精准选购环保水处理耗材PAM/沉淀剂/脱泥药剂/阴离子/阳离子聚丙烯酰胺厂商推荐
  • VMware 17.6 虚拟机 永久免费版安装包下载及安装教程!
  • Tmux中向上翻屏查找命令输出(KIMI)
  • CAD 多个dwg文件合成一张图(无需插件)
  • 鸿蒙应用开发从入门到实战(十八):组件编程思想之代码复用
  • arm环境vg损坏mysql数据库恢复---惜分飞
  • 2025 年国内连接器厂商最新推荐排行榜:聚焦 Type-C / 板对板等核心品类,精选优质企业助力下游选型针座/板对板/卡座/FPC/排针连接器厂家推荐
  • Elasticsearch 备份:方案篇
  • 【Android】解决安卓在隐藏强大的系统栏后usb鼠标被隐藏的疑问
  • 2025 最新推荐!溴化锂回收公司精选榜单:含制冷机 / 溶液 / 机组回收服务商权威测评及选择指南
  • 质量检验知识专题讲座之七:来料检验
  • 决斗(模拟赛题目T3)分析
  • gitlen中,已经提交了内容,如何回退到修改前?
  • HCIP-IoT/H52-111 真题详解(章节C),接入实用的技术和网络设计 /Part1
  • MySQL 8.0 my.cnf 配置详解
  • dremio sql server uniqueidentifier 数据类型问题