stm32库函数部分解释Word格式文档下载.docx
《stm32库函数部分解释Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《stm32库函数部分解释Word格式文档下载.docx(84页珍藏版)》请在冰豆网上搜索。
typedefsignedlongconstsc32;
/*ReadOnly*/
typedefsignedshortconstsc16;
/*ReadOnly*/
typedefsignedcharconstsc8;
typedefvolatilesignedlongvs32;
typedefvolatilesignedshortvs16;
typedefvolatilesignedcharvs8;
typedefvolatilesignedlongconstvsc32;
typedefvolatilesignedshortconstvsc16;
typedefvolatilesignedcharconstvsc8;
typedefunsignedlongu32;
typedefunsignedshortu16;
typedefunsignedcharu8;
typedefunsignedlongconstuc32;
typedefunsignedshortconstuc16;
typedefunsignedcharconstuc8;
typedefvolatileunsignedlongvu32;
typedefvolatileunsignedshortvu16;
typedefvolatileunsignedcharvu8;
typedefvolatileunsignedlongconstvuc32;
typedefvolatileunsignedshortconstvuc16;
typedefvolatileunsignedcharconstvuc8;
一、通用输入/输出(GPIO)
GPIO寄存器结构
GPIO_TypeDef和AFIO_TypeDef,在文件“stm32f10x_map.h”中定义如下:
typedefstruct
{
vu32CRL;
vu32CRH;
vu32IDR;
vu32ODR;
vu32BSRR;
vu32BRR;
vu32LCKR;
}
GPIO_TypeDef;
vu32EVCR;
vu32MAPR;
vu32EXTICR[4];
AFIO_TypeDef;
GPIO库函数
1函数GPIO_DeInit
功能描述:
将外设GPIOx寄存器重设为缺省值
例:
GPIO_DeInit(GPIOA);
2函数GPIO_AFIODeInit
将复用功能(重映射事件控制和EXTI设置)重设为缺省值
GPIO_AFIODeInit();
3函数GPIO_Init
根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器
GPIO_InitTypeDefGPIO_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_InitTypeDefstructure
GPIO_InitTypeDef定义于文件“stm32f10x_gpio.h”:
u16GPIO_Pin;
GPIOSpeed_TypeDefGPIO_Speed;
GPIOMode_TypeDefGPIO_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
GPIO_Speed_50MHz:
最高输出速率50MHz
GPIO_Mode
GPIO_Mode:
用以设置选中管脚的工作状态。
GPIO_Mode_AIN:
模拟输入
GPIO_Mode_IN_FLOATING:
浮空输入
GPIO_Mode_IPD:
下拉输入
GPIO_Mode_IPU:
上拉输入
GPIO_Mode_Out_OD:
开漏输出
GPIO_Mode_Out_PP:
推挽输出
GPIO_Mode_AF_OD:
复用开漏输出
GPIO_Mode_AF_PP:
复用推挽输出
4函数GPIO_StructInit
把GPIO_InitStruct中的每一个参数按缺省值填入
GPIO_StructInit(&
GPIO_InitStruct:
GPIO_Pin:
GPIO_Pin_All
GPIO_Speed_2MHz
GPIO_Mode_IN_FLOATING
5函数GPIO_ReadInputDataBit
读取指定端口管脚的输入
u8ReadValue;
ReadValue=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7);
6函数GPIO_ReadInputData
读取指定的GPIO端口输入
u16ReadValue;
ReadValue=GPIO_ReadInputData(GPIOC);
7函数GPIO_ReadOutputDataBit
读取指定端口管脚的输出
ReadValue=GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_7);
8函数GPIO_ReadOutputData
读取指定的GPIO端口输出
ReadValue=GPIO_ReadOutputData(GPIOC);
9函数GPIO_SetBits
置位指定的数据端口位
GPIO_SetBits(GPIOA,GPIO_Pin_10|GPIO_Pin_15);
10函数GPIO_ResetBits
清除指定的数据端口位
GPIO_ResetBits(GPIOA,GPIO_Pin_10|GPIO_Pin_15);
11函数GPIO_WriteBit
设置或者清除指定的数据端口位
GPIO_WriteBit(GPIOA,GPIO_Pin_15,Bit_SET);
12函数GPIO_Write
向指定GPIO数据端口写入数据
GPIO_Write(GPIOA,0x1101);
13函数GPIO_PinLockConfig
锁定GPIO管脚设置寄存器
GPIO_PinLockConfig(GPIOA,GPIO_Pin_0|GPIO_Pin_1);
14函数GPIO_EventOutputConfig
选择GPIO管脚用作事件输出
GPIO_EventOutputConfig(GPIO_PortSourceGPIOE,GPIO_PinSource5);
GPIO_PortSource
GPIO_PortSource用以选择用作事件输出的GPIO端口。
GPIO_PinSource
GPIO_PinSource用以选择用作事件输出的GPIO管脚。
15函数GPIO_EventOutputCmd
使能或者失能事件输出
GPIO_EventOutputConfig(GPIO_PortSourceGPIOC,GPIO_PinSource6);
GPIO_EventOutputCmd(ENABLE);
16函数GPIO_PinRemapConfig
改变指定管脚的映射
GPIO_PinRemapConfig(GPIO_Remap_I2C1,ENABLE);
GPIO_Remap
GPIO_Remap用以选择用作事件输出的GPIO端口。
GPIO_Remap_SPI1:
SPI1复用功能映射
GPIO_Remap_I2C1:
I2C1复用功能映射
GPIO_Remap_USART1:
USART1复用功能映射
GPIO_PartialRemap_USART3:
USART2复用功能映射
GPIO_FullRemap_USART3:
USART3复用功能完全映射
GPIO_PartialRemap_TIM1:
USART3复用功能部分映射
GPIO_FullRemap_TIM1:
TIM1复用功能完全映射
GPIO_PartialRemap1_TIM2:
TIM2复用功能部分映射1
GPIO_PartialRemap2_TIM2:
TIM2复用功能部分映射2
GPIO_FullRemap_TIM2:
TIM2复用功能完全映射
GPIO_PartialRemap_TIM3:
TIM3复用功能部分映射
GPIO_FullRemap_TIM3:
TIM3复用功能完全映射
GPIO_Remap_TIM4:
TIM4复用功能映射
GPIO_Remap1_CAN:
CAN复用功能映射1
GPIO_Remap2_CAN:
CAN复用功能映射2
GPIO_Remap_PD01:
PD01复用功能映射
GPIO_Remap_SWJ_NoJTRST:
除JTRST外SWJ完全使能(JTAG+SW-DP)
GPIO_Remap_SWJ_JTAGDisable:
JTAG-DP失能+SW-DP使能
GPIO_Remap_SWJ_Disable:
SWJ完全失能(JTAG+SW-DP)
17函数GPIO_EXTILineConfig
选择GPIO管脚用作外部中断线路
GPIO_EXTILineConfig(GPIO_PortSource_GPIOB,GPIO_PinSource8);
二、外部中断/事件控制器(EXTI)
EXTI寄存器结构
EXTI_TypeDef,在文件“stm32f10x_map.h”中定义如下:
vu32IMR;
vu32EMR;
vu32RTSR;
vu32FTSR;
vu32SWIER;
vu32PR;
EXTI_TypeDef;
EXTI库函数
1函数EXTI_DeInit
将外设EXTI寄存器重设为缺省值
EXTI_DeInit();
2函数EXTI_Init
根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器
EXTI_InitTypeDefEXTI_InitStructure;
EXTI_InitStructure.EXTI_Line=EXTI_Line12|EXTI_Line14;
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
EXTI_Init(&
EXTI_InitStructure);
EXTI_InitTypeDefstructure
EXTI_InitTypeDef定义于文件“stm32f10x_exti.h”:
{u32EXTI_Line;
EXTIMode_TypeDefEXTI_Mode;
EXTIrigger_TypeDefEXTI_Trigger;
FunctionalStateEXTI_LineCmd;
EXTI_InitTypeDef;
EXTI_Line
EXTI_Line选择了待使能或者失能的外部线路。
EXTI_Linex:
外部中断线x(0--18)
EXTI_Mode
EXTI_Mode:
设置了被使能线路的模式。
EXTI_Mode_Event:
设置EXTI线路为事件请求
EXTI_Mode_Interrupt:
设置EXTI线路为中断请求
EXTI_Trigger
EXTI_Trigger:
设置了被使能线路的触发边沿。
EXTI_Trigger_Falling:
设置输入线路下降沿为中断请求
EXTI_Trigger_Rising:
设置输入线路上升沿为中断请求
EXTI_Trigger_Rising_Falling:
设置输入线路上升沿和下降沿为中断请求
EXTI_LineCmd
EXTI_LineCmd用来定义选中线路的新状态。
它可以被设为ENABLE或者DISABLE。
3函数EXTI_StructInit
把EXTI_InitStruct中的每一个参数按缺省值填入
EXTI_StructInit(&
EXTI_InitStruct缺省值
EXTI_Line:
EXTI_LineNone
EXTI_Mode_Interrupt
EXTI_Trigger_Falling
EXTI_LineCmd:
DISABLE
4函数EXTI_GenerateSWInterrupt
产生一个软件中断
EXTI_GenerateSWInterrupt(EXTI_Line6);
5函数EXTI_GetFlagStatus
检查指定的EXTI线路标志位设置与否
FlagStatusEXTIStatus;
EXTIStatus=EXTI_GetFlagStatus(EXTI_Line8);
6函数EXTI_ClearFlag
清除EXTI线路挂起标志位
EXTI_ClearFlag(EXTI_Line2);
7函数EXTI_GetITStatus
检查指定的EXTI线路触发请求发生与否
ITStatusEXTIStatus;
EXTIStatus=EXTI_GetITStatus(EXTI_Line8);
8函数EXTI_ClearITPendingBit
清除EXTI线路挂起位
EXTI_ClearITpendingBit(EXTI_Line2);
三、通用定时器(TIM)
TIM寄存器结构
TIM_TypeDeff,在文件“stm32f10x_map.h”中定义如下:
vu16CR1;
u16RESERVED0;
vu16CR2;
u16RESERVED1;
vu16SMCR;
u16RESERVED2;
vu16DIER;
u16RESERVED3;
vu16SR;
u16RESERVED4;
vu16EGR;
u16RESERVED5;
vu16CCMR1;
u16RESERVED6;
vu16CCMR2;
u16RESERVED7;
vu16CCER;
u16RESERVED8;
vu16CNT;
u16RESERVED9;
vu16PSC;
u16RESERVED10;
vu16ARR;
u16RESERVED11[3];
vu16CCR1;
u16RESERVED12;
vu16CCR2;
u16RESERVED13;
vu16CCR3;
u16RESERVED14;
vu16CCR4;
u16RESERVED15[3];
vu16DCR;
u16RESERVED16;
vu16DMAR;
u16RESERVED17;
TIM_TypeDef;
TIM库函数
1函数TIM_DeInit
将外设TIMx寄存器重设为缺省值
TIM_DeInit(TIM2);
2函数TIM_TimeBaseInit
根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;
TIM_TimeBaseStructure.TIM_Period=0xFFFF;
TIM_TimeBaseStructure.TIM_Prescaler=0xF;
TIM_TimeBaseStructure.TIM_ClockDivision=0x0;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2,&
TIM_TimeBaseStructure);
TIM_TimeBaseInitTypeDefstructure
TIM_TimeBaseInitTypeDef定义于文件“stm32f10x_tim.h”:
u16TIM_Period;
u16TIM_Prescaler;
u8TIM_ClockDivision;
u16TIM_CounterMode;
}TIM_TimeBaseInitTypeDef;
TIM_Period
TIM_Period设置了在下一个更新事件装入活动的自动重装载寄存器周期的值。
它的取值必须在