在上手stm32时首先遇到的问题就是怎么新建工程,在网上翻来翻去大家的说法非常雷同并且冗杂,总的来说,过于老旧。我经过一段时间的尝试,对网上的步骤做了大幅优化,以下是我的总结。
首先说明,我用的是nucleo f103rb,芯片信号stm32f103rb,板子自带st-link。
一、新建工程
第一步,选择项目文件夹,命名,并选择芯片型号
选好型号后点OK
第二步, 选择外设。
如图,圈住的部分是必须要勾选的。
然后根据项目所需功能勾选对应的外设,在device/stdPeriph Drivers 菜单下。在选择一些外设时可能必须要用到其他的外设,勾选后会有提示。比如我选择GPIO,它会提示我还需要选择RCC和framework,根据提示勾选即可。
按照提示勾选framework和RCC,GPIO一栏由黄变绿,下面warning也消失了,这说明已经选择所有必需的外设了。另外补充一点,外设中间一栏是version,就是你当前所用的库函数版本。
第三步,创建main.c文件并导入工程。
在项目文件夹新建一个为user文件夹,在keil里创建一个新文件,保存到user,命名为main.c。
然后点击下图按钮,会弹出一个叫做manage project items的对话框,点击这个对话框右下角的add files,找到刚保存的main.c,双击直接添加。
然后可以看到右侧project栏会出现main.c(这里修改了 source group1的名字,这个文件夹通常放用户编写或者修改的文件,所以命名为user)。现在这个空项目是可以通过编译的。
二、进行配置
项目的配置步骤其实是非常简便的,可惜网络上的教程经常告诉你要配置一大堆东西,让人望而生畏。
点击魔术棒,进入配置页面
第一步:修改晶振频率。
据我所了解大多数板子都是8MHz,具体数值可以参考板子的手册。
此外,关于Use MicroLIB:
MicroLIB是Keil MDK为嵌入式应用量身定做的C库,当你用到C标准库时才有必要勾选。比如在重定向printf函数项目中,必须要勾选Use MicroLIB,这样程序下载到单片机上才能正常工作。一般情况下代码只包含stm32自带的头文件,不用勾选。
第二步:修改output路径(可选)
这一步可有可无。另外还有个create HEX file选项,我测试发现就算不勾选,KEIL下载到板子上的程序掉电也能正常运行。。。不明所以。。。
第三步:软件仿真设置
通常来说,有软件仿真、硬件在线调试两种调试方式。进行软件仿真必须要对下图圈住的部分进行修改。
将dialog.dll修改为
DARMSTM.DLL
将parameter一栏修改为 -p加上你的芯片型号,我的是
-pSTM32F103RB
硬件在线调试的话就不用再修改这里了。
完成了以上配置,就可以编写你的代码并进行软件仿真或者硬件在线调试了,调试没问题的话,就可以直接下载程序了。
注:对于入门学习的简单工程,编写程序时只包含
stm32f10x.h
这个头文件即可。