找回密码
 立即注册
查看: 20|回复: 4

【萌新指南-02】使用 VScode + keil 实现(代码提示)编辑+编译程序

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2026-05-03 12:23:00
已绑定手机

38

主题

178

回帖

2335

积分

荣誉版主

Rbowlystar

积分
2335
发表于 昨天 21:12 | 显示全部楼层 |阅读模式
【萌新指南】序列02--使用VScode+Keil5实现(代码提示)编辑+编译程序
其他文章,点击跳转:
【萌新指南】序列00--keil5安装指南(官方渠道方法下载并安装C251, C51)
【萌新指南】序列01--创建一个拥有个人风格的Keil5工程模板及一些Keil5的基本设置


【萌新指南】使用VScode keil 实现编辑 编译程序.pdf (3.36 MB, 下载次数: 1)

第一步 下载并安装VS code
VScode(https://code.visualstudio.com/)是免费开源的,由于我已经安装好了,并且网络上也有大量的教程,因此这一步便不过多叙述。
截图202605022022306718.jpg
截图202605022022533369.jpg

第二步 VScode 的初步优化
1、安装中文插件 进行汉化


大家第一次打开 VScode 时,应该是英文界面,需要在插件商店搜索 Chinese 插件进行汉化。
先切换到扩展界面,再搜索汉化插件【Chinese】,点击install安装。
安装完成之后,右下角会提示需要切换语言并重启后生效【Change Language and Restart】,点击重启即可。
注:右侧工具栏的顺序可能与我的不一致(我可能切换了排序顺序),大家看这个方块的图标即可,或者按快捷键ctrl+shift+X 切换到扩展界面
截图202605022024152116.jpg
2、安装C语言相关插件
我们常使用C语言进行单片机编程,因此,想要轻松阅读编辑代码,需要下载相关的插件。
1.未安装插件的界面

先打开一个官方的例程试试看是什么样子的
截图202605022025123243.jpg
也可以,点击文件【File】,打开文件夹。

截图202605022025347078.jpg

打开文件夹之后,再打开main.c文件,在右下角可以看见编辑器已经识别出C语言了并提示我们安装对应的插件,
同时还可以看见注释都变成了乱码,这是因为官方例程是使用GBK编码保存的,而系统默认都是UTF-8编码,编码的问题稍后再介绍。
截图202605022035038794.jpg
没有安装插件时,我们无法通过长按Ctrl键,单击跳转。并且右键也没有跳转选项。
截图202605022036273395.jpg
2.安装C语言插件
还是回到扩展界面,搜索【C】,安装C/C++插件,把这4个都安装上,或者直接点击之前弹出的提示框一键安装。
截图202605022036432673.jpg
安装完插件后,可以进行快捷跳转了,右键也多了很多功能。
截图202605022036599147.jpg
截图202605022037072941.jpg
3.安装链接 keil 的插件
继续在插件商城里,搜索【Keil uVision Assistant】,切记不要安装错了,因为我了解到的,目前只有这个插件支持C51/C251/ARM,其他的一般不支持C251。
截图202605022037465660.jpg
安装完成后,右键设置一下参数。
截图202605022038072625.jpg

可以参考一下官方案例,进行配置。
项分别填入MDK、C51、C251。值填入keil5的安装目录。
注:如果你是参考【萌新指南】序列00--keil5安装指南(官方渠道方法下载并安装C251, C51),安装的keil5,那么3种编译器的路径都是一样。
如果不是,请按照你的安装目录为准。
截图202605022038232043.jpg
我的MDK、C51、C251安装目录都是在 D:\Keil_v5
截图202605022040005381.jpg
因此我配置成这样就好了
截图202605022040138512.jpg

这个插件配置完成后,回到资源管理器(侧边工具栏中文件的图标)。就可以看到有一个keil uvison project目录
截图202605022040337118.jpg
点开这个目录,就会发现Vscode已经自动识别出工程了,并生成了一个配置文件夹。
截图202605022040527102.jpg
这3个按键与keil中的是一样的效果。
截图202605022041037161.jpg

使用全部编译后,也是成功编译了。但是编译结果与keil中的有点差异,而且编译速度也远远不如keil。
虽然能用,但十分不建议用这个插件。
建议使用VScode编辑程序代码,使用keil5进行编译调试。

截图202605022104258718.jpg

4.推荐的插件
a.Error Lens 更直观的报错提示
截图202605022041478707.jpg
截图202605022041537712.jpg

b.Code Translate 鼠标悬停在英文上,可以翻译单词(长句好像
不行)
截图202605022042151827.jpg

c.Doxygen Documentation Generator 更直观的注释
截图202605022042289790.jpg
截图202605022042544374.jpg

不过多缀叙了,本人在单片机中常用的插件如下
截图202605022043088811.jpg

3、VScode 的基础设置
打开右上角File中的首选项,设置
截图202605022043244563.jpg

1.乱码问题
搜索Encoding,将UTF-8修改为GBK编码,如果你默认使用的时UTF-8编码,则不需要修改。
截图202605022043436381.jpg
截图202605022043507037.jpg

2. Ctrl + 鼠标滚轮:缩放代码字体大小
搜索 Mouse Wheel Zoom,根据需求勾选
截图202605022044031733.jpg

3.TAB键的设置(曾经打开过的文件不会采用修改后的配置)
搜索 TAB ,可以根据个人习惯设置
截图202605022044186908.jpg
截图202605022044252179.jpg
截图202605022044383151.jpg

4.无法找到头文件的报错(未安装keil插件的情况,麻烦!每次打开新工程都要重新配置。安装了请看本条目的第5点)
这个报错是因为没有告诉VScode头文件的位置在哪里,所以会报错,但实际不会印象keil5编译。
接下来打开VScode的配置文件.。
截图202605022044574357.jpg

或者点击上方搜索栏,点击显示并运行命令,然后搜索C/C++
或者使用快捷键 Ctrl+shift+P,然后搜索C/C++
或者直接在上方搜索栏,搜索>C/C++
截图202605022045089759.jpg
截图202605022045151110.jpg
可以添加一个新的配置,名为 MCU。也可以直接修改自动生成的win32配置,因为每次打开一个新的工程都要重新配置。
截图202605022045279241.jpg

如果你的电脑中安装了GCC编译器(MingGW),这里会自动识别出来。
如果没有安装,空着也没事,毕竟我们是使用keil5编译的,这一步的目的是为了消除头文件报错
截图202605022045423664.jpg
然后在 包含路径 中加入keil5的头文件路径,修改成自己的,在后面补上 /**

例如 D:/Keil_v5/C51/INC/**

例如 D:/Keil_v5/C251/INC/**
截图202605022046042230.jpg
然后在 定义 中加入keil5的常用定义,可以消除 xdata 等在VScode中的报错


  1. __C251__
  2. __VSCODE_C251__
  3. reentrant=
  4. compact=
  5. small=
  6. large=
  7. data=
  8. idata=
  9. pdata=
  10. bdata=
  11. edata=
  12. xdata=
  13. code=
  14. bit=char
  15. sbit=char
  16. sfr=char
  17. sfr16=int
  18. sfr32=int
  19. interrupt=
  20. using=
  21. far=
  22. _at_=
  23. _priority_=
  24. _task_=
复制代码

截图202605022046566428.jpg
最终效果如下
截图202605022047088374.jpg

5.无法找到头文件的报错(安装了keil插件的情况)
安装了keil插件,我们每次点开插件,都会自动生成第4点的配置,无需手动设置。
截图202605022047407514.jpg
但有时候还是会出现这样的报错,这是怎么回事呢?
截图202605022047523042.jpg

我们只需打开keil5的头文件目录便知晓。插件自动添加的头文件路径跟keil5中的一模一样,且多了一个C251的头文件路径
截图202605022048061509.jpg
STC的头文件也在这个目录的子文件中,而想要调用子文件中的文件,只需在路径后补上 斜杠 星星  星星即可。
截图202605022048275844.jpg
因此我们直接在创建keil5工程时,顺手在头文件路径中补上带斜杠 星星  星星的路径即可。
  1. D:/Keil_v5/C51/INC/**
  2. D:/Keil_v5/C251/INC/**
复制代码
截图202605022048598015.jpg
然后keil5点一下编译,vscode也会瞬间同步。
截图202605022049198037.jpg
此时报错便消失了
截图202605022049316207.jpg
唯一的遗憾是 Vscode 无法消除中断函数的报错
截图202605022049417361.jpg

总结

Vscode的玩法有很多,我这里介绍的也只是冰山一角。
最后还是建议同志们使用VScode作为代码的编辑器,keil5作为程序的编译器使用。
因为在编译调试方面而言,keil5都是完胜vscode的,当然不排除有大神能写出优于keil5的编译链方法。
其次Vscode中也有很多AI编程的插件,但现阶段而言,本人认为Ai提供的程序还是在参考或部分可用的阶段,如果完全使用AI开发的程序做项目,后期出了问题都无从下手,让ai自己修复也可能会越改越多BUG。因此只推荐各位使用AI作为助手,辅助修改那些重复的工作,或咨询不明白的问题,本人在此不做Ai相关的插件推荐,各位请自行查找合适自己的AI助手进行安装使用。





截图202605022047407932.jpg
1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
故事没有结局,遗忘是唯一的终点...
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2026-05-03 12:23:00
已绑定手机

38

主题

178

回帖

2335

积分

荣誉版主

Rbowlystar

积分
2335
发表于 昨天 23:59 | 显示全部楼层
针对中断函数报错无法消除的问题:
就之前而言,我一般是在VScode中注释掉interrupt x

然后编译之前在打开,这样操作十分不便利,甚至已经习惯了这个报错。
截图202605022353014947.jpg


然而刚刚复盘的时候,突然发现在VScode中的keil插件,会自动补充两个定义
"__VSCODE_C251__" 和 "__VSCODE_C51__"
截图202605022355379191.jpg

那么我们就可以在头文件中,插入一段宏定义去实现,在VScode中注释interrupt x,并且不会影响到keil5编译。
  1. //========================================================================
  2. //                               VScode优化
  3. //========================================================================
  4. #if defined(__VSCODE_C251__) || defined(__VSCODE_C51__)
  5. #define interrupt(x)
  6. #else
  7. #define interrupt(x)    interrupt x
  8. #endif
复制代码
截图202605022358257048.jpg

报错消失,如此一来,便不留遗憾了
截图202605022358584640.jpg

故事没有结局,遗忘是唯一的终点...
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:237
  • 最近打卡:2026-05-03 00:48:29
已绑定手机

22

主题

407

回帖

1834

积分

金牌会员

DIY玩家

积分
1834
发表于 15 小时前 | 显示全部楼层
使用vscode编码体验好
而keil调试功能好
真正的学徒往往怀着大师的心
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:284
  • 最近打卡:2026-05-03 11:57:51

0

主题

76

回帖

1098

积分

金牌会员

积分
1098
发表于 4 小时前 | 显示全部楼层
到底转不转vscode呢

点评

keil5是刚需,无论用不用vscode,都需要安装keil5,芯片配置、文件导入、头文件路径等等还是要在keil5中设置的。 vscode作为代码编辑器使用,提供了优美的界面效果、更好的错误提示、一键补全等功能,只能说是锦上添  详情 回复 发表于 3 小时前
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:436
  • 最近打卡:2026-05-03 12:23:00
已绑定手机

38

主题

178

回帖

2335

积分

荣誉版主

Rbowlystar

积分
2335
发表于 3 小时前 | 显示全部楼层
凌*** 发表于 2026-5-3 12:04
到底转不转vscode呢

keil5是刚需,无论用不用vscode,都需要安装keil5,芯片配置、文件导入、头文件路径等等还是要在keil5中设置的。
vscode作为代码编辑器使用,提供了优美的界面效果、更好的错误提示、一键补全等功能,只能说是锦上添花,提升写作效率,上限和下限都有所提升。
故事没有结局,遗忘是唯一的终点...
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-5-3 16:17 , Processed in 0.127796 second(s), 77 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表