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, 但是还未合并.

参考

原文地址:https://www.cnblogs.com/milton/p/15456245.html