STM32自学笔记之教程一如何建立一个工程.docx
《STM32自学笔记之教程一如何建立一个工程.docx》由会员分享,可在线阅读,更多相关《STM32自学笔记之教程一如何建立一个工程.docx(11页珍藏版)》请在冰豆网上搜索。
STM32自学笔记之教程一如何建立一个工程
STM32自学笔记
之教程一:
如何建立一个工程
1概述:
刚入手STM32,比较糊涂,感觉和51系列不同。
电脑安装keilmdk4.23,借鉴前辈经验,开始新的旅程。
2建立目录
2.1新建工程目录:
“RS422”,你也可以根据自己的需要命名此顶层目录;
2.2在目录“RS422”下新建“RVMDK”目录,表示采用ARMMDK开发环境;
2.3在“RVMDK”目录下新建目录“V1”,表示软件版本V1.0,这个好处在于下次将整个目录复制一下改为“V2”,软件版本就是V2.0了。
2.4在“V1”目录下新建“Libraries”、“Project”、“USER”目录;
2.5在“Libraries”目录下新建“STM32F10X_StdPeriph_Driver”一个目录;
2.6在“Project”目录下新建“OBJ”、“LIST”、“Pro”3个目录。
2.7在“USER”目录下新建“INC”、“SRC”2个目录。
图1:
目录结构图
3拷贝文件
3.1将固件库目录“C:
\Keil\ARM\RV31\LIB\ST\STM32F10x”下除“stm32f10x_it.h”的所有库函数拷贝到工程目录“RS422”“RVMDK”“V1”“Libraries”目录下。
3.2将固件库目录“C:
\Keil\ARM\Startup\ST\STM32F10x”目录下的所有件拷贝到工程目录“RS422”“RVMDK”“V1”“Libraries”“STM32F10X_StdPeriph_Driver”目录下。
3.3将固件库目录“C:
\Keil\ARM\RV31\LIB\ST\STM32F10x”目录下的“stm32f10x_it.c”拷贝到工程目录“RS422”“RVMDK”“V1”“USER”“SRC”目录下,在此“SRC”目录下新建“main.c”文件,“main.c”先“神马”也不写。
3.4将固件库目录“C:
\Keil\ARM\INC\ST\STM32F10x”目录下的“stm32f10x_conf.h”文件拷贝到工程目录“RS422”“RVMDK”“V1”“USER”“INC”目录下。
4建立工程
4.1运行“KeiluVision4”;
4.2点击主菜单栏“Project”“NewuVisionProject”,选择在工程目录的“V1”“Project”“Pro”目录下命名新建工程为“RS422_MODULE.uvproj”(当然也可以命名为你自己需要的工程名);
4.3接下来出现CPU选择窗口,选择CPU为“STMicroelectronics”“STM32F103RC”(这个大家根据自己的需要选择),点击“OK”按钮;
4.4接下来出现“CopySTM32StartupCodetoProjectFolderandADDFiletoProject?
”提示时选择“否”(在后面的步骤中会根据CPU选择启动文件的,这里不用选择),完成工程建立。
5工程管理
上一节新建的工程还是空空的,这一步要将它实例化。
5.1在“Project”窗口中选择的“ManageComponents”子菜单(见图2),出现“Components,EnvironmentandBooks”窗口(见图3)。
图2
图2
图3
5.2用鼠标双击“ProjectTargets”栏中的“Target1”将“Target1”改为“RS422_MODULE”(这个大家根据自己的需要选择)(见图4),在中间的“Groups”栏中添加“USER”、“STM32_LIB”、“MDK_STARTUP”3个条目(见图5)。
图4
图5
5.3在“USER”条目的“Files”栏中添加目录“V1”“USER”“SRC”下的“main.c”、“stm3210x_it.c”2个文件,通过窗口的“AddFiles”按钮可以添加文件(见图6)。
图6
5.4在“STM32_LIB”条目的“Files”栏中添加目录“V1”“Libraries”下的相应的接口库文件。
图7
5.5在“MDK_STARTUP”条目的“Files”栏中添加目录“V1”“Libraries”“STM32F10X_StdPeriph_Driver”这个文件(见图8),需要更具选用不同CPU选择不同启动文件。
图8
5.6退出“KeiluVision4”开发环境,将工程目录“RS422”去掉文件夹的只读属性,并“应用到子目录和所有文件”,这是因为STM32固件库下载下来是只读的,无法修改库中的文件。
去掉只读属性后再进入“KeiluVision4”,然后打开工程“RS422_MODULE.uvproj”。
6工程设置
6.1在“Project”窗口中右击最顶层的“RS422”,再点击右键弹出菜单选择菜单中的“OptionsforTarget‘RS422’…”子菜单(见图10),出现“OptionsforTarget‘RS422’”窗口(见图11),可以按图11进行设置。
图10
图11
6.2选择顶层的“Output”,进入“Output”设置页,点击下面的“SelectFolderforObjects…”按钮,选择目录“V1”“Project”“OBJ”为目标文件目录,选中“CreateHEXFile”(见图12)。
件生成目录(见图13),所有的目标文件和烧写到芯片中的文件都在这里。
选择“CreateHEXFile”前面的方框,用来生成目标文件。
图12
6.3选择顶层的“Listing”页,进入“Listing”设置页,点击下面的“SelectFolderforListings…”按钮,选择目录“V1”“Project”“LIST”目录为list文件生成目录(见图13)。
图13
6.4这是关键的一步,将固件库目录“C:
\Keil\ARM\RV31\LIB\ST”下的文件“STM32F10xR.LIB”拷贝到工程目录“RS422”“RVMDK”“V1”“Libraries”目录下。
在第五步中添加至USER中即可。
在建立工程时,只要使用到固件库,就必须将文件“STM32F10xR.LIB”拷贝到工程文件下。
7.main.c文件
因为这是一个没有任何功能的工程框架,所以main.c可以这么写:
#include"stm32f10x.h"
main()
{
while
(1)
{
;
}
}
编译程序,没有警告和错误,框架就算生成了,想添加自己的代码就可以以后添加了,自己的代码放在工程目录“RS422”“RVMDK”“V1”“USER”下的“INC”或“SRC”目录下,“INC”下放你的“.h”文件,“SRC”目录下放你的“.C”文件。
以上是对STM32工程框架的实例实现。
8.在编译时出现错误,请注意所有固件库函数是否为同一版本。