stm32库函数解释.doc

上传人:11****ws 文档编号:2993867 上传时间:2019-05-16 格式:DOC 页数:56 大小:440.50KB
下载 相关 举报
stm32库函数解释.doc_第1页
第1页 / 共56页
stm32库函数解释.doc_第2页
第2页 / 共56页
stm32库函数解释.doc_第3页
第3页 / 共56页
stm32库函数解释.doc_第4页
第4页 / 共56页
stm32库函数解释.doc_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、1部分库函数简介一、通用输入/输出(GPIO)-3二、外部中断/事件控制器( EXTI)-7三、通用定时器(TIM)-9四:ADC 寄存器-25五:备份寄存器(BKP)-33六、DMA控制器( DMA)-37七、复位和时钟设置(RCC)-41八、嵌套向量中断控制器(NVIC)-492命名规则在函数名中,只允许存在一个下划线,用以分隔外设缩写和函数名的其它部分。名为 PPP_Init 的函数,其功能是根据 PPP_InitTypeDef 中指定的参数,初始化外设 PPP,例如 TIM_Init.名为 PPP_DeInit 的函数,其功能为复位外设 PPP 的所有寄存器至缺省值,例如 TIM_De

2、Init. 名为 PPP_StructInit 的函数,其功能为通过设置 PPP_InitTypeDef 结构中的各种参数来定义外设的功能,例如:USART_StructInit 名为 PPP_Cmd 的函数,其功能为使能或者失能外设 PPP,例如: SPI_Cmd. 名为 PPP_ITConfig 的函数,其功能为使能或者失能来自外设 PPP 某中断源,例如: RCC_ITConfig. 名为 PPP_DMAConfig 的函数,其功能为使能或者失能外设 PPP 的 DMA 接口,例如:TIM1_DMAConfig . 用以配置外设功能的函数,总是以字符串“Config”结尾,例如 GPIO

3、_PinRemapConfig. 名为 PPP_GetFlagStatus 的函数,其功能为检查外设 PPP 某标志位被设置与否,例如:I2C_GetFlagStatus. 名为 PPP_ClearFlag 的函数,其功能为清除外设 PPP 标志位,例如: I2C_ClearFlag. 名为 PPP_GetITStatus 的函数,其功能为判断来自外设 PPP 的中断发生与否,例如:I2C_GetITStatus. 名为 PPP_ClearITPendingBit 的函数,其功能为清除外设 PPP 中断待处理标志位,例如: I2C_ClearITPendingBit.typedef signe

4、d 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

5、char vs8; 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; /

6、* 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 volati

7、le unsigned short const vuc16; /* Read Only */ typedef volatile unsigned char const vuc8; /* Read Only */3一、通用输入/输出(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 struc

8、t vu32 EVCR; vu32 MAPR; vu32 EXTICR4; AFIO_TypeDef;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_Ini

9、tStructure.GPIO_Pin = GPIO_Pin_All; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, 4GPIO_InitTypeDef structure GPIO_InitTypeDef 定义于文件“stm32f10x_gpio.h” : typedef struct u16 GPIO_Pin; GPIOSpeed_TypeDef GPIO_Speed; GPIOMode_Type

10、Def 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 GPIO_Speed_50MHz:最高输出速率 50MHz GPIO_Mode GPIO_Mode:用以设

11、置选中管脚的工作状态。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_InitTypeDef GPIO_InitStructure; GPIO_StructInit(GPIO_

12、InitStruct:GPIO_Pin:GPIO_Pin_All GPIO_Speed:GPIO_Speed_2MHz GPIO_Mode:GPIO_Mode_IN_FLOATING5 函数 GPIO_ReadInputDataBit功能描述:读取指定端口管脚的输入例:u8 ReadValue; ReadValue = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7);6 函数 GPIO_ReadInputData功能描述:读取指定的 GPIO 端口输入5例:u16 ReadValue; ReadValue = GPIO_ReadInputData(GPIOC)

13、;7 函数 GPIO_ReadOutputDataBit功能描述:读取指定端口管脚的输出例:u8 ReadValue; ReadValue = GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_7);8 函数 GPIO_ReadOutputData功能描述:读取指定的 GPIO 端口输出例:u16 ReadValue; ReadValue = GPIO_ReadOutputData(GPIOC);9 函数 GPIO_SetBits功能描述:置位指定的数据端口位例: GPIO_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);10 函

14、数 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(G

15、PIOA, GPIO_Pin_0 | GPIO_Pin_1);614 函数 GPIO_EventOutputConfig功能描述:选择 GPIO 管脚用作事件输出例: GPIO_EventOutputConfig(GPIO_PortSourceGPIOE, GPIO_PinSource5);GPIO_PortSource GPIO_PortSource 用以选择用作事件输出的 GPIO 端口。GPIO_PinSource GPIO_PinSource 用以选择用作事件输出的 GPIO 管脚。15 函数 GPIO_EventOutputCmd功能描述:使能或者失能事件输出例: GPIO_Even

16、tOutputConfig(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_Parti

17、alRemap_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:TIM

18、3复用功能完全映射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 管脚用作外部中

19、断线路例: GPIO_EXTILineConfig(GPIO_PortSource_GPIOB, GPIO_PinSource8);7二、外部中断 /事件控制器( 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_

20、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_

21、Init(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;8EXTI_Line EXTI_Line 选择了待使能或者失能的外部线路。EXTI_Linex:外部中断线 x( 0-18)EXTI_Mode EXTI_Mode:设置了被使能

22、线路的模式。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 函数 EX

23、TI_StructInit功能描述:把 EXTI_InitStruct 中的每一个参数按缺省值填入例: EXTI_InitTypeDef EXTI_InitStructure; EXTI_StructInit(EXTI_InitStruct 缺省值EXTI_Line: EXTI_LineNone EXTI_Mode: EXTI_Mode_Interrupt EXTI_Trigger: EXTI_Trigger_Falling EXTI_LineCmd: DISABLE4 函数 EXTI_GenerateSWInterrupt功能描述:产生一个软件中断例:EXTI_GenerateSWInter

24、rupt(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_GetITSta

25、tus(EXTI_Line8);98 函数 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

26、; 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 RESERVED113; vu16 CCR1; u16 RESERVED12; vu16 CCR2; u16 RESERVED13; vu16 CCR3; u16 RESERVED14; vu16 CCR4; u16 RESERVED153; vu16 D

27、CR; u16 RESERVED16; vu16 DMAR; u16 RESERVED17; TIM_TypeDef;10TIM 库函数1 函数 TIM_DeInit功能描述:将外设 TIMx 寄存器重设为缺省值例: TIM_DeInit(TIM2);2 函数 TIM_TimeBaseInit功能描述:根据 TIM_TimeBaseInitStruct 中指定的参数初始化 TIMx 的时间基数单位例: TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Period = 0xFFFF; TIM_Tim

28、eBaseStructure.TIM_Prescaler = 0xF; TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, TIM_TimeBaseInitTypeDef structure TIM_TimeBaseInitTypeDef定义于文件“stm32f10x_tim.h” : typedef struct u16 TIM_Period; u16 TIM_Prescaler; u8

29、 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:T DTS = Tck_tim TIM_CKD_DIV2:T DTS = 2Tck_tim TIM_CKD_DIV4:T DTS = 4Tck_timTIM_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计数模式

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。