最近要用Arduino做一个项目,网上看来那么多教程,花了两天时间终于给搞完了,这里就为大家将十几篇博客和B站视频的观看结果进行总结。
阅读之前,注意以下几点坑:
1、建议arduino和VScode版本与我共享的压缩包保持一致,新版存在很多bug。
2、所有路径尽量不要存在中文,也会有错误。
3、没完成一个插件安装和相关文件配置并保存后,建议退出再次进入VScode,让其发挥作用。
目录
VS code软件的下载以及相关配置
VScode软件的下载网上教程很多,这里就不读赘述。
注:由于VScode可能下载很慢以及版本问题,文末为大家提供【VSCodeSetup-x64-1.58.2.exe】 的下载资源。
下载之后首先下载【chinese插件】然后退出重启VScode。
重启之后,建议大家对VScode的更新进行禁用,这样防止后续的更新与我们所配置的文件版本兼容性出现冲突。
VScode禁用版本更新
禁用更新方法:
文件--》首选项-》设置-》搜索栏输入更新,然后在点击应用程序-》更新,相关选择如下图:
C/C++下载以及版本退化
插件当中输入C/C++,下载安装
安装后,找到已安装的插件,选择设置,安装另一个版本:
出现以下界面,选择1.8.4版本,之后,你的图标下也会出现更新界面,不要选。
千万不要尝试最新版本,这会涉及之后json文件的配置问题。(高版本没有launch.json文件)
下载arduino插件
一定要选择Microsoft出版的这个
至此,相关所需插件下载已完成,进入配置文件重头戏。
相关编译配置
参考资料
可以参考以下两位的视频
先按照我下面的操作,如果操作完发现有问题,可以结合两个视频查漏补缺。
第二个视频操作比较复杂,我操作完之后,发现可以直接对用户settings.json进行代码配置,不用那么复杂。
用户setting.json配置
进入文件--》首选项-》设置-》选择用户
点击左上角进入用户配置json
先删除你的json配置文件,然后,将以下代码粘贴
//用户(全局)设置
{
//一些习惯配置
"editor.fontFamily": "Consolas, 'Courier New', monospace",//字体
"editor.fontSize": 16,//字号大小
"explorer.confirmDelete": true,//删除文件时是否打开资源管理器询问
"files.encoding": "utf8",//编码方式
//对Arduino的配置
"arduino.logLevel": "info",
"arduino.path": "F:\\arduino安装包\\Arduino",//这里需要改成自己的arduino安装地址,对桌面arduino图标右键,选择打开文件所在路径
//禁用VScode的更新
"update.enableWindowsBackgroundUpdates": false,
"update.mode": "none",
//对C++配置
"C_Cpp.default.compilerPath": "F:\\mingw\\810\\mingw64\\bin\\g++.exe",//c++编译器,根据我提供的文件,结合自己解压的地址更改,注意加双斜杠,下面进行解释
"C_Cpp.default.cppStandard": "c++14",//配置c++标准,粘贴即可
"C_Cpp.default.cStandard": "c11",//c标准,粘贴即可
"C_Cpp.default.includePath": [
"F:\\mingw\\810\\mingw64\\lib"//根据我提供的文件,结合自己解压的地址更改,注意加双斜杠
],
"C_Cpp.default.intelliSenseMode": "gcc-x64",//智能补全提示,粘贴即可
}
针对下面代码
"arduino.path": "F:\\arduino安装包\\Arduino",//这里需要改成自己的arduino安装地址,对桌面arduino图标右键,选择打开文件所在路径
这里需要改成自己的arduino安装地址,对桌面arduino图标右键,选择【打开文件所在路径】
选中自己的地址,粘贴,添加双斜杠
为了安全起见,在保存上述用户settings,json后,进行下面的验证
选择Arduino插件进入扩展设置
找到:Arduino:Path,查看是否出现自己的路径,如果没有,在这里也将自己的路径加入。
针对下面代码:
"C_Cpp.default.compilerPath": "F:\\mingw\\810\\mingw64\\bin\\g++.exe",//c++编译器,根据我提供的文件,结合自己解压的地址更改,注意加双斜杠,下面进行解释
将我压缩包里的【x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z】解压到自己想要的地址,出现下面的文件夹
进入里面的bin文件,可以看到里面有g++.exe文件
复制自己的路径->粘贴->双斜杠->记得添加\\g++.exe
同理,针对下面的代码
"C_Cpp.default.includePath": [
"F:\\mingw\\810\\mingw64\\lib"//根据我提供的文件,结合自己解压的地址更改,注意加双斜杠
],
找到该文件夹下的lib文件,复制路径,粘贴,双斜杠。
至此,用户区的setting.json配置完毕
工作区setting.json配置
同样,针对下图,选择工作区,右上角进入json配置
粘贴下面代码:
{
"C_Cpp.intelliSenseEngineFallback":"Disabled",
"C_Cpp.intelliSenseEngine": "Tag Parser",
//"C_Cpp.intelliSenseEngine": "Default",
//Default:默认开启搜索引擎感知上下文
// Disabled:关闭感知上下文搜索
//Tag Parser:用于其他文件搜索感知
"editor.insertSpaces": true,
"files.autoGuessEncoding": true,
"editor.detectIndentation": false,
"commentTranslate.hover.enabled": false,
}
以上代码不用与文件挂钩,不多解释。
task.json配置
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "F:\\mingw\\810\\mingw64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-fexec-charset=GBK" //utf-8转GBK格式,解决中文乱码问题
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
Arduino工程测试
下面进行arduino工程建立;
在桌面建一个文件夹,并且新建一个arduino文件
用VScode打开
进入之后,可能出现下面
所以,一般选择打开VScode后,选择需要打开的文件夹,如下图:
选择资源管理器-> 打开你想要打开的文件夹->信任
然后再次选中左侧arduino的test.ino工程,这里,系统识别到时arduino文件,右下角会多出相关选择,
然后,先选择板子型号(我这里选的是UNO,根据自己的选择就好):
然后,会发现右侧的资源管理器下多出来了一个.vscode文件夹
里面只有arduino.json文件
auduino.json文件配置
打开arduino.json文件,删除其中内容,粘贴以下代码:
{
"board": "arduino:avr:uno",
"programmer": "arduino:avrispmkii",
"port": "COM10",
"sketch": "test.ino",
"output": "./build"//将生成文件放入一个叫include的文件当中,可以取自己喜欢的名字
}
啥也不写,点击右上角的verify
之后,.vscode文件夹下多了两个文件
然后进行代码测试,可以看到,已经有相关代码只能提示(图中红线不用担心,这是文件仍在加载无法识别关键字)
输入下面的代码:
然后verify编译,Done表示成功。
上面的代码如果你有板子可以在右下角选择串口
然后upload
上传到板子:
然后,打开Arduino IDE
选择工具->端口(选择自己电脑对应的外界开发板的端口)->串口监视器
至此,成功运行。
C++的一些优化配置
一、头文件自动生成
步骤:
- Shift+Ctrl+P ,打开命令面板
- 输入
snippets
,找到Preferences:Configure User Snippets
-
选择
新建全局代码片段文件...
-
输入
c_cpp_header
(该名称可以自定义),会生成c_cpp_header.code-snippets
配置文件,默认如下 -
在下面粘贴以下代码
"C C++ Header": {
"scope": "c, cpp",
"prefix": "header",
"description": "Add #ifndef, #define and #endif",
"body": [
"#ifndef _${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H_",
"#define _${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H_",
"",
"$0",
"",
"#endif // _${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H_"
]
}
测试:
成功!!
二、解决不同文件夹下头文件包含问题
1.ctrl+shift+p ==> 输入task选择任务配置,打开task.json
在如下位置加入两行,注意是文件夹路径,不是文件路径
其中 -I(大写i)表示你的头文件路径, -L 表示库文件路径,-l(小写L) 代表库文件 .
2.Command shift P + Edit configuration,打开 c_cpp_properties.json
ruxiawe
如下位置加入两行
共享文件
百度网盘:
链接:https://pan.baidu.com/s/1qkoKy0Lmct7VJxHADpLXcg
提取码:awsl
如果教程有帮到您,麻烦点个收藏,给个小赞!!!