个人技术分享

解决使用vscode编写51遇到的Protocol error: packet checksum mismatch问题,以及解决思路

VScode搭建51开发环境

使用vscode搭建51开发环境这里不多赘述。
Windows下基于VSCode的51单片机开发环境搭建(编译+烧录)

系统环境

我是用的win10系统,python环境是使用的python3.11。默认安装的stcgal的版本是1.10版。

遇到的问题

我参考这篇文章搭建的。在编译环境没什么问题,但是,在烧录环节我遇到了
在这里插入图片描述
提示有问题。于是查看GitHub下issus发现大家其实都遇到过这种问题
stcgal github
在这里插入图片描述
于是看来软件的release版本的消息。发现其实在1.8版本就修复了这个问题。
在这里插入图片描述

解决方法

于是查看烧录命令

 *  终端进程“cmd.exe /C "stcgal  -P auto -b 115200 -p COM3 "f:\code\MCU\WirelessElectronicResponseSystem\WirelessElectronicResponseSystem\build\Release\WirelessElectronicResponseSystem.hex""”已终止,退出代码: 1。

发现 -P是auto,参考电子发烧友提供的解决方案发现了不同的地方。
电子发烧友关于问题的解决
在这里插入图片描述
就是-P这里要使用stc89a才可以,
所以接下来修改命令参数其实就可以了。
在这里插入图片描述
打开这个设置:
在这里插入图片描述
果然device是auto,修改成stc89a
在这里插入图片描述

效果

执行烧录:
在这里插入图片描述
这样就没啥毛病了。