工程的建立
工程建立第一步是在物理磁盘中建立文件夹,把库复制进入,再建立自己的文件系统。第二步,当文件都准备好之后,打开keil,建立工程,把文件加载进去,建立软件文件系统。注意,软件系统是为了编程时方便看,物理磁盘文件系统是为了不打开软件时方便看。但是!编译器都不在乎这些,编译器只要知道文件的路径就行,编译器只在乎你工程加入的文件、软件配置的头文件查找路径中的文件,找不到就报错。第三步是设置基础配置,keil的target option。
文件组织形式全凭个人喜好,编译器在乎的弄清楚其他都是自己在乎的。
这个文件树是方便程序员查找文件的,编译器只在乎顶层target里面包含了什么文件,不管分支结构
点击三色品字按钮配置文件树
具体硬盘文件目录:
自己的项目文件目录:
INC中包括 自己定义的头文件,
MDK中是工程建立设置的地址,打开工程双击*.uvproj
OUTPUT中是输出文件,包括list,和output具体设置方法:
具体各个文件作用见986565603QQ空间日志
Defined: USE_STDPERIPH_DRIVER,STM32F10X_MD这个要填写正确,也可以在头文件里写,推荐软件直接配置
头文件的查找路径要设置全
32的库是一直在升级的,硬件未变,一般有两个文档,一个是硬件寄存器的说明,推荐看;另一个是库函数的说明,其实这个是网友整理的,没有最新的3.5库的,很多函数都没有了。函数的查找推荐使用库自带的工具stm32f10x_stdperiph_lib_um.chm
概述
应用资源的时候一定要打开时钟。
注意:第一点,最新版3.5库把时钟初始化函数放在了启动文件里面了,因此不用在main函数里面再编写。默认APB2都是72MHz,APB1是36MHz
第二点,不同的设备挂载在不同的AHB上面,注意1还是2。函数RCC_AHB的宏定义在stm32f10x_rcc.h里面。
1.时钟初始化函数是在启动文件里调用的,在main函数之前。具体值为系统和APB2都是72MHz,APB1是36MHz。 2.系统结构图为:
RCC_APB1PeriphClockCmd(*****,ENABLE);
RCC_APB2PeriphClockCmd(*****,DISABLE);
注意:设备挂载在哪个桥上面的,搞错了,编译器不会报错,调试一天都很难找到,吃过亏~~一定注意APB2还是APB1
GPIO
GPIO的使用。
第一步初始化时钟,调用RCC_AHB2,注意:所有GPIO都挂载在二桥上。 第二步初始化配置结构体,函数在stm32f10x_gpio.h中
第三步应用,函数有位操作,全部置位,全部清零啥的,函数和宏定义都在上文的文件中。