STM32 CubeMX开发及f103开发环境搭建
1 安装包及HAL库包下载
CubeMX530安装压缩包 ![请添加图片描述](https://img-blog.csdnimg.cn/0529ca3b9d12413ebf49f0dd89f0d433.png) MDK5安装包 ![请添加图片描述](https://img-blog.csdnimg.cn/692172be7fdb42698996a6a3e3626508.png) F1系列库函数包 ![请添加图片描述](https://img-blog.csdnimg.cn/75d9f1f4b08849bd8b8c004f2626b56a.png) 下载链接 链接:https://pan.baidu.com/s/1TZWsszEpIpUN9aj11TxcaQ 提取码:hxp6
2 安装与环境配置
2.1 CubeMX安装
新建文件夹CubeMX并解压安装包 ![请添加图片描述](https://img-blog.csdnimg.cn/c2491bb4075145358adae7b43ac77a10.png) 在解压后的文件夹中打开安装文件 ![请添加图片描述](https://img-blog.csdnimg.cn/9fa9a9bf70154f59b30dd0b9922b82f8.png) 如果提示需要Java环境,点击确定,跳转到浏览器下载最新版本的Java,直接安装即可 ![请添加图片描述](https://img-blog.csdnimg.cn/3bfe66da22c64a56af8a36ec8372bc99.png) 安装完成后删除Java的安装包,重新双击安装文件,点击next ![请添加图片描述](https://img-blog.csdnimg.cn/002f08c34b2a48ef98970396e33abe7b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 勾选accept,然后next ![请添加图片描述](https://img-blog.csdnimg.cn/f5915775f2c64fdea5a3667fe42baaff.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 两个勾都勾上,next ![请添加图片描述](https://img-blog.csdnimg.cn/bddd2d6ffbfa4ea3a98a10a426ca9da5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 选择安装路径,就选刚才新建的CubeMX文件夹下再新建一个files的文件存放CubeMX即可,next ![请添加图片描述](https://img-blog.csdnimg.cn/c9f5efc0215842999b3b318adaa043a9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 确定 ![请添加图片描述](https://img-blog.csdnimg.cn/f45d950b6ef34949944f7c0ecc37cc72.png) 勾选current user,next ![请添加图片描述](https://img-blog.csdnimg.cn/b23a713017ed4ff4bd40af98bad55180.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 开始安装 ![请添加图片描述](https://img-blog.csdnimg.cn/1a59bcdfc28f41cdb709d0c58dbc9484.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) next完成 ![请添加图片描述](https://img-blog.csdnimg.cn/ec643db4956e4b5ca4b50843d597bc88.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) Done,关闭安装程序 ![请添加图片描述](https://img-blog.csdnimg.cn/f3989087b6a14ba69ffed89442ba11d8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16)
2.2 MDK5安装
参考CubeMX的安装方法,大同小异,CSDN也有专门的MDK5安装教程可以参考
2.3 f1开发环境配置
开始菜单里找到CubeMX并打开 ![请添加图片描述](https://img-blog.csdnimg.cn/8d2bc040422f441e86c593a9ec5c4ec6.png) 创建工程 ![请添加图片描述](https://img-blog.csdnimg.cn/4dd0c51edf5344fbb3758059ea792b1f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 第一次使用会下载配置文件,确保联网 ![请添加图片描述](https://img-blog.csdnimg.cn/f19cd758b7e34b3f9117d72953f1d6f0.png) 完成后会弹出芯片选择页面,在搜索框中搜索芯片,点击选择,start Project ![请添加图片描述](https://img-blog.csdnimg.cn/cef416b9cc904b778c6b47c63c5e659a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 进入此页面,点击红色框所示的项,进入配置页面 ![请添加图片描述](https://img-blog.csdnimg.cn/48f2c61beebe473bbbb49b1363ad2560.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 按下图操作 ![请添加图片描述](https://img-blog.csdnimg.cn/c51184125eb345a1b966c4ddfca82da4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 把下载好的库文件放在这里并解压 ![请添加图片描述](https://img-blog.csdnimg.cn/b52e0aaf3e22409782746fcc276f489d.png) 更改库文件路径 ![请添加图片描述](https://img-blog.csdnimg.cn/69502b4767e241a78a6107a52f87acff.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 继续 ![请添加图片描述](https://img-blog.csdnimg.cn/d852788b6ea84f35b8de90f16a4efade.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16)
3 生成工程
3.1 配置时钟
![请添加图片描述](https://img-blog.csdnimg.cn/1180c4eeb90f445d9964736f43afa650.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 我这里只是举例,时钟的配置可以按照自己的需求配置 ![请添加图片描述](https://img-blog.csdnimg.cn/89507f7251424f21b65e68c11ca5bba3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16)
3.2 生成
![请添加图片描述](https://img-blog.csdnimg.cn/6c4dfd39c77d4db1993820f9dc04f241.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 生成完成即可打开工程 ![请添加图片描述](https://img-blog.csdnimg.cn/81bc090ec06a40a59278d96d933079fb.png) 这样我们的工程就成功生成了 ![请添加图片描述](https://img-blog.csdnimg.cn/08cd85971eef417dbded3b61cac36ac6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 我们可以在CubeMX里继续进行相关IO口、ADC、定时器、中断的配置,然后MDK5关闭重新生成工程,新生成的工程将覆盖原有的工程。
那我们自己写的代码也会被覆盖吗? 不用担心,首先在CubeMX生成的文件中有许多这样的注释(USER CODE BEGIN和USER CODE END) ![请添加图片描述](https://img-blog.csdnimg.cn/1724fac382ea440192348e395086f370.png) 我们写在这之间的代码不会被覆盖
引入自己或他人的代码 我们只需要在工程目录下新建一个文件夹用于存放自己编写的应用代码,然后把他们添加到工程里,这些文件也不会被覆盖和删除,例如我在工程文件的目录下新建了一个MyCode的文件夹并创建了我的代码文件 ![请添加图片描述](https://img-blog.csdnimg.cn/7d8677193af6492c8ee66ef4b07aa1ec.png) 然后我们在MDK5里把我们的目录引入工程 ![请添加图片描述](https://img-blog.csdnimg.cn/37985b91b8334b8699796e73358e72af.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 新建一个目录 ![请添加图片描述](https://img-blog.csdnimg.cn/171a837d08b4490a93ee1c2542881eda.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 然后把我们的文件添加进去 ![请添加图片描述](https://img-blog.csdnimg.cn/5ebcf7a8e88b48ccaf19522fb1d665db.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) ![请添加图片描述](https://img-blog.csdnimg.cn/21250a6565a04b58b926a493bd877dad.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 关闭文件选择窗口,然后OK ![请添加图片描述](https://img-blog.csdnimg.cn/994e261dee6749eeafed948236ec018f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 好了,我们自己的代码被加进来了 ![请添加图片描述](https://img-blog.csdnimg.cn/83c06967ef2c4a1ca508cf6e1c195c2d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_9,color_FFFFFF,t_70,g_se,x_16) 然后添加一下我们自己的头文件目录 ![请添加图片描述](https://img-blog.csdnimg.cn/2f1b56d07f904d86937628f96adbf47a.png) 选择C++选项卡 ![请添加图片描述](https://img-blog.csdnimg.cn/9a83feb0f3604c5e9ce7f561b7cac947.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 添加一项新的路径 ![请添加图片描述](https://img-blog.csdnimg.cn/6c038713bd8445cea1f9b724c13077ea.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 把我们的路径添加进来,OK,OK ![请添加图片描述](https://img-blog.csdnimg.cn/cd77660c3f364f72b05ddfd8345278bb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5rW35bCP55quSFhQ,size_20,color_FFFFFF,t_70,g_se,x_16) 这就是为什么CubeMX创建的工程可移植性非常的高,它把底层配置代码与用户的代码很好地分离了,我们更换芯片的时候,只需要进行少量的修改就可完成代码的移植,非常方便和省时,而且底层配置的参数也仅需我们在CubeMX中通过UI界面完成配置,CubeMX将自动生成配置文件,大大缩短开发周期。 当然CubeMX有时也会有一些bug,但对于普通用户或者新手来说还是非常便利和友好的。
关于CubeMX的更多详细使用方法后续更新
X 往期文章
鸿蒙(HMOS)开发基础篇(二)开发初体验-多设备协同
鸿蒙(HMOS)开发基础篇(一)环境搭建 & Helloworld
今天,我是数据库的BOS(读者-写者问题)
哲学家不会吃饭了,我们快来帮帮他们(C语言、进程通信)
Python+OpenCV+imutils的简单图片处理(放缩、翻转、旋转、灰度RGB提取)
python手写K-means实现二维聚类.
如果文中有误,还请在评论区指正。这里是海小皮,我们一同进步!!!
|