
STM32初学笔记(二)新建项目 后期所有项目的建立均基于keil5开发环境进行创建。 新建一个项目大概有三种方法: (1)使用keil5的RTE(Run-Time Environment)配置环境(默认标准库); (2)使用STM32CubeMx图形界面配置,生成的代码是基于HAL库和LL库的,然后使用keil5开发; (3)从官网自行下载固件库,搭建工程。有兴趣的朋友可以分别尝试一下。 本篇文章使用第三种方法,主要内容如下: 1、下载固件库 2、建立项目工程文件夹 3、新建项目 1、下载固件库 登录ST官网下载固件库,选择工具与软件->嵌入式软件->STM32微控制器软件->STM32标准外设软件库,选择对应系列的固件库进行下载。 ![]() ![]() ![]() 解压后包含以下文件: ![]() 2、建立项目工程文件夹 新建项目文件夹,里面再建3个文件夹,CMSIS(存放内核函数及启动引导文件),FWLIB(存放库函数),USER(存放用户自己的函数),如图。 ![]() 将Libraries\CMSIS\CM3\CoreSupport中的文件复制到CMSIS中,再将Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中的文件全部复制到CMSIS中。最终CMSIS中的文件如下图。 ![]() 将Libraries\STM32F10x_StdPeriph_Driver中的 inc和 src 两个文件夹复制进FWLIB文件夹。 ![]() 将Project\STM32F10x_StdPeriph_Template中的这几个文件复制进USER。 ![]() 3、新建项目 菜单中选择Project->New uVision Project弹出文件夹选择窗口,选择前面建立的项目文件夹,输入项目名称,选择保存。弹出单片机型号选择窗口,选择需要的型号,选择OK,弹出RTM配置窗口,这里选择Cancel。 单击项目管理按钮(Manage Project Items)弹出项目管理对话框。 ![]() ![]() 配置完后的文件结构如下图。 ![]() FWLIB存放的是外设驱动的库文件,可以根据用到的外设进行添加,全部添加会造成编译速度慢,占用内存大,这里只添加了gpio和rcc的库文件。 对不同型号的STM32,需要选择不同的启动文件。ST提供了3个启动文件,适用于不同容量的STM32芯片。他们是:startup_stm32f10x_ld.s、startup_stm32f10x_md.s、startup_stm32f10x_hd.s。其中,ld.s适用于小容量产品;md.s适用于中等容量产品;hd适用于大容量产品。这里的容量是指FLASH的大小.判断方法如下:小容量:FLASH≤32K;中容量:64K≤FLASH≤128K;大容量:256K≤FLASH。 删除main.c文件中的内容,只留下一个空的主函数即可,然后添加自己的内容。 单击选项按钮弹出配置界面,在Target选项卡中,配置晶振频率,然后切换到C/C++(AC6)选项卡中的Define输入框内输入STM32F10X_HD,USE_STDPERIPH_DRIVER,并在IncludesPath中添加头文件的路径。 ![]() ![]() 添加STM32F10X_HD和USE_STDPERIPH_DRIVER这两个宏是为了能够使用库文件。原因如下。 在stm32f10x.h中有以下语句: ![]() 可以看出,只有定义了STM32F10X_HD这个宏,才可以顺利编译,定义将会用到的与外设有关的宏。 ![]() 只有定义了USE_STDPERIPH_DRIVER宏,才可以将stm32f10x_conf.h头文件包含进来,而这个头文件,将我们要用到的..\STM32F10x_FWLib\inc目录下的23个头文件都包含了进来!否则,我们无法使用..\STM32F10x_FWLib\src中的固件库。 至此,项目框架就搭建完成了,并完成了基本的配置。 由于不同的芯片型号和不同版本的开发环境,可能仍需修改一些其他的配置,先编译一下,若出现错误可以根据错误提示在浏览器中搜索解决方案,不同的人可能通过不同的方法解决编译错误,暂时不需要深究原因。 文章出处:樊学谦 机械智者 |
新建项目,谁还使用标准库? 标准库已经不再更新了,特别是新的芯片没有标准库可以用。 |