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言语的运转树立一个适宜的环境,接下来才干运转咱们的程序。