STM32F4x⼯程中的SYSTEM⽂件夹介绍
建⽴ STM32F4 ⼯程,在这个新建的⼯程之中,我们⽤到了⼀个 SYSTEM ⽂件夹⾥⾯的代码,这些代码是STM32F4xx 系列的底层核⼼驱动函数,可以⽤在 STM32F4xx 系列的各个型号上⾯,⽅便快速构建⾃⼰的⼯程。
SYSTEM ⽂件夹下包含了 delay、 sys、 usart 等三个⽂件夹。分别包含了 delay.c、 sys.c、usart.c及其头⽂件。通过这 3 个 c ⽂件,可以快速的给任何⼀款 STM32F4 构建最基本的框架。
delay⽂件夹介绍
delay ⽂件夹内包含了 delay.c 和 delay.h 两个⽂件,这两个⽂件⽤来实现系统的延时功能,
其中包含 7 个函数:
1. void delay_osschedlock(void);//us级延时时,关闭任务调度(防⽌打断us级延迟)
2. void delay_osschedunlock(void);//us级延时时,恢复任务调度
3. void delay_ostimedly(u32 ticks);//调⽤OS⾃带的延时函数延时
/
/ticks:延时的节拍数
4. void SysTick_Handler(void);//systick中断服务函数,使⽤OS时⽤到
5. void delay_init(u8 SYSCLK);//初始化延迟函数
//当使⽤ucos的时候,此函数会初始化ucos的时钟节拍
//SYSTICK的时钟固定为AHB时钟
//SYSCLK:系统时钟频率
6. void delay_ms(u16 nms);//延时nms
//nms:要延时的ms数
//nms:0~65535
7. void delay_us(u32 nus);//延时nus
//nus:要延时的us数.
/
/nus:0~190887435(最⼤值即2^32/fac_us@fac_us=22.5)
sys⽂件夹介绍
sys ⽂件夹内共 8 个⽂件: sys.c、 sys.h、 stm32f4xx.h、 system_stm32f4xx.h、 core_cm4.h、core_cm4_simd.h、core_cmFunc.h 和 core_cmInstr.h。其中 重点介绍sys.c 和 sys.h 。其他 6 个⽂件, 都是拷贝⾃ STM32F4 的 CMSIS 库⽂件,主要包含了STM32F4 的寄存器定义、位定义以及内存映射等。
在 sys.h ⾥⾯定义了 STM32F4 的 IO ⼝输⼊读取宏定义和输出宏定义。 sys.c ⾥⾯定义了很
多与 STM32F4 底层硬件很相关的设置函数,包括系统时钟的配置、 IO 配置、 中断的配置等。
1. IO⼝的位操作实现;该部分代码在 sys.h ⾥⾯, 实现对 STM32F4 各个 IO ⼝的位操作,包括读⼊和输出。当然在这些函数调⽤之
前,必须先进⾏ IO ⼝时钟的使能和 IO ⼝功能定义。此部分仅仅对 IO ⼝进⾏输⼊输出读取和控制。
2. 时钟配置函数;STM32F4 的时钟配置,我们提供两个函数: Sys_Clock_Set 和 Stm32_Clock_Init。其中 Sys_Clock_Set 是核
⼼的系统时钟配置函数,由 Stm32_Clock_Init 调⽤,实现对系统时钟的配置。外部程序,⼀般调⽤ Stm32_Clock_Init函数来配置时钟。
3. Sys_Soft_Reset函数;该函数⽤来实现 STM32F4 的软复位。
4. Sys_Standby函数;Sys_Standby 函数⽤来使 STM32F4 进⼊待机模式,在该模式下, STM32F4 所消耗的功耗最低。
5. IO设置函数;该部分包含两个函数: GPIO_Set 和 GPIO_AF_Set,⽤于 IO 配置和复⽤功能设置。1、 输⼊浮空。2、 输⼊上拉。
3、 输⼊下拉。
4、 模拟输⼊。
5、 开漏输出。
6、 推挽输出。
system的头文件7、 推挽式复⽤功能。
8、 开漏式复⽤功能。IO 配置常⽤的 8 个寄存
器: MODER、 OTYPER、 OSPEEDR、 PUPDR、 ODR、 IDR 、 AFRH 和 AFRL。
6. 中断管理函数;STM32F40xx/STM32F41xx 的 92 个中断⾥⾯, 包括 10 个内核中断和 82 个可屏蔽中断,具有 16 级可编程的
中断优先级, ⽽我们常⽤的就是这 82 个可屏蔽中断。
usart⽂件夹介绍
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论