好文档 - 专业文书写作范文服务资料分享网站

STM32相关知识点总结

天下 分享 时间: 加入收藏 我要投稿 点赞

.

GPIO篇

GPIO寄存器

端口配置低位寄存器 CRL; 32位 端口配置高位寄存器 CRH; 端口输入数据寄存器 IDR; 端口输出数据寄存器 ODR; 置位/复位寄存器 复位寄存器 锁定寄存器

32位 32位 32位

BSRR; 32位 BRR;

16位

LCKR; 32位

GPIO库函数

stm32f10x_gpio.h

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal); void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

GPIO相关类型名

typedef struct {

{

typedef struct

__IO uint32_t CRL; uint16_t GPIO_Pin;

.

__IO uint32_t CRH; __IO uint32_t IDR; __IO uint32_t ODR; __IO uint32_t BSRR; __IO uint32_t BRR; __IO uint32_t LCKR; } GPIO_TypeDef;

GPIO_Pin取值 #define GPIO_Pin_0

GPIO_Pin_12 #define GPIO_Pin_1 #define GPIO_Pin_2 GPIO_Pin_14 #define GPIO_Pin_3 #define GPIO_Pin_4 GPIO_Pin_All

#define GPIO_Pin_5

.

.

GPIOSpeed_TypeDef GPIO_Speed;

GPIOMode_TypeDef GPIO_Mode;

}GPIO_InitTypeDef;

typedef enum

{ Bit_RESET = 0,

Bit_SET

}BitAction;

#define GPIO_Pin_6 #define

#define GPIO_Pin_7 #define GPIO_Pin_13 #define GPIO_Pin_8

#define

#define GPIO_Pin_9 #define GPIO_Pin_ 15

#define GPIO_Pin_10

#define

#define GPIO_Pin_11

中断篇

.

NVIC相关寄存器

中断使能设置寄存器 ISER 中断使能清除寄存器 ICER 中断悬挂设置寄存器 ISPR 中断悬挂清除寄存器 ICPR 中断激活位寄存器 IABR 中断优先级寄存器

IP

软件触发中断寄存器

STIR

TVOR寄存器 P138

TBLBASE 29段 R/W

TBLOFF 28:7段 R 向量表起始地址

EXTI相关寄存器

中断屏蔽寄存器 EXTI_IMR

事件屏蔽寄存器

EXTI_EMR 上升沿触发选择寄存器 EXTI_RTSR 下降沿触发选择寄存器 EXTI_FTSR 软件中断事件寄存器 EXTI_SWIER 挂起寄存器

EXTI_PR

AFIO寄存器

AFIO_EVCR

事件控制寄存器

.

AIRCR寄存器

P139

VECTKEY

31:16D R/W

ENDIANESS 15D R PRIGROUP

10:8D

R/W

SYSRESETREQ 2D W

VECTCLRACTIVE 1D W

VECTRESET

0D

W

设置是否屏蔽中断请求线上的中断请求 设置是否屏蔽事件请求线上的中断请求 设置是否用上升沿来触发中断和事件 设置是否用下降沿来触发中断和事件

用于软件触发中断/事件

用于保存中断/事件请求线上是否有请求

.

AFIO_EXTICRx AFIO_MAPR

外部中断配置寄存器

复用重映射和调试I/O配置寄存器

系统控制寄存器SCB p138 EXTI相关库函数

stm32f10x_exti.h

void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);

设置IO口与中断线的映射关系

void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct); 初始化中断线:触发方式等 ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);

判断中断线中断状态,是否发生

void EXTI_ClearITPendingBit(uint32_t EXTI_Line); 清除中断线上的中断标志位

AFIO相关函数

stm32f10x_rcc.h

stm32f10x_gpio.h

使能AFIO

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 时钟

GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE); 根据第一个参数,来确定是部分重映射还是全部重映射

开启重映射

NVIC相关函数

core_cm3.h

misc.h

void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup); void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);

中断优先级分组函数 中断参数初始化函数

挂起中断

static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn);

static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn); static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) static __INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn)

解挂中断 IABR

EXTI相关类型名

.

.

GPIO_PortSource取值 typedef struct {

#define GPIO_PortSourceGPIOA #define GPIO_PortSourceGPIOB #define GPIO_PortSourceGPIOC #define GPIO_PortSourceGPIOD #define GPIO_PortSourceGPIOE #define GPIO_PortSourceGPIOF

GPIO_PinSource取值 #defineGPIO_PinSource0 GPIO_PinSource12 #define GPIO_PinSource1 GPIO_PinSource13 #define GPIO_PinSource2 GPIO_PinSource14

uint32_t EXTI_Line;

EXTIMode_TypeDef EXTI_Mode; EXTITrigger_TypeDef EXTI_Trigger;

FunctionalState EXTI_LineCmd;

}EXTI_InitTypeDef;

#define GPIO_PinSource6 #define

#defineGPIO_PinSource7 #define

#define GPIO_PinSource8 #define

#define GPIO_PinSource3 #define GPIO_PinSource9 #define GPIO_PinSource15

#define GPIO_PinSource4 #define GPIO_PinSource10 #define GPIO_PinSource5 #define GPIO_PinSource11

EXTI_Line取值 #define EXTI_Line0

#define EXTI_Line7

#define EXTI_Line14

.

STM32相关知识点总结

.GPIO篇GPIO寄存器端口配置低位寄存器CRL;32位端口配置高位寄存器CRH;端口输入数据寄存器IDR;端口输出数据寄存器ODR;置位/复位寄存器复位寄存器锁定寄存器32位32位32位BSRR;32位BRR;16位LC
推荐度:
点击下载文档文档为doc格式
6of0a9vvgb4n7xz5eecp3x5if1klf700avn
领取福利

微信扫码领取福利

微信扫码分享