1、GPIO的寄存器按照功能可以分为以下几类:
A、配置寄存器
B、数据寄存器
C、位寄存器
D、 锁定寄存器
2、对于GPIO端口,每个端口有16个引脚,每个引脚的模式由寄存器的四个位控制,每四位又分为两位控制引脚配置(CNFy[1:0]),两位控制引脚的模式及最高速度(MODEy[1:0]),其中y表示第y个引脚。配置GPIO引脚模式的一共有两个寄存器,CRH是高寄存器,用来配置高8位引脚,还有CRL配置低八位引脚。
3、端口位设置\清除寄存器(GPIOx_BSRR)
一个引脚 y 的输出数据由 GPIOx_BSRR 寄存器位的2 个位来控制分别为 BRy (Bit Reset y)和BSy (Bit Set y),BRy 位用于写 1清零,使引脚输出低电平,BSy 位用来写 1 置 1,使引脚输出高 电平。而对这两个位进行写零都是无效的。
4、Cortex-M3 有 32 根地址线,所以它的
寻址空间大小为 2^32 bit=4GB。ARM 公司设计时,预先把这 4GB 的寻址空间大致地分配好了。它把地址从 0x4000 0000 至 0x5FFF FFFF( 512MB )的地址分配给片上外设。
5、stm32f10x.h 这个文件中重要的内容就是把 STM32 的所有寄存器进行地址映射。如同 51 单片机的头文件一样,stm32f10x.h 像一个大表格,我们在使用的时候就是通过宏定义进行类似查表的操作。
6、STM32总线有AHB总线、APB2总线、APB1总线
7、时钟系统。
A、从时钟频率来说分为告诉时钟和低速时钟,高速时钟是提供给芯片主体时钟,而低速时钟只是提供给芯片中的RTC及独立看门狗使用。
B、从芯片角度来说,时钟源分为内部时钟与外部时钟源 ,内部时钟是在芯片内部 RC 振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用
内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号。
8、stm32f10x.h相当于STC12C616AD.H其作用就是定义了寄存器与外设之间的关系,类似于一个大的查找表。
9、STM32从3.0库开始引入了CMSIS,CMSIS是Cortex微控制器软件接口标准(Cortex MicroController Software Interface Standard)的缩写,这个是ARM定制的一个用于Cortex-M系列的一个标准,主要是为了提供通用api接口来访问内核和一些片上外设,提高代码的可移植性。
CMSIS有三个层:核内外设访问层Core Peripheral Access Layer(CPAL),中间件访问层Middleware Access Layer(MWAL),设备访问层(Device Peripheral Access Layer)。
CPAL用于访问内核的寄存器和组件,如NVIC,调试系统等。该层是由ARM实现的。
MWAL用于对中间件的访问,现在该层还未实现。(也不知道所谓的中间件是什么东西)。
DPAL用于定义一些硬件寄存器的地址和一些外设访问函数,由芯片制造商实现。
CPAL层的实现就是Core_cm3.c文件,DPAL层的实现就是system_stm32f10x.c文件(似乎还应该加上外设的函数库)。
10、在 CoreSupport 中的是位于 CMSIS 标准的核内设备函数层 的 M3 核通用
的源文件 core_cm3.c 和头文件 core_cm3.h ,它们的作用是为那些采用
Cortex-M3 核设计 SOC 的芯片商设计的芯片外设提供一个进入 M3 内核的接
口。这两个文件在其它公司的 M3 系列芯片也是相同的。
11、system_stm32f10x.c,是由 ST 公司提供的,遵守 CMSIS 标准。该文件
的功能是设置系统时钟和总线时钟
12、startup_stm32f10x_hd.s启动文件是任何处理器在上点复位之后最先运行的一段汇编程序。在我们编写的 c 语言代码运行之前,需要由汇编为 c 语言的运行建立一个合适的环境,接下来才能运行我们的程序。
上一篇:STM32的四种输入方式
下一篇:STM32学习笔记----keil工程的建立
推荐阅读最新更新时间:2024-03-16 15:42