STM32库函数功能详解(2)

2018-12-04 21:48

功能描述:选择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);

6

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

EXTI寄存器结构

EXTI_TypeDef,在文件“stm32f10x_map.h”中定义如下:

typedef struct {

vu32 IMR; vu32 EMR; vu32 RTSR; vu32 FTSR; vu32 SWIER; vu32 PR; }

EXTI_TypeDef;

EXTI库函数

1 函数EXTI_DeInit

功能描述:将外设EXTI寄存器重设为缺省值 例:

EXTI_DeInit();

2 函数EXTI_Init

功能描述:根据EXTI_InitStruct中指定的参数初始化外设EXTI寄存器 例:

EXTI_InitTypeDef EXTI_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_InitTypeDef structure

EXTI_InitTypeDef定义于文件“stm32f10x_exti.h”:

typedef struct { u32 EXTI_Line;

EXTIMode_TypeDef EXTI_Mode;

EXTIrigger_TypeDef EXTI_Trigger; FunctionalState EXTI_LineCmd; }

EXTI_InitTypeDef;

EXTI_Line

EXTI_Line选择了待使能或者失能的外部线路。

7

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_InitTypeDef EXTI_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线路标志位设置与否 例:

FlagStatus EXTIStatus;

EXTIStatus = EXTI_GetFlagStatus(EXTI_Line8);

6 函数EXTI_ClearFlag

功能描述:清除EXTI线路挂起标志位 例:

EXTI_ClearFlag(EXTI_Line2);

7 函数EXTI_GetITStatus

功能描述:检查指定的EXTI线路触发请求发生与否 例:

ITStatus EXTIStatus;

EXTIStatus = EXTI_GetITStatus(EXTI_Line8);

8

8 函数EXTI_ClearITPendingBit

功能描述:清除EXTI线路挂起位 例:

EXTI_ClearITpendingBit(EXTI_Line2);

三、通用定时器(TIM)

TIM寄存器结构

TIM_TypeDeff,在文件“stm32f10x_map.h”中定义如下:

typedef struct {

vu16 CR1;

u16 RESERVED0; vu16 CR2;

u16 RESERVED1; vu16 SMCR;

u16 RESERVED2; vu16 DIER;

u16 RESERVED3; vu16 SR;

u16 RESERVED4; vu16 EGR;

u16 RESERVED5; vu16 CCMR1; u16 RESERVED6; vu16 CCMR2; u16 RESERVED7; vu16 CCER;

u16 RESERVED8; vu16 CNT;

u16 RESERVED9; vu16 PSC;

u16 RESERVED10; vu16 ARR;

u16 RESERVED11[3]; vu16 CCR1;

u16 RESERVED12; vu16 CCR2;

u16 RESERVED13; vu16 CCR3;

u16 RESERVED14; vu16 CCR4;

u16 RESERVED15[3]; vu16 DCR;

u16 RESERVED16; vu16 DMAR;

u16 RESERVED17; }

TIM_TypeDef;

9

TIM库函数

1 函数TIM_DeInit

功能描述:将外设TIMx寄存器重设为缺省值 例:

TIM_DeInit(TIM2);

2 函数TIM_TimeBaseInit

功能描述:根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位 例:

TIM_TimeBaseInitTypeDef TIM_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_TimeBaseInitTypeDef structure

TIM_TimeBaseInitTypeDef定义于文件“stm32f10x_tim.h”:

typedef struct {

u16 TIM_Period; u16 TIM_Prescaler; u8 TIM_ClockDivision; u16 TIM_CounterMode;

} TIM_TimeBaseInitTypeDef;

TIM_Period

TIM_Period设置了在下一个更新事件装入活动的自动重装载寄存器周期的值。它的取值必须在0x0000和0xFFFF之间。

TIM_Prescaler

TIM_Prescaler设置了用来作为TIMx时钟频率除数的预分频值。它的取值必须在0x0000和0xFFFF之间。

TIM_ClockDivision

TIM_ClockDivision设置了时钟分割。 TIM_CKD_DIV1:TDTS = Tck_tim TIM_CKD_DIV2:TDTS = 2Tck_tim TIM_CKD_DIV4:TDTS = 4Tck_tim

TIM_CounterMode

TIM_CounterMode选择了计数器模式。 TIM_CounterMode_Up:TIM向上计数模式 TIM_CounterMode_Down:TIM向下计数模式

TIM_CounterMode_CenterAligned1:TIM中央对齐模式1计数模式 TIM_CounterMode_CenterAligned2:TIM中央对齐模式2计数模式 TIM_CounterMode_CenterAligned3:TIM中央对齐模式3计数模式

10


STM32库函数功能详解(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:哲学与人生 作业与答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: