Arduino/EIDE/Platform IO/Linux/MRS/Keil/STM32Cubemx配置
0. 前言
在开发中,我们最讨厌的就是配置环境,环境变量只是入门的一小关,这些网上的教程都很多,但是对于不同设备,不同的配置会出现不同的问题,有时在使用网络IP时,对于网络的配置,DNS...配置更是让人头大,在此,我把我使用过的常见IDE的配置整理出来,我用的环境都是较新,比一些远古版本更具有参考性
1.keil
由于时间成本,keil没有什么版本变化,网络上的教程也比较多,大家可以参考,如果有空,我会补充,这里推荐正点原子/野火的教程
1.1 魔法棒配置注意事项
-
首先我们绝大多数配置都是在魔法棒

-
进入魔法棒之后,有几个子界面需要我们配置

这里选择我们开发板芯片的对应型号
-
在下面1是我们的仿真晶振,这个选项是在较老版本Keil才可以设置,设置的软件仿真时的晶振,现在可以不管。2是我们编译器的版本,这里有几个可以选,在新版本只有6版本,但是对于一些问题无法解决,切换版本可以有用.

-
这是最重要的一部分,对于1,这个是全局宏定义,需要根据板子的容量来进行填写,具体需要查看自己板子上ld,md,hd哪种,我之前还见到一种xd的写法,但是我看官方推荐的是上面的三种。对于2,这里可以设置我们编译的优化等级,优化等级不是越高越好,有些会优化原始变量的访问,或者会造成代码歧义,引起难以察觉的错误。对于3,这里是设置keil里面的char类型有无符合。对于4,是否启用C99,对于5,是我们把代码中的头文件路径放入进去。上面5点,1和5需要根据自己设置,其余可以和我一样

-
在这里选择我们扫了烧录代码时,使用的工具,根据自己的使用选择

-
在这里我们设置是SW两线烧录,我们使用的是SW协议的烧录方式,除了VCC和GND之外,只需两线,如果是JTAG,就选择JTAG,使用的是四线

-
这里对于1来说,我们看名字,就指定知道可以设置芯片的擦除方式,全擦,块擦,不擦,然后是复位后运行,这是相当于下载程序后就会自动执行,不勾选需要下载程序后,手动使用复位键,这里和我一样就行。对于2,这是根据自己板子的型号选择对应的烧录算法,在下面add可以进行添加

1.2 启动文件配置
还是容量问题,这里需要选择和我们板子一致的容量的启动文件,和我们1.1中第4步的第一点全局宏定义对应,还和我们1.1中第7步的算法文件对应

这样我们的文件就配置好了
1.3 工程移植
我之前入门的时候使用的是F103C8T6的芯片,但是学的教程是F103VET6的代码,这时候就可以进行移植
这里指的是,把一些其它芯片的工程移植过来(同样STM32),首先我们要明白,一些不同的芯片的一些外设定义不一样,资源也不一样,对于这部分,需要手动更改代码适配。
- 更改启动文件,我们需要找到我们现在使用板子的芯片对应的启动文件,参考1.2
- 更改全局宏定义,在1.1的第4步的第1点,也需要找到对应宏定义
- 更改烧录算法文件,这对应1.1的第7步,选择容量一致的算法文件
2.STM32Cubemx
对于这个的教程也是比较多,这里主要提醒一点,千万千万记住把烧录引脚默认SW启用,否则,第一次烧录代码之后,后面就不能烧录代码了,此时,需要更改boot引脚,去通过串口烧录程序
配置流程(简单说一下)
- 先搜索对应芯片,加载工程
- 打开中断,时钟
- 设置时钟树,设置各个部分的晶振频率
- 打开SW烧录
- 根据需要,初始化GPIO.Time...
注意: 这里不得不提一点,电脑用户名以后不要用中文,这个软件对其及其不友好
3. MRS(包括1和2)
对于MRS1,这个是基于eclipse框架的,并没有什么复杂的配置
队医MRS2,这个是基于vscode框架进行开发。那么vscode的特点--拓展多,我们就可以来手动安装插件给MRS2
其余设置:注意浮点类型的打印等,可参考正点原子,很简单
3.1 插件安装
找到我们MRS2的软件安装目录,然后按照下图路径就是我们安装的插件

此时有小伙伴会问,插件哪里来,这里有三种方法。
-
直接在vscode的拓展里面搜索,并下载VSIX,然后拖动到上面的文件夹,但是这个下载VSIX,不一定成功

-
对于大多数拓展,是在GitHub开源的,我们可以在下图链接去GitHub下载,然后拖动到MRS的拓展目录

-
(推荐)直接在vscode直接下载好拓展,这是百分百支持的,然后去其按照目录的拓展目录,找到我们下载的拓展,再移过去,下面是vscode拓展目录

3.2 链接配置
我们知道,CH32的一个非常大的好处就是RAM和ROM可以互相转换,我们可以在其左边的LD文件下,进行更改,这里更改的是clangd检测,还需要在下载配置里面进行更改
3.3 其余注意事项
在闪存->下载配置,打开如下界面,1是设置芯片保护,解除保护才能下载代码。2,这是设置wchlink的模式,这个芯片是RV架构,我们需要使用这个。3,是设置我们的RAM和ROM的内存分配,与3.2的LD文件保持一致

其余需求,可以查看其快速入门手册
4. EIDE
这个是针对STM32的开发的vscode的扩展,可以导入现有的工程,注意事项是(后面贴图,因为现在刚好vscode被一个项目占用了)
这里先推荐这个博客
- 我们首先需要知道arm5,arm6的工具链
- 把工具链添加到我们拓展的设置的这几个位置,对于第3点,可以不管,其实就是会通过我们keil的下载路径自动去找arm编译链,也可以设置,点开桌面keil的图标,把文件位置复制进去就行
5.Plantform io
这也是vscode的拓展,源文件在国外,但是第一次下载比较慢,推荐解决方法是科学上网。
主要是下载源的更换,和配置Python环境和在Python里面下载对应的库
6.Arduino
6.1 下载
这个网上很多,而且就是官网下载,跟谁指引进行安装就行,最主要的问题就是开发板和库文件下载慢,下面完美解决
6.2 镜像源设置
打开 文件->首选项,得到如下,1是我们的项目保存的位置,注意库文件也在这个地方。2,这里设置颜色主题和语言。3,这里设置镜像源文件,用来下载就是因为这个,下载慢,很多人说什么科学上网,设置静态代理IP,其实根本没必要,现在乐鑫官方有对中国用户理想的镜像源

下面是镜像源,注意每行一个
http://arduino.esp8266.com/stable/package_esp8266com_index.json
https://dl.espressif.com/dl/package_esp32_index.json
https://espressif.github.io/arduino-esp32/package_esp32_dev_index_cn.json
6.3 开发板设置
这里直接在 工具->开发板>开发板管理 里面进行搜索和下载就行,下载eso32那个就行,那个兼容第一个

如果镜像源不行,我们可以选择cn版本,或者直接去把别人下好的拷贝到对应根目录
6.4 库导入
- 法1是直接一个一个下载,项目->导入库->库管理,搜索自己需要的下载
- 法2是把别人下载好的进行导致,项目->导入库->zip导入
- 把别人下载好的,直接放在根目录,在6.2的项目位置,里面会有一个librarise文件夹,把文件拷贝在其下面就行,如果没有的话,就先随便下载一个库文件,然后其就会出现
7.Linux
7.1 下载和安装
这个教程也很多,后面会贴出链接,或者参考我的另一篇文章,Linux入门学习,里面介绍了配置注意事项
7.2 window与Linux与开发板通信(一根网线连接)
把开发板和电脑通过网线连接,原理是,window和虚拟机进行桥接,在同一个网段,然后把开发板设置为同一个网段就行,然后对于是否通信成功,我们使用ping指令
我们先配置虚拟机
7.3 虚拟机不能上网,提示域名解析失败
域名解析失败,是DNS的解析问题,我们需要去手动设置DNS地址