PlatformIO手工升级stcgal到1.6版本
PlatformIO自带的stcgal版本为1.4, 这个版本只支持到STC15, 不支持STC8. 在使用PlatformIO内建的upload写入STC8A8K64S4A12时, 会提示不识别的协议stc8. 在PlatformIO的mcs-51项目下看了下提交历史, 最近一两年基本没有更新, 在issues里也没找到合适的临时解决方案, 只能自己解决了.
以下使用的是Ubuntu20.04.
首先检查一下自己系统自带的stcgal版本
$ stcgal --version
stcgal 1.6
1.6是可用的, 如果不是这个版本, 建议先升级一下.
找到stcgal对应的包安装目录
默认是在/home/milton/.local/lib/python3.8/site-packages
, 你需要把milton换成你自己的home用户名. 在下面找到对应的4个目录:
- stcgal/
- stcgal-1.6.dist-info/
- tqdm/
- tqdm-4.61.1.dist-info/
这4个目录待会儿需要复制到PlatformIO的工具目录下, 带着tqdm是因为stcgal-1.6依赖于tqdm, 不带着运行会报错.
找到PlatformIO的工具目录
默认是在/home/milton/.platformio/packages
, 你根据自己的home用户名替换一下, 在这个目录下, 应该可以看到有这两个目录
- stcgal/
- stcgal-1.4.egg-info/
这就是PlatformIO自带的stcgal-1.4,
复制
将stcgal重命名为 stcgal-1.4, 留个备份. 然后将刚才那4个目录复制过来.
之后再到PlatformIO里面执行Upload, 就能对STC8写入了.
注意
现在github上最新的stcgal, 还不支持STC8G和STC8H, 对于STC8A8K64D4版本的支持已经有人提交PR, 但是还未合并.
参考
- stcgal https://github.com/grigorig/stcgal
- stcgal with STC8G1K, 这里有STC8G的临时解决办法,未验证 https://github.com/grigorig/stcgal/issues/63