STM32相关知识点总结.doc_第1页
STM32相关知识点总结.doc_第2页
STM32相关知识点总结.doc_第3页
STM32相关知识点总结.doc_第4页
STM32相关知识点总结.doc_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

GPIO篇GPIO寄存器端口配置低位寄存器CRL; 32位端口配置高位寄存器CRH;32位端口输入数据寄存器IDR;32位端口输出数据寄存器ODR;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 structtypedef struct _IO uint32_t CRL;uint16_t GPIO_Pin; _IO uint32_t CRH;GPIOSpeed_TypeDef GPIO_Speed; _IO uint32_t IDR;GPIOMode_TypeDef GPIO_Mode; _IO uint32_t ODR;GPIO_InitTypeDef; _IO uint32_t BSRR;typedef enum _IO uint32_t BRR; Bit_RESET = 0, _IO uint32_t LCKR;Bit_SET GPIO_TypeDef;BitAction;GPIO_Pin取值#define GPIO_Pin_0 #define GPIO_Pin_6 #define GPIO_Pin_12 #define GPIO_Pin_1 #define GPIO_Pin_7 #define GPIO_Pin_13 #define GPIO_Pin_2 #define GPIO_Pin_8 #define GPIO_Pin_14 #define GPIO_Pin_3 #define GPIO_Pin_9 #define GPIO_Pin_ 15 #define GPIO_Pin_4 #define GPIO_Pin_10 #define GPIO_Pin_All#define GPIO_Pin_5 #define GPIO_Pin_11 中断篇 NVIC相关寄存器 AIRCR寄存器P139中断使能设置寄存器ISERVECTKEY31:16DR/W 中断使能清除寄存器ICERENDIANESS15DR中断悬挂设置寄存器ISPRPRIGROUP10:8DR/W中断悬挂清除寄存器ICPRSYSRESETREQ2DW中断激活位寄存器IABRVECTCLRACTIVE1DW中断优先级寄存器IPVECTRESET0DW软件触发中断寄存器STIRTVOR寄存器 P138 TBLBASE 29段 R/W TBLOFF28:7段R 向量表起始地址 EXTI相关寄存器中断屏蔽寄存器EXTI_IMR设置是否屏蔽中断请求线上的中断请求事件屏蔽寄存器EXTI_EMR设置是否屏蔽事件请求线上的中断请求上升沿触发选择寄存器EXTI_RTSR设置是否用上升沿来触发中断和事件下降沿触发选择寄存器EXTI_FTSR设置是否用下降沿来触发中断和事件软件中断事件寄存器EXTI_SWIER用于软件触发中断/事件挂起寄存器EXTI_PR用于保存中断/事件请求线上是否有请求AFIO寄存器 AFIO_EVCR事件控制寄存器AFIO_EXTICRx外部中断配置寄存器AFIO_MAPR复用重映射和调试I/O配置寄存器系统控制寄存器SCB p138EXTI相关库函数 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.hstm32f10x_gpio.hRCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);使能AFIO时钟GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);开启重映射根据第一个参数,来确定是部分重映射还是全部重映射NVIC相关函数core_cm3.hmisc.hvoid 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)IABREXTI相关类型名GPIO_PortSource取值typedef struct#define GPIO_PortSourceGPIOA #define GPIO_PortSourceGPIOB uint32_t EXTI_Line; #define GPIO_PortSourceGPIOC EXTIMode_TypeDef EXTI_Mode; #define GPIO_PortSourceGPIOD EXTITrigger_TypeDef EXTI_Trigger; #define GPIO_PortSourceGPIOE FunctionalState EXTI_LineCmd; #define GPIO_PortSourceGPIOF EXTI_InitTypeDef;GPIO_PinSource取值 #defineGPIO_PinSource0 #define GPIO_PinSource6 #define GPIO_PinSource12 #define GPIO_PinSource1 #defineGPIO_PinSource7 #define GPIO_PinSource13 #define GPIO_PinSource2 #define GPIO_PinSource8 #define GPIO_PinSource14 #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 #define EXTI_Line1 #define EXTI_Line8 #define EXTI_Line15 #define EXTI_Line2 #define EXTI_Line9 #define EXTI_Line16 #define EXTI_Line3 #define EXTI_Line10 #define EXTI_Line17 #define EXTI_Line4 #define EXTI_Line11 #define EXTI_Line18 #define EXTI_Line5 #define EXTI_Line12 #define EXTI_Line19 #define EXTI_Line6 #define EXTI_Line13 typedef struct typedef enum typedef enump145 _IO uint32_t IMR; EXTI_Mode_Interrupt = 0x00, EXTI_Trigger_Rising = 0x08, _IO uint32_t EMR; EXTI_Mode_Event = 0x04 EXTI_Trigger_Falling = 0x0C, _IO uint32_t RTSR; EXTIMode_TypeDef;EXTI_Trigger_Rising_Falling = 0x10 _IO uint32_t FTSR; EXTITrigger_TypeDef; _IO uint32_t SWIER; _IO uint32_t PR; EXTI_TypeDef; NVIC相关类型名typedef structNVIC_PriorityGroup取值#define NVIC_PriorityGroup_0 uint8_t NVIC_IRQChannel; #define NVIC_PriorityGroup_1 uint8_t NVIC_IRQChannelPreemptionPriority;#define NVIC_PriorityGroup_2 uint8_t NVIC_IRQChannelSubPriority; #define NVIC_PriorityGroup_3 FunctionalState NVIC_IRQChannelCmd; #define NVIC_PriorityGroup_4 NVIC_InitTypeDef; AFIO相关类型名 typedef struct _IO uint32_t EVCR; _IO uint32_t MAPR; _IO uint32_t EXTICR4; _IO uint32_t MAPR2; AFIO_TypeDef;USART篇USART相关寄存器状态寄存器USART_SR反映USART单元状态数据寄存器USART_DR用于保存接收或发送的数据波特比率寄存器USART_BRR用于设置USART的波特率控制寄存器1USART_CR1用于控制USART控制寄存器2USART_CR2用于控制USART控制寄存器3USART_CR3用于控制USART保护时间和预分频寄存器USART_GTPR保护时间和预分频USART相关库函数stm32f10x_usart.hvoid USART_Init(); 串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能void USART_Cmd();使能串口void USART_ITConfig();使能相关中断void USART_SendData();发送数据到串口,DRvoid USART_ClearFlag();清除状态标志位void USART_ClearITPendingBit();清除中断状态标志位uint16_t USART_ReceiveData();接受数据,从DR读取接受到的数据FlagStatus USART_GetFlagStatus();获取状态标志位ITStatus USART_GetITStatus();获取中断状态标志位USART_DeInit(); 串口复位FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);串口传输状态获取USART相关类型名typedef struct p168typedef struct _IO uint16_t SR; uint32_t USART_BaudRate; 波特率 _IO uint16_t DR; uint16_t USART_WordLength; 字长 _IO uint16_t BRR; uint16_t USART_StopBits; 停止位长度 _IO uint16_t CR1; uint16_t USART_Parity; 奇偶校验_IO uint16_t CR2; uint16_t USART_Mode; 接收或发送模式 _IO uint16_t CR3; uint16_t USART_HardwareFlowControl; 硬件流控制_IO uint16_t GTPR; USART_InitTypeDef; USART_TypeDef;typedef enum DISABLE = 0, ENABLE = !DISABLE FunctionalState;USART_IT取值 #define USART_IT_PE #define USART_IT_IDLE #define USART_IT_ORE #define USART_IT_TXE #define USART_IT_LBD #define USART_IT_NE #define USART_IT_TC #define USART_IT_CTS #define USART_IT_FE #define USART_IT_RXNE #define USART_IT_ERR USART_FLAG取值typedef struct p169#define USART_FLAG_CTS #define USART_FLAG_IDLE uint16_t USART_Clock #define USART_FLAG_LBD #define USART_FLAG_ORE uint16_t USART_CPOL;#define USART_FLAG_TXE #define USART_FLAG_NE uint16_t USART_CPHA; #define USART_FLAG_TC #define USART_FLAG_FE uint16_t USART_LastBit; #define USART_FLAG_RXNE #define USART_FLAG_PE USART_ClockInitTypeDef; 通用定时器篇TIMx相关寄存器 p189 计数器当前值寄存器 CNT预分频寄存器 TIMx_PSC自动重装载寄存器 TIMx_ARR控制寄存器1 TIMx_CR1控制寄存器2 TIMx_CR2DMA中断使能寄存器 TIMx_DIERTIMx相关库函数 stm32f10x_tim.hvoid TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct); 定时器参数初始化void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState) 定时器使能函数状态标志位获取和清除FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT);void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT); TIMx相关类型名 TIM_TypeDef p191typedef struct TIM_IT取值 #define TIM_IT_Update #define TIM_IT_CC4 uint16_t TIM_Prescaler; #define TIM_IT_CC1 #define TIM_IT_COM uint16_t TIM_CounterMode; #define TIM_IT_CC2 #define TIM_IT_Trigger uint16_t TIM_Period; #define TIM_IT_CC3 #define TIM_IT_Break uint16_t TIM_ClockDivision; uint8_t TIM_RepetitionCounter; TIM_TimeBaseInitTypeDef; TIM_FLAG取值#define TIM_FLAG_Update #define TIM_FLAG_CC4 #define TIM_FLAG_CC1OF #define TIM_FLAG_CC1 #define TIM_FLAG_COM #define TIM_FLAG_CC2OF #define TIM_FLAG_CC2 #define TIM_FLAG_Trigger #define TIM_FLAG_CC3OF #define TIM_FLAG_CC3 #define TIM_FLAG_Break #define TIM_FLAG_CC4OF RTC篇RTC相关寄存器 P210RTC控制寄存器 (RTC_CRH, RTC_CRL)RTC预分频装载寄存器 (RTC_PRLH, RTC_PRLL)RTC预分频余数寄存器 (RTC_DIVH, RTC_DIVL)RTC计数器寄存器 (RTC_CNTH, RTC_CNTL)RTC闹钟寄存器 (RTC_ALRH ,RTC_ALRL) 备份寄存器 BKP_DRx(x=1142) RTC相关库函数 stm32f10x_rtc.h stm32f10x_pwr.h stm32f10x_rcc.h stm32f10x_bkp.hvoid RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState); RTC中断设置函数void RTC_EnterConfigMode(void); 允许RTC配置 :CRL位 CNFvoid RTC_ExitConfigMode(void); 退出配置模式: CRL位 CNFvoid RTC_SetCounter(uint32_t CounterValue); 设置计数器值:CNTH/CNTLvoid RTC_SetPrescaler(uint32_t PrescalerValue); 预分频配置:PRLH/PRLLvoid RTC_SetAlarm(uint32_t AlarmValue); 闹钟设置:ALRH/ALRLvoid RTC_WaitForLastTask(void); 等待上次操作完成:CRL位RTOFFvoid RTC_WaitForSynchro(void); 等待时钟同步: CRL位RSFvoid RTC_ClearITPendingBit(uint16_t RTC_IT); void RTC_ClearFlag(ui

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论