部分库函数简介
一、通用输入/输出(GPIO)--------------------------------------------------------------------------------------------3 二、外部中断/事件控制器(EXTI)-----------------------------------------------------------------------------------7 三、通用定时器(TIM)-------------------------------------------------------------------------------------------------9 四:ADC寄存器------------------------------------------------------------------------25
五:备份寄存器(BKP)-------------------------------------------------------------------------------------------------33 六、DMA控制器(DMA)---------------------------------------------------------------37
七、复位和时钟设置(RCC)------------------------------------------------------------------------------------------41 八、嵌套向量中断控制器(NVIC)-----------------------------------------------------------------------------------49
1
命名规则
在函数名中,只允许存在一个下划线,用以分隔外设缩写和函数名的其它部分。
名为PPP_Init的函数,其功能是根据PPP_InitTypeDef中指定的参数,初始化外设PPP,例如TIM_Init.
名为PPP_DeInit的函数,其功能为复位外设PPP的所有寄存器至缺省值,例如TIM_DeInit.
名为PPP_StructInit的函数,其功能为通过设置PPP_InitTypeDef 结构中的各种参数来定义外设的功能,例如:
USART_StructInit
名为PPP_Cmd的函数,其功能为使能或者失能外设PPP,例如: SPI_Cmd.
名为PPP_ITConfig的函数,其功能为使能或者失能来自外设PPP某中断源,例如: RCC_ITConfig.
名为PPP_DMAConfig的函数,其功能为使能或者失能外设PPP的DMA接口,例如:TIM1_DMAConfig. 用以配置外设功能的函数,总是以字符串“Config”结尾,例如GPIO_PinRemapConfig.
名为PPP_GetFlagStatus的函数,其功能为检查外设PPP某标志位被设置与否,例如:I2C_GetFlagStatus.
名为PPP_ClearFlag的函数,其功能为清除外设PPP标志位,例如:I2C_ClearFlag.
名为PPP_GetITStatus的函数,其功能为判断来自外设PPP的中断发生与否,例如:I2C_GetITStatus.
名为PPP_ClearITPendingBit的函数,其功能为清除外设PPP中断待处理标志位,例如: I2C_ClearITPendingBit.
typedef signed long s32; typedef signed short s16; typedef signed char s8;
typedef signed long const sc32; /* Read Only */ typedef signed short const sc16; /* Read Only */ typedef signed char const sc8; /* Read Only */ typedef volatile signed long vs32; typedef volatile signed short vs16; typedef volatile signed char vs8;
2
typedef volatile signed long const vsc32; /* Read Only */ typedef volatile signed short const vsc16; /* Read Only */ typedef volatile signed char const vsc8; /* Read Only */ typedef unsigned long u32; typedef unsigned short u16; typedef unsigned char u8;
typedef unsigned long const uc32; /* Read Only */ typedef unsigned short const uc16; /* Read Only */ typedef unsigned char const uc8; /* Read Only */ typedef volatile unsigned long vu32; typedef volatile unsigned short vu16; typedef volatile unsigned char vu8;
typedef volatile unsigned long const vuc32; /* Read Only */ typedef volatile unsigned short const vuc16; /* Read Only */ typedef volatile unsigned char const vuc8; /* Read Only */
一、通用输入/输出(GPIO)
GPIO寄存器结构
GPIO_TypeDef和AFIO_TypeDef,在文件“stm32f10x_map.h”中定义如下:
typedef struct {
vu32 CRL; vu32 CRH; vu32 IDR; vu32 ODR; vu32 BSRR; vu32 BRR; vu32 LCKR; }
GPIO_TypeDef; typedef struct {
vu32 EVCR; vu32 MAPR; vu32 EXTICR[4]; }
AFIO_TypeDef;
3
GPIO库函数
1 函数GPIO_DeInit
功能描述:将外设GPIOx寄存器重设为缺省值 例:
GPIO_DeInit(GPIOA);
2 函数GPIO_AFIODeInit
功能描述:将复用功能(重映射事件控制和EXTI设置)重设为缺省值 例:
GPIO_AFIODeInit();
3 函数GPIO_Init
功能描述:根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器 例:
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitTypeDef structure
GPIO_InitTypeDef定义于文件“stm32f10x_gpio.h”:
typedef struct {
u16 GPIO_Pin;
GPIOSpeed_TypeDef GPIO_Speed; GPIOMode_TypeDef GPIO_Mode; }
GPIO_InitTypeDef;
GPIO_Pin
该参数选择待设置的GPIO管脚,使用操作符“|”可以一次选中多个管脚。可以使用下表中的任意组合。GPIO_Pin_None:无管脚被选中 GPIO_Pin_x:选中管脚x(0--15) GPIO_Pin_All:选中全部管脚
GPIO_Speed
GPIO_Speed:用以设置选中管脚的速率。 GPIO_Speed_10MHz:最高输出速率10MHz GPIO_Speed_2MHz:最高输出速率2MHz
4