# stcflash
**Repository Path**: num3/stcflash
## Basic Information
- **Project Name**: stcflash
- **Description**: Add support for STC8 series and STC15 series
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2024-02-20
- **Last Updated**: 2024-02-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# stcflash
Add support for STC8 series(STC8A,STC8F,STC8H,STC8C) and STC15 series
# 介绍
stcflash主要是基于https://github.com/laborer/stcflash 的stcflash修改而来,原版的stcflash只支持一些比较旧系列的STC单片机,我在此基础上,添加了对STC8全系列(STC8A、STC8F、STC8H、STC8C)和STC15系列的下载支持。
# 新增功能
1、添加对STC8和STC15系列单片机的下载支持;
2、对于STC8系列和STC15系列,新增最高波特率设置指令--highbaud;
3、对于STC8系列和STC15系列,新增最高波特率支持到460800;
3、新增对于STC8和STC15系列单片机的基本信息读取显示,包括芯片型号、版本、程序空间和出厂序列号等。
# stcflash基本使用方法
## 使用条件
1、需要python环境,推荐python3;
2、安装pyserial模块;
## 使用命令
1、按照默认参数
./stcflash.py xxx.hex
2、指定最低波特率、最高波特率和通信端口
./stcflash.py xxx.hex --port COM3 --lowbaud 2400 --highbaud 460800
3、其他命令可以参考https://github.com/laborer/stcflash 的README.md
# 注意事项
1、对于STC8系列和STC15系列,如果没有指定最低波特率和最高波特率,默认最低波特率为2400,最高波特率为115200;
2、最低波特率建议使用默认2400,以便单片机的正常检测;
3、对于STC8系列和STC15系列,最高波特率虽然可以指定1200-460800的任意数字,但为了增加下载的成功率,建议按照固定波特率设置,常见波特率如下:
460800、230400、115200、57600、38400、28800、19200、14400、9600、4800、2400、1200
4、对于STC15系列,最高波特率不宜设置过低(建议不小于115200),否则可能出现下载失败情况。因为STC15系列型号较多,握手协议有差别,没法做到全波特率兼容;
5、本人测试的单片机有STC89C52、STC15W4K48S4、STC15L2K08S2、STC8A8K64S4A12和STC8H8K64U,由于样本实在太稀少,所以不能保证全部型号都能正常识别下载;
6、单片机的型号是通过特殊的手段诱骗STC-ISP(V6.87H)得到的,把这些型号整合到代码中也是比较繁琐的,纯粹是体力劳动。我在原先的代码当中添加了新的键来映射新添加的型号,详细可以查看代码。如果后面STC再出新型号,如果协议不一样,还是需要做兼容,方法也是类似;
7、如果有任何意见和建议,欢迎提出,共同探讨!