一、库函数介绍
库函数与寄存器的区别
库函数:不需要自己写很多代码,可以利用软件生成代码。使用的时候必须添加库文件。库文件是芯片厂商写好了。占用空间大。
寄存器:自己写的代码量大,没有软件生成代码。使用的时候不需要库文件。占用空间小。
当一款芯片在库函数开发的情况下由于内存不够,可以使用寄存器开发。
库文件介绍
1、如何找到各个模块的库函数
二、新建库函数工程
1. 先保证寄存器版本的工程能用
2. 添加一个全局宏定义3.先建立包含对应的库函数的文件夹
4.把库函数的文件夹从官方的库函数文件夹里整个复制下来
5.包含库函数相应的头文件路径
初始化外设的小技巧:
一般都可以看到两种函数:
Init:初始化
Cmd:使能定时器
三、库函数的使用
使能/除能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 或 DISABLE2、低功耗模式(睡眠模式)时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总线外设时钟使能/除能 (可以多个外设同时操作)
参数:
RCC_APB2Periph
RCC_APB2Periph_TIM1: TIM1 clock
RCC_APB2Periph_TIM8: TIM8 clock
RCC_APB2Periph_USART1: USART1 clock
RCC_APB2Periph_USART6: USART6 clock
RCC_APB2Periph_ADC1: ADC1 clock
RCC_APB2Periph_ADC2: ADC2 clock
RCC_APB2Periph_ADC3: ADC3 clock
RCC_APB2Periph_SDIO: SDIO clock
RCC_APB2Periph_SPI1: SPI1 clock
RCC_APB2Periph_SPI4: SPI4 clock
RCC_APB2Periph_SYSCFG: SYSCFG clock
RCC_APB2Periph_TIM9: TIM9 clock
RCC_APB2Periph_TIM10: TIM10 clock
RCC_APB2Periph_TIM11: TIM11 clock
RCC_APB2Periph_SPI5: SPI5 clock
RCC_APB2Periph_SPI6: SPI6 clock
RCC_APB2Periph_SAI1: SAI1 clock (STM32F42xxx/43xxx/446xx/469xx/479xx devices)
RCC_APB2Periph_SAI2: SAI2 clock (STM32F446xx devices)
RCC_APB2Periph_LTDC: LTDC clock (STM32F429xx/439xx devices)
RCC_APB2Periph_DSI: DSI clock (STM32F469_479xx devices)
RCC_APB2Periph_DFSDM: DFSDM Clock (STM32F412xG Devices)
NewState:ENABLE或 DISABLE
6、备份区域复位
原形:void RCC_BackupResetCmd ( FunctionalState NewState )
作用:对备份区域复位/停止复位操作------RCC_BDCR的16位
参数:NewState:ENABLE或 DISABLE
7、清除复位标志
原形:void RCC_ClearFlag ( void ) ;
8、获取相关时钟的频率
原理:void RCC_GetClocksFreq ( RCC_ClocksTypeDef * RCC_Clocks )
作用:获取系统时钟、AHB APB1 APB2时钟频率
参数:
typedef struct
{
uint32_t SYSCLK_Frequency; /*!< SYSCLK clock frequency expressed in Hz */
uint32_t HCLK_Frequency; /*!< HCLK clock frequency expressed in Hz */
uint32_t PCLK1_Frequency; /*!< PCLK1 clock frequency expressed in Hz */
uint32_t PCLK2_Frequency; /*!< PCLK2 clock frequency expressed in Hz */
}RCC_ClocksTypeDef;
四、GPIO相关库函数
1、GPIO_DeInit
函数原型:
void GPIO_DeInit ( GPIO_TypeDef * GPIOx )
函数功能:复位GPIOx.让GPIOx所有寄存器变成默认值
参数:
GPIOx,:如果使用的芯片是STM32F405xx/407xx and STM32F415xx/417xx,x的值可以为(A到K);如果使用的芯片是STM32F42xxx/43xxx,x的值可以为(A到I);如果使用的芯片是STM32F401xx,x的值可以为(A, B, C, D 和 H);
返回值: 无
注意事项:
默认状态下,所有GPIO口都是浮空输入(除了JTAG)
例子:GPIO_DeInit (GPIOA ); //复位端口A
2、GPIO_Init
函数原型:
void GPIO_Init ( GPIO_TypeDef * GPIOx, GPIO_InitTypeDef * GPIO_InitStruct );
功能:根据GPIO_InitStruct结构变量的值,来初始化GPIOx
参数:GPIOx:
GPIO_InitStruct:为GPIO_InitTypeDef的一个结构体变量结构体变量原型:
typedef struct
{
uint32_t GPIO_Pin; //哪个管脚
GPIOMode_TypeDef GPIO_Mode; //模式
GPIOSpeed_TypeDef GPIO_Speed; //输出速度
GPIOOType_TypeDef GPIO_OType; //输出类型
GPIOPuPd_TypeDef GPIO_PuPd; //上下拉
}GPIO_InitTypeDef;成员取值:
GPIO_Pin:
#define GPIO_Pin_0 ((uint16_t)0x0001)
#define GPIO_Pin_1 ((uint16_t)0x0002)
#define GPIO_Pin_2 ((uint16_t)0x0004)
#define GPIO_Pin_3 ((uint16_t)0x0008)
#define GPIO_Pin_4 ((uint16_t)0x0010)
#define GPIO_Pin_5 ((uint16_t)0x0020)
#define GPIO_Pin_6 ((uint16_t)0x0040)
#define GPIO_Pin_7 ((uint16_t)0x0080)
#define GPIO_Pin_8 ((uint16_t)0x0100)
#define GPIO_Pin_9 ((uint16_t)0x0200)
#define GPIO_Pin_10 ((uint16_t)0x0400)
#define GPIO_Pin_11 ((uint16_t)0x0800)
#define GPIO_Pin_12 ((uint16_t)0x1000)
#define GPIO_Pin_13 ((uint16_t)0x2000)
#define GPIO_Pin_14 ((uint16_t)0x4000)
#define GPIO_Pin_15 ((uint16_t)0x8000)
#define GPIO_Pin_All ((uint16_t)0xFFFF)
GPIO_Mode:
typedef enum
{
GPIO_Mode_IN = 0x00, /*!< GPIO Input Mode 普通功能输入*/
GPIO_Mode_OUT = 0x01, /*!< GPIO Output Mode普通功能输出 */
GPIO_Mode_AF = 0x02, /*!< GPIO Alternate function Mode复用功能 */
GPIO_Mode_AN = 0x03 /*!< GPIO Analog Mode模拟功能模式 */
}GPIOMode_TypeDef;
GPIO_Speed:
typedef enum
{
GPIO_Low_Speed = 0x00, /*!< Low speed 2MHZ */
GPIO_Medium_Speed = 0x01, /*!< Medium speed 25MHZ */
GPIO_Fast_Speed = 0x02, /*!< Fast speed 50MHZ */
GPIO_High_Speed = 0x03 /*!< High speed 100MHZ */
}GPIOSpeed_TypeDef;
GPIO_OType:
typedef enum
{
GPIO_OType_PP = 0x00, //推挽
GPIO_OType_OD = 0x01 //开漏
}GPIOOType_TypeDef;
GPIO_PuPd:
typedef enum
{
GPIO_PuPd_NOPULL = 0x00, //不上拉也不下拉
GPIO_PuPd_UP = 0x01, //上拉
GPIO_PuPd_DOWN = 0x02 //下拉
}GPIOPuPd_TypeDef;
例子:
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_NOPULL;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_Init ( GPIOA, &GPIO_InitStruct );
3、GPIO_PinAFConfig
函数原型:
void GPIO_PinAFConfig ( GPIO_TypeDef * GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF )
功能:设置管脚的复用功能,一次只能设置一个管脚的复用功能
参数:GPIOx
GPIO_PinSource
GPIO_AF
返回值: 无
参数:
GPIO_PinSource:可以取得值:GPIO_PinSourcex ----x可以为(0..15)//
GPIO_AF:GPIO_AF_RTC_50Hz : Connect RTC_50Hz pin to AF0 (default after reset)
GPIO_AF_MCO : Connect MCO pin (MCO1 and MCO2) to AF0 (default after reset)
GPIO_AF_TAMPER : Connect TAMPER pins (TAMPER_1 and TAMPER_2) to AF0 (default after reset)
GPIO_AF_SWJ : Connect SWJ pins (SWD and JTAG)to AF0 (default after reset)
GPIO_AF_TRACE : Connect TRACE pins to AF0 (default after reset)
GPIO_AF_TIM1 : Connect TIM1 pins to AF1
GPIO_AF_TIM2 : Connect TIM2 pins to AF1
GPIO_AF_TIM3 : Connect TIM3 pins to AF2
GPIO_AF_TIM4 : Connect TIM4 pins to AF2
GPIO_AF_TIM5 : Connect TIM5 pins to AF2
GPIO_AF_TIM8 : Connect TIM8 pins to AF3
GPIO_AF_TIM9 : Connect TIM9 pins to AF3
GPIO_AF_TIM10 : Connect TIM10 pins to AF3
GPIO_AF_TIM11 : Connect TIM11 pins to AF3
GPIO_AF_I2C1 : Connect I2C1 pins to AF4
GPIO_AF_I2C2 : Connect I2C2 pins to AF4
GPIO_AF_I2C3 : Connect I2C3 pins to AF4
GPIO_AF_SPI1 : Connect SPI1 pins to AF5
GPIO_AF_SPI2 : Connect SPI2/I2S2 pins to AF5
GPIO_AF_SPI4 : Connect SPI4 pins to AF5
GPIO_AF_SPI5 : Connect SPI5 pins to AF5
GPIO_AF_SPI6 : Connect SPI6 pins to AF5
GPIO_AF_SAI1 : Connect SAI1 pins to AF6 for STM32F42xxx/43xxx devices.
GPIO_AF_SPI3 : Connect SPI3/I2S3 pins to AF6
GPIO_AF_I2S3ext : Connect I2S3ext pins to AF7
GPIO_AF_USART1 : Connect USART1 pins to AF7
GPIO_AF_USART2 : Connect USART2 pins to AF7
GPIO_AF_USART3 : Connect USART3 pins to AF7
GPIO_AF_UART4 : Connect UART4 pins to AF8
GPIO_AF_UART5 : Connect UART5 pins to AF8
GPIO_AF_USART6 : Connect USART6 pins to AF8
GPIO_AF_UART7 : Connect UART7 pins to AF8
GPIO_AF_UART8 : Connect UART8 pins to AF8
GPIO_AF_CAN1 : Connect CAN1 pins to AF9
GPIO_AF_CAN2 : Connect CAN2 pins to AF9
GPIO_AF_TIM12 : Connect TIM12 pins to AF9
GPIO_AF_TIM13 : Connect TIM13 pins to AF9
GPIO_AF_TIM14 : Connect TIM14 pins to AF9
GPIO_AF_OTG_FS : Connect OTG_FS pins to AF10
GPIO_AF_OTG_HS : Connect OTG_HS pins to AF10
GPIO_AF_ETH : Connect ETHERNET pins to AF11
GPIO_AF_FSMC : Connect FSMC pins to AF12
GPIO_AF_FMC : Connect FMC pins to AF12 for STM32F42xxx/43xxx devices.
GPIO_AF_OTG_HS_FS : Connect OTG HS (configured in FS) pins to AF12
GPIO_AF_SDIO : Connect SDIO pins to AF12
GPIO_AF_DCMI : Connect DCMI pins to AF13
GPIO_AF_LTDC : Connect LTDC pins to AF14 for STM32F429xx/439xx devices.
GPIO_AF_EVENTOUT : Connect EVENTOUT pins to AF15
例子:
GPIO_PinAFConfig (GPIOA, GPIO_PinSource9, GPIO_AF_USART1 );
4、GPIO_PinLockConfig
原型:
void GPIO_PinLockConfig ( GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin )
功能:锁定端口设置
例:
GPIO_PinLockConfig( GPIOA, GPIO_Pin_9);5、GPIO_ReadInputData
原型:
uint16_t GPIO_ReadInputData ( GPIO_TypeDef * GPIOx )
功能:读取某个端口的(IDR)值
例:
u16 a;
a=GPIO_ReadInputData (GPIOA );6、GPIO_ReadInputDataBit
原型:
uint8_t GPIO_ReadInputDataBit ( GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin )
功能:读取某个端口的(IDR)某一位的值
例:
if(GPIO_ReadInputDataBit (GPIOA, GPIO_Pin_0 )== Bit_SET)
{
;
}7、GPIO_ReadOutputData
原型:
uint16_t GPIO_ReadOutputData ( GPIO_TypeDef * GPIOx )
功能:读取某个端口的(ODR)值
例:
u16 data;
data=GPIO_ReadOutputData (GPIOA);8、GPIO_ReadOutputDataBit
原型:
uint8_t GPIO_ReadOutputDataBit ( GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin )
功能:读取某个端口的(ODR某一位的值
例:
u8 sta;
sta=GPIO_ReadOutputDataBit ( GPIOA,GPIO_Pin_2 );9、GPIO_ResetBits
原型:
void GPIO_ResetBits ( GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin )
功能:对某个管脚清0操作
例:
GPIO_ResetBits ( GPIOA, GPIO_Pin_1 );10、GPIO_SetBits
原型:
void GPIO_SetBits ( GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin )
功能:对某个管脚置1操作
例:
GPIO_SetBits ( GPIOA, GPIO_Pin_1 );
11、GPIO_StructInit
原型:
void GPIO_StructInit ( GPIO_InitTypeDef * GPIO_InitStruct )
功能:对GPIO_InitStruct结构体变量按缺省值写入,缺省值如下
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;例:
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_StructInit ( &GPIO_InitStruct);
GPIO_Init ( GPIOF, &GPIO_InitStruct );12、GPIO_ToggleBits
原型:
void GPIO_ToggleBits ( GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin )
功能:对某个管脚座翻转输出操作
例:
GPIO_ToggleBits ( GPIOA, GPIO_Pin_9 ) ;13、GPIO_Write
原型:
void GPIO_Write ( GPIO_TypeDef * GPIOx, uint16_t PortVal )
功能:对某个端口做输出操作
例:
GPIO_Write ( GPIOA, 0X1234 );
14、GPIO_WriteBit
原型:
void GPIO_WriteBit ( GPIO_TypeDef * GPIOx,uint16_t GPIO_Pin, BitAction BitVal)
功能:对某个端口某一位做置1或清0操作
例:
GPIO_WriteBit( GPIOA , GPIO_Pin_9, Bit_RESET );
五、USART相关库函数
1、USART_ClearFlag
原型:void USART_ClearFlag ( USART_TypeDef * USARTx, uint16_t USART_FLAG )
功能:清串口相关标志(一次可以清除多个标志)
参数:USARTx: 串口的首地址
USART_FLAG:待清除标志参数USARTx可取值:
USART1 ~ USART8
参数USART_FLAG可取的值:
USART_FLAG_CTS: CTS 标志
USART_FLAG_LBD: 清除lin 断路检测标志
USART_FLAG_TC: 清发送完成标志
USART_FLAG_RXNE: 清接收缓存器非空标志
2、USART_ClearITPendingBit
原型:USART_ClearITPendingBit ( USART_TypeDef * USARTx, uint16_t USART_IT )
功能:清串口中断相关标志(一次只能清除一个标志)
参数:USARTx: 串口的首地址
USART_FLAG:待清除标志
参数USARTx可取值:
USART1 ~ USART8
参数USART_IT可取的值:
USART_FLAG_CTS: CTS 标志
USART_FLAG_LBD: 清除lin 断路检测标志
USART_FLAG_TC: 清发送完成标志
USART_FLAG_RXNE: 清接收缓存器非空标志
3、USART_Cmd
原型:
void USART_Cmd ( USART_TypeDef * USARTx, FunctionalState NewState )
功能:开启/关闭串口
参数:USARTx: 串口的首地址
NewState: 使能/除能操作
参数SARTx:USART1 ~ USART8
参数NewState:ENABLE or DISABLE
4、USART_DeInit
原型:void USART_DeInit ( USART_TypeDef * USARTx )
功能:复位串口-----使其相关寄存器值变成默认值
5、USART_DMACmd
原型:void USART_DMACmd ( USART_TypeDef * USARTx, uint16_t USART_DMAReq, FunctionalState NewState );
功能:使能/除能串口DMA功能
参数:
USARTx:USART1 ~ USART8
USART_DMAReq: USART_DMAReq_Tx(发送DMA) USART_DMAReq_Rx(接收DMA)
NewState: ENABLE / DISABLE
6、USART_GetFlagStatus
原型:FlagStatus USART_GetFlagStatus ( USART_TypeDef * USARTx, uint16_t USART_FLAG )
功能:获取相关标志,查询相关标志是否被置位
参数:
USARTx------- USART1 ~ USART8
USART_FLAG:
USART_FLAG_CTS: CTS 标志
USART_FLAG_LBD: LIN 断路检测标志
USART_FLAG_TXE: 发送缓存器空标志
USART_FLAG_TC: 发送完成标志
USART_FLAG_RXNE: 接收缓存器非空标志
USART_FLAG_IDLE: 空闲标志
USART_FLAG_ORE: 上溢错误标志
USART_FLAG_NE: 噪声标志
USART_FLAG_FE: 帧错误标志
USART_FLAG_PE: 奇偶校验错误标志
返回值:SET (相关标志被置1)RESET(相关标志位0
7、USART_GetITStatus
原型:ITStatus USART_GetITStatus ( USART_TypeDef * USARTx, uint16_t USART_IT )
功能:查询相关中断产生与否,参数同上
8、USART_Init
原型:void USART_Init ( USART_TypeDef * USARTx, USART_InitTypeDef * USART_InitStruct )
功能:串口初始化
参数:USARTx-------- USART1 ~ USART8
USART_InitStruct------初始化串口参数
结构体原型:
typedef struct
{
uint32_t USART_BaudRate; //波特率
uint16_t USART_WordLength; //字长
uint16_t USART_StopBits; //停止位
uint16_t USART_Parity; //校验
uint16_t USART_Mode; //模式
uint16_t USART_HardwareFlowControl;//流控
} USART_InitTypeDef;
结构体成员值:
USART_WordLength : USART_WordLength_8b USART_WordLength_9b
USART_StopBits :USART_StopBits_1 USART_StopBits0 _5 USART_StopBits1 _5 USART_StopBits2
USART_Parity: USART_Parity_No USART_Parity_Even USART_Parity_Odd()
USART_Mode: USART_Mode_Rx USART_Mode_Tx
USART_HardwareFlowControl: USART_HardwareFlowControl_None(无流控)
USART_HardwareFlowControl_RTS
USART_HardwareFlowControl_CTS
USART_HardwareFlowControl_RTS_CTS
9、USART_ITConfig
原型:void USART_ITConfig ( USART_TypeDef * USARTx, uint16_t USART_IT, FunctionalState NewState )
功能:使能/除能相关中断(一次只能开启或者关闭一个中断)
10、USART_ReceiveData
原型:uint16_t USART_ReceiveData ( USART_TypeDef * USARTx )
功能:读取DR寄存器
11、USART_SendData
原型:void USART_SendData ( USART_TypeDef * USARTx, uint16_t Data )
功能:发送数据使用uart库函数的时候要注意一下stm32f4xx.h中123行的设置: