概述
学习本节之前,必须要先安装好 keil5 以及 CubeMX 等软硬件环境,如果你已经安装完成,请告诉自己:考试现在开始!
从CubeMX开始
CubeMX是创建工程模板的软件,也是我们比赛时第一个要进行操作的软件。
一、选择单片机
![](https://img-blog.csdnimg.cn/img_convert/c83e015ee07ae2e4810ec8f35dfb99c6.png)
我们使用的这款单片机的名称叫做:STM32G431RBT6。其中R代表引脚数量,为64脚;B代表Flash的容量,为128kBytes;T为芯片封装;切记不可弄错!
![](https://img-blog.csdnimg.cn/img_convert/b453a4520c37f03754c3761c862563dd.jpeg)
二、配置时钟树
首先在RCC下,将HSE的时钟来源选择为外部晶振,如下图所示:
![](https://img-blog.csdnimg.cn/img_convert/e7feb5b6baae797a6c15b30c306e50d3.png)
其次、在时钟树界面完成以下配置:
![](https://img-blog.csdnimg.cn/img_convert/e3ee2fdace2e5aee7bb7f58d33d8993a.png)
在最后输入80后,按下回车键,各个参数将会自动配置,使得我们的外设一律工作在80MHz的频率下,这个数字需要牢记!
解答几个疑惑:
为什么第一个数字需要设置为24?
答:板载硬件使然:
![](https://img-blog.csdnimg.cn/img_convert/4563ee0f3eb533808ec348d56f38ff59.png)
设置时钟的目的是什么?为什么要设置为80MHxz?
答:为了让各个外设工作在最稳定的状态,80MHz的条件不快也不慢,稳定性好,我们参加的是比赛,做项目的时候当然可以把频率调高,提高单片机外设性能。
附一页G431的时钟树图:
![](https://img-blog.csdnimg.cn/img_convert/13ea3cb56925247e9ab04ca428bf64bd.jpeg)
三、设置调试(DeBug)模式
如下图,在SYS框内将Debug选项选为SerialWire,我们可以观察到蓝色框中,PA14和PA13变成了绿色,即被使用状态:
![](https://img-blog.csdnimg.cn/img_convert/529ddf9048f95ef8edb48da4997703b0.png)
大家不要担心PA14和PA13这个问题,在我们的板子上,这两个引脚是专门用来做调试用的,没有其它的用途:
![](https://img-blog.csdnimg.cn/img_convert/edbe7638eb59eebb7b333873d8cf01d6.png)
四、配置各个功能
这部分是根据题目的要求,使能需要使用的各个外设,因题而异,所以没有普适性。但我建议大家的是,在开始做题前,先确定好需要使用哪些外设,整体的代码思路是怎么样的,争取一次配置完全。要不然再返回来补充配置会出现许多Bug,最严重的是写好的代码会丢失!
![](https://img-blog.csdnimg.cn/img_convert/7f78ce51630651fede437b2d01e52e53.png)
五、文件设置
文件名、文件位置、开发IDE这三者的选择不必多说。需要注意的是,文件路径不能包含中文!
![](https://img-blog.csdnimg.cn/img_convert/3c8cffa4348f6dd77c932866bcbf9ee8.png)
在Code Generator栏目下,我希望大家勾选上 将外设初始化放置在单独文件中,如下图所示要不然这些代码会一律被集合到main.c中,会增添复杂。
对于是否只拷贝必要的库文件,如果你确认好了配置全了所有的外设,那么就大胆勾选上,进一步减轻工程重量。
![](https://img-blog.csdnimg.cn/img_convert/105b3925f5400e153b6cf5fbdc50bc75.png)
最后点击代码生成,一个工程模板的创建就完成了!
再到下载器设置
一、选择调试器
![](https://img-blog.csdnimg.cn/img_convert/7fe6be3bf098ff9075f7b333286292a1.png)
二、选择调试方式
![](https://img-blog.csdnimg.cn/img_convert/5f3190923b660e800634bd93d4cae67d.png)
三、选择下载方式
![](https://img-blog.csdnimg.cn/img_convert/1f7f1e78af017565d7e2ee2471e9a4f0.png)
重点小结
至此,一个工程模板的创建就此完成了。本节的重点不在于这些配置的步骤,重点在什么呢?重点在于要做好对工程的规划!决定用什么外设,怎么组织代码逻辑,建议大家做题前先写到纸上。
配置必须一次全部完成!