STM32库函数功能详解.docx

上传人:b****8 文档编号:10746690 上传时间:2023-02-22 格式:DOCX 页数:101 大小:39.12KB
下载 相关 举报
STM32库函数功能详解.docx_第1页
第1页 / 共101页
STM32库函数功能详解.docx_第2页
第2页 / 共101页
STM32库函数功能详解.docx_第3页
第3页 / 共101页
STM32库函数功能详解.docx_第4页
第4页 / 共101页
STM32库函数功能详解.docx_第5页
第5页 / 共101页
点击查看更多>>
下载资源
资源描述

STM32库函数功能详解.docx

《STM32库函数功能详解.docx》由会员分享,可在线阅读,更多相关《STM32库函数功能详解.docx(101页珍藏版)》请在冰豆网上搜索。

STM32库函数功能详解.docx

STM32库函数功能详解

STM32库函数简介

 

一、通用输入/输出(GPIO)--------------------------------------------------------------------------------------------3

二、外部中断/事件控制器(EXTI)-----------------------------------------------------------------------------------7

三、通用定时器(TIM)-------------------------------------------------------------------------------------------------9

四:

ADC寄存器------------------------------------------------------------------------25

五:

备份寄存器(BKP)-------------------------------------------------------------------------------------------------33

六、DMA控制器(DMA)---------------------------------------------------------------37

七、复位和时钟设置(RCC)------------------------------------------------------------------------------------------41

八、嵌套向量中断控制器(NVIC)-----------------------------------------------------------------------------------49

 

命名规则

在函数名中,只允许存在一个下划线,用以分隔外设缩写和函数名的其它部分。

名为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.

 

typedefsignedlongs32;

typedefsignedshorts16;

typedefsignedchars8;

typedefsignedlongconstsc32;/*ReadOnly*/

typedefsignedshortconstsc16;/*ReadOnly*/

typedefsignedcharconstsc8;/*ReadOnly*/

typedefvolatilesignedlongvs32;

typedefvolatilesignedshortvs16;

typedefvolatilesignedcharvs8;

typedefvolatilesignedlongconstvsc32;/*ReadOnly*/

typedefvolatilesignedshortconstvsc16;/*ReadOnly*/

typedefvolatilesignedcharconstvsc8;/*ReadOnly*/

typedefunsignedlongu32;

typedefunsignedshortu16;

typedefunsignedcharu8;

typedefunsignedlongconstuc32;/*ReadOnly*/

typedefunsignedshortconstuc16;/*ReadOnly*/

typedefunsignedcharconstuc8;/*ReadOnly*/

typedefvolatileunsignedlongvu32;

typedefvolatileunsignedshortvu16;

typedefvolatileunsignedcharvu8;

typedefvolatileunsignedlongconstvuc32;/*ReadOnly*/

typedefvolatileunsignedshortconstvuc16;/*ReadOnly*/

typedefvolatileunsignedcharconstvuc8;/*ReadOnly*/

 

一、通用输入/输出(GPIO)

 

GPIO寄存器结构

GPIO_TypeDef和AFIO_TypeDef,在文件“stm32f10x_map.h”中定义如下:

typedefstruct

{

vu32CRL;

vu32CRH;

vu32IDR;

vu32ODR;

vu32BSRR;

vu32BRR;

vu32LCKR;

}

GPIO_TypeDef;

typedefstruct

{

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”:

typedefstruct

{

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_InitTypeDefGPIO_InitStructure;

GPIO_StructInit(&GPIO_InitStructure);

GPIO_InitStruct:

GPIO_Pin:

GPIO_Pin_All

GPIO_Speed:

GPIO_Speed_2MHz

GPIO_Mode:

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

功能描述:

读取指定端口管脚的输出

例:

u8ReadValue;

ReadValue=GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_7);

 

8函数GPIO_ReadOutputData

功能描述:

读取指定的GPIO端口输出

例:

u16ReadValue;

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”中定义如下:

typedefstruct

{

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”:

typedefstruct

{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_InitTypeDefEXTI_InitStructure;

EXTI_StructInit(&EXTI_InitStructure);

EXTI_InitStruct缺省值

EXTI_Line:

EXTI_LineNone

EXTI_Mode:

EXTI_Mode_Interrupt

EXTI_Trigger:

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”中定义如下:

typedefstruct

{

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”:

typedefstruct

{

u16TIM_Period;

u16TIM_Prescaler;

u8TIM_ClockDivision;

u16TIM_CounterMode;

}TIM_TimeBaseInitTypeDef;

TIM_Period

TIM_Period设置了在下一个更新事件装入活动的自动重装载寄存器周期的值。

它的取值必须在0x0000和0xFFFF之间。

TIM_Prescale

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1