KEIL5⼯程⽬录下⾯的组以及重要⽂件
接下来我们逐⼀讲解⼀下我们的⼯程⽬录下⾯的组以及重要⽂件。
⽂章⽬录system的头文件
⼀、组 FWLib
组 FWLib 下⾯存放的是 ST 官⽅提供的固件库函数, 每⼀个源⽂件 stm32f4xx_ppp.c 都对应⼀个头⽂件 stm32f4xx_ppp.h。分组内的⽂件我们可以根据⼯程需要添加和删除,但是⼀定要注意如果你引⼊了某个源⽂件,⼀定要在头⽂件 stm32f4xx_conf.h ⽂件中确保对应的头⽂件也已经添加。 ⽐如我们跑马灯实验,我们只添加了 5 个源⽂件,那么对应的头⽂件我们必须确保在 stm32f4xx_conf.h 内也包含进来,否则⼯程会报错。
⼆、组 CORE
组 CORE 下⾯存放的是固件库必须的核⼼⽂件和启动⽂件。这⾥⾯的⽂件⽤户不需要修改。 ⼤家可以根据⾃⼰的芯⽚型号选择对应的启动⽂件。
三、组 SYSTEM
组 SYSTEM 是 ALIENTEK 提供的共⽤代码,这些代码的作⽤和讲解在第五章都有讲解,⼤家可以翻过去看下。
四、组 HARDWARE
组 HARDWARE 下⾯存放的是每个实验的外设驱动代码,他的实现是通过调⽤ FWLib下⾯的固件库⽂件实现的,⽐如 led.c ⾥⾯调⽤
stm32f4xx_gpio.c 内定义的函数对 led 进⾏初始化,这⾥⾯的函数是讲解的重点。后⾯的实验中可以看到会引⼊多个源⽂件。
五、组 USER
组 USER 下⾯存放的主要是⽤户代码。但是 system_stm32f4xx.c ⽂件⽤户不需要修改,同时 stm32f4xx_it.c ⾥⾯存放的是中断服务函数,这两个⽂件的作⽤在 3.1 节有讲解,⼤ 家可以翻过去看看。 Main.c 函数主要存放的是主函数了,这个⼤家应该很清楚。
⼯程分组情况我们就讲解到这⾥,接下来我们就要进⼊我们跑马灯实验的讲解部分了。这⾥需要说明⼀下,我们在讲解固件库之前会⾸先对重要寄存器进⾏⼀个讲解,这样是为了⼤家对寄存器有个初步的了解。⼤家学习固件库,并不需要记住每个寄存器的作⽤,⽽只是通过了解寄存器来对外设⼀些功能有个
⼤致的了解,这样对以后的学习也很有帮助。
⾸先要提⼀下,在固件库中, GPIO 端⼝操作对应的库函数函数以及相关定义在⽂件stm32f4xx_gpio.h 和 stm32f4xx_gpio.c 中。相对于 STM32F1 来说, STM32F4 的 GPIO 设置显得更为复杂,也更加灵活,尤其是复⽤功能部分,⽐ STM32F1 改进了很多,使⽤起来更加⽅便。STM32F4 每组通⽤ I/O 端⼝包括 4 个 32 位配置寄存器(MODER、 OTYPER、 OSPEEDR和 PUPDR)、 2 个 32 位数据寄存器(IDR 和 ODR)、 1 个 32 位置位/复位寄存器 (BSRR)、1 个 32 位锁定寄存器 (LCKR) 和 2 个 32 位复⽤功能选择寄存器(AFRH 和 AFRL)等。这样, STM32F4 每组 IO 有 10 个 32 位寄存器控制,其中常⽤的有 4 个配置寄存器+2 个数据寄存器+2 个复⽤功能选择寄存器,共 8 个,如果在使⽤的时候,每次都直接操作寄存器配置IO,代码会⽐较多,也不容易记住,所以我们在讲解寄存器的同时会讲解是⽤库函数配置 IO的⽅法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。