STM32F4xx之库函数

一、库函数介绍

库函数与寄存器的区别
库函数:不需要自己写很多代码,可以利用软件生成代码。使用的时候必须添加库文件。库文件是芯片厂商写好了。占用空间大。
寄存器:自己写的代码量大,没有软件生成代码。使用的时候不需要库文件。占用空间小。
当一款芯片在库函数开发的情况下由于内存不够,可以使用寄存器开发。

库文件介绍

1、如何找到各个模块的库函数

二、新建库函数工程

1. 先保证寄存器版本的工程能用
2. 添加一个全局宏定义

3.先建立包含对应的库函数的文件夹

4.把库函数的文件夹从官方的库函数文件夹里整个复制下来

5.包含库函数相应的头文件路径

初始化外设的小技巧:

一般都可以看到两种函数:

Init:初始化

Cmd:使能定时器

三、库函数的使用

1、RCC函数

使能/除能AHB1外设时钟
原形:void RCC_AHB1PeriphClockCmd  ( uint32_t  RCC_AHB1Periph,  FunctionalState  NewState )
作用:使能/除能AHB1外设时钟
参数:
RCC_AHB1Periph :要对AHB1那边外设进行时钟使能/除能操作(可以多个外设一起时钟使能、除能)
可取的值:
RCC_AHB1Periph_GPIOA: GPIOA clock 
RCC_AHB1Periph_GPIOB: GPIOB clock 
RCC_AHB1Periph_GPIOC: GPIOC clock 
RCC_AHB1Periph_GPIOD: GPIOD clock 
RCC_AHB1Periph_GPIOE: GPIOE clock 
RCC_AHB1Periph_GPIOF: GPIOF clock 
RCC_AHB1Periph_GPIOG: GPIOG clock 
RCC_AHB1Periph_GPIOH: GPIOH clock 
RCC_AHB1Periph_GPIOI: GPIOI clock 
RCC_AHB1Periph_GPIOJ: GPIOJ clock (STM32F42xxx/43xxx devices) 
RCC_AHB1Periph_GPIOK: GPIOK clock (STM32F42xxx/43xxx devices) 
RCC_AHB1Periph_CRC: CRC clock 
RCC_AHB1Periph_BKPSRAM: BKPSRAM interface clock 
RCC_AHB1Periph_CCMDATARAMEN CCM data RAM interface clock 
RCC_AHB1Periph_DMA1: DMA1 clock 
RCC_AHB1Periph_DMA2: DMA2 clock 
RCC_AHB1Periph_DMA2D: DMA2D clock (STM32F429xx/439xx devices) 
RCC_AHB1Periph_ETH_MAC: Ethernet MAC clock 
RCC_AHB1Periph_ETH_MAC_Tx: Ethernet Transmission clock 
RCC_AHB1Periph_ETH_MAC_Rx: Ethernet Reception clock 
RCC_AHB1Periph_ETH_MAC_PTP: Ethernet PTP clock 
RCC_AHB1Periph_OTG_HS: USB OTG HS clock 
RCC_AHB1Periph_OTG_HS_ULPI: USB OTG HS ULPI clock


NewState:可取值:ENABLE 或 DISABLE

2、低功耗模式(睡眠模式)时AHB1外设时钟使能/除能

原形:void RCC_AHB1PeriphClockLPModeCmd  ( uint32_t  RCC_AHB1Periph, FunctionalState  NewState );


3、AHB1外设模块进行复位----相关模块的寄存器值变成默认值

原形:void RCC_AHB1PeriphResetCmd  ( uint32_t  RCC_AHB1Periph,  FunctionalState  NewState );
允许多个AHB外设同时进行复位操作
使用示例:(往往类型以下示例同时使用)
RCC_AHB1PeriphResetCmd  (RCC_AHB1Periph_GPIOA,  ENABLE );   //对端口A进行复位
RCC_AHB1PeriphResetCmd  (RCC_AHB1Periph_GPIOA,  DISABLE);   //停止对端口A的复位

4、APB1外设时钟使能

原形:void RCC_APB1PeriphClockCmd  ( uint32_t  RCC_APB1Periph,  FunctionalState  NewState )  ;
作用:对APB1总线外设时钟使能/除能 (可以多个外设同时操作)
参数:
 APB1Periph:
RCC_APB1Periph_TIM2: TIM2 clock 
RCC_APB1Periph_TIM3: TIM3 clock 
RCC_APB1Periph_TIM4: TIM4 clock 
RCC_APB1Periph_TIM5: TIM5 clock 
RCC_APB1Periph_TIM6: TIM6 clock 
RCC_APB1Periph_TIM7: TIM7 clock 
RCC_APB1Periph_TIM12: TIM12 clock 
RCC_APB1Periph_TIM13: TIM13 clock 
RCC_APB1Periph_TIM14: TIM14 clock 
RCC_APB1Periph_LPTIM1: LPTIM1 clock (STM32F410xx devices) 
RCC_APB1Periph_WWDG: WWDG clock 
RCC_APB1Periph_SPI2: SPI2 clock 
RCC_APB1Periph_SPI3: SPI3 clock 
RCC_APB1Periph_SPDIF: SPDIF RX clock (STM32F446xx devices) 
RCC_APB1Periph_USART2: USART2 clock 
RCC_APB1Periph_USART3: USART3 clock 
RCC_APB1Periph_UART4: UART4 clock 
RCC_APB1Periph_UART5: UART5 clock 
RCC_APB1Periph_I2C1: I2C1 clock 
RCC_APB1Periph_I2C2: I2C2 clock 
RCC_APB1Periph_I2C3: I2C3 clock 
RCC_APB1Periph_FMPI2C1: FMPI2C1 clock 
RCC_APB1Periph_CAN1: CAN1 clock 
RCC_APB1Periph_CAN2: CAN2 clock 
RCC_APB1Periph_CEC: CEC clock (STM32F446xx devices) 
RCC_APB1Periph_PWR: PWR clock 
RCC_APB1Periph_DAC: DAC clock 
RCC_APB1Periph_UART7: UART7 clock 
RCC_APB1Periph_UART8: UART8 clock
NewState:ENABLE或 DISABLE

5、APB2外设时钟使能

原形:void RCC_APB2PeriphClockCmd  ( uint32_t  RCC_APB2Periph,   FunctionalState  NewState);

作用:对APB2总线外设时钟使能/除能 (可以多个外设同时操作)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值