vs code是一个轻量级的代码编辑器,因为单片机使用的是C51编程,基于C语言。使用vs code编程就会出现C51的关键字报错,这篇文章是我仅仅用vs code编程解决C51关键字和头文件无法找到的报错的一个笔记,我目前编译还是使用keil,阅读代码和写程序使用vs code。
1、vs code准备设置
添加代码,代码对应keil安装路径下的INC文件夹
"C_Cpp.default.includePath": [
"C:/Keil/C51/INC"
]
2、keil新建一个工程
为了演示,我在桌面新建一个文件夹,把我当keil工程存储到文件夹里,文件夹命名Damo + 时间,keil工程命名 task1。
注意:keil新建一个工程要有一个单独的文件夹存放,这样不会混乱
我会把工程名下的一个文件夹修改一下,这样以后编写多个C文件方便查阅
创建一个名为main.c的C语言文件
将刚才创建的main.c文件添加到keil工程里面
到了这一步就可以进行单片机编程了。
3、用 vs code进行单片机编程
我们只需将keil最小化
用 vs code打开刚刚我演示时创建的文件夹
我编写了一个简单的程序。按下快捷键Ctrl + s保存,然后重新打开keil
这样就可以用keil进行编译了。
4、对vs code一些语句的报错处理
我们看到用vs code编程如上图,“sbit”语句报错,虽然没什么关系但是强迫症的话,还是很不爽的。
我的解决方法是在工程目录上添加一个“.vscode”文件夹,文件夹里创建一个“c_cpp_properties.json”的文件,添加C51编程使用到的常用语句来解决。
“c_cpp_properties.json”内容
{
"configurations": [
{
"name": "",
"defines": [
"__C51__",
"__VSCODE_C51__",
"reentrant=",
"compact=",
"small=",
"large=",
"data=",
"idata=",
"pdata=",
"bdata=",
"xdata=",
"code=",
"bit=char",
"sbit=char",
"sfr=char",
"sfr16=int",
"sfr32=int",
"interrupt=",
"using=",
"_at_=",
"_priority_=",
"_task_="
],
"intelliSenseMode": "msvc-x64",
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}
这样就完美解决了