STM32相关知识点总结讲解_第1页
STM32相关知识点总结讲解_第2页
STM32相关知识点总结讲解_第3页
STM32相关知识点总结讲解_第4页
STM32相关知识点总结讲解_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、GPIO 篇GPIO寄存器端口配置低位寄存器CRL;32位端口配置高位寄存器CRH;32位端口输入数据寄存器IDR;32位端口输出数据寄存器ODR;32位置位/复位寄存器BSRR;32位复位寄存器BRR;16位锁定内存命LCKR;32位GPIO库函数stm32f10x_gpio.hvoid GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);void GPIO_ResetBits(GPIO_TypeD

2、ef* 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);typedef structuint16_t GPIO_Pin;GPIOSpeed_TypeDef GPIO_Speed;GPIOMode_TypeDef GPIO_Mode; GPIO_InitTypeDef;typedef enum Bit_RESET = 0,Bit_S

3、ET BitAction;GPIO相关类型名typedef struct_IO uint32_t CRL;_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#define GPIO_Pin_1#define GPIO_Pin_2#define GPIO_Pin_3#define GPIO_Pin_4#define GPIO_Pin_5#define GP

4、IO_Pin_6#define GPIO_Pin_7#define GPIO_Pin_8#define GPIO_Pin_9#define GPIO_Pin_10#define GPIO_Pin_11#define GPIO_Pin_12#define GPIO_Pin_13#define GPIO_Pin_14#define GPIO_Pin_ 15#define GPIO_Pin_All中断篇NVIC相关寄存器AIRCR寄存器P139中断使能设置寄存器ISERVECTKEY31:16DR/W中断使能清除寄存器ICERENDIANESS15DR中断悬挂设置寄存器ISPRPRIGROUP10:

5、8DR/W中断悬挂清除寄存器ICPRSYSRESETREQ2DW中断激活位寄存器IABRVECTCLRACTIVE1DW中断优先级寄存器IPVECTRESET0DW软件触发中断寄存器STIRTVOR寄存器 P138TBLBASE29 段 R/WTBLOFF28:7段 R 向量表起始地址EXTI相关寄存器中断屏蔽寄存器事件屏蔽寄存器上升沿触发选择寄存器 下降沿触发选择寄存器 软件中断事件寄存器 挂起寄存器EXTI_IMR EXTI_EMR EXTI_RTSR EXTI_FTSR EXTI_SWIER EXTIPR设置是否屏蔽中断请求线上的中断请求 设置是否屏蔽事件请求线上的中断请求 设置是否用上

6、升沿来触发中断和事件 设置是否用下降沿来触发中断和事件 用于软件触发中断/事件用于保存中断/事件请求线上是否有请求AFIO寄存器AFIO_EVCRAFIO_EXTICRxAFIO_MAPR事件控制寄存器外部中断配置寄存器复用重映射和调试I/O配置寄存器系统控制寄存器SCB p138EXTI 相关库函数stm32f10x_exti.hvoid GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);设置IO 口与中断线的映射关系void EXTI_Init(EXTI_InitTypeDef* EXTI_InitSt

7、ruct);ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);void EXTI_ClearITPendingBit(uint32_t EXTI_Line);初始化中断线:触发方式等 判断中断线中断状态,是否发生 清除中断线上的中断标志位AFIO相关函数stm32f10x_rcc.hstm32f10x_gpio.h使能AFIO时钟开启重映射RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);根据第一个参数,来

8、确定是部分重映射还是全部重映射NVIC相关函数corecm3.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_ClearPending

9、IRQ(IRQn_Type IRQn) static _INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn)中断优先级分组函数 中断参数初始化函数 挂起中断解挂中断IABREXTI相关类型名GPIO_PortSource 取值#define GPIO_PortSourceGPIOA#define GPIO_PortSourceGPIOB#define GPIO_PortSourceGPIOC#define GPIO_PortSourceGPIOD#define GPIO_PortSourceGPIOE#define GPIO_PortSourceGPIO

10、Ftypedef structuint32_t EXTI_Line;EXTIMode_TypeDef EXTI_Mode;EXTITrigger_TypeDef EXTI_Trigger FunctionalState EXTI_LineCmd; EXTI_InitTypeDef;GPIO_PinSource 取值#defineGPIO_PinSource0#define GPIO_PinSource1#define GPIO_PinSource2#define GPIO_PinSource3#define GPIO_PinSource4#define GPIO_PinSource5#defi

11、ne GPIO_PinSource6#defineGPIO_PinSource7#define GPIO_PinSource8#define GPIO_PinSource9#define GPIO_PinSource10#define GPIO_PinSource11#define GPIO_PinSource12#define GPIO_PinSource13#define GPIO_PinSource14#define GPIO_PinSource15EXTI_Line 取值#define EXTI_Line0#define EXTI_Line1#define EXTI_Line2#def

12、ine EXTI_Line3#define EXTI_Line4#define EXTI_Line5#define EXTI_Line6#define EXTI_Line7#define EXTI_Line8#define EXTI_Line9#define EXTI_Line10#define EXTI_Line11#define EXTI_Line12#define EXTI_Line13#define EXTI_Line14#define EXTI_Line15#define EXTI_Line16#define EXTI_Line17#define EXTI_Line18#define

13、 EXTI_Line19typedef struct_IO uint32_t IMR;_IO uint32_t EMR;_IO uint32_t RTSR;_IO uint32_t FTSR;typedef enumEXTI_Mode_Interrupt = 0x00, EXTI_Mode_Event = 0x04 EXTIMode_TypeDef;typedef enump145 EXTI_Trigger_Rising = 0x08, EXTI_Trigger_Falling = 0x0C,EXTI_Trigger_Rising_Falling = 0x10 EXTITrigger_Type

14、Def;IO uint32_t SWIER;IO uint32_t PR; EXTI_TypeDef;NVIC相关类型名NVIC_PriorityGroup 取值#define NVIC_PriorityGroup_0#define NVIC_PriorityGroup_1#define NVIC_PriorityGroup_2#define NVIC_PriorityGroup_3#define NVIC_PriorityGroup_4typedef struct(uint8_t NVIC_IRQChannel;uint8_t NVIC_IRQChannelPreemptionPriorit

15、y;uint8_t NVIC_IRQChannelSubPriority;FunctionalState NVIC_IRQChannelCmd; 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的波特率控

16、制寄存器1USART_CR1用于控制USART控制寄存器2USART_CR2用于控制USART控制寄存器3USART_CR3用于控制USART保护时间和预分频寄存器USART GTPR保护时间和预分频USART 相关库函数stm32f10x_usart.h串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能void USART_Init();void USART_Cmd();void USART_ITConfig();void USART_SendData();void USART_ClearFlag();void USART_ClearITPendingBit();uint16_tU

17、SART_ReceiveData();FlagStatus USART_GetFlagStatus();ITStatusUSART_GetITStatus();USART_DeInit();使能串口使能相关中断发送数据到串口, DR清除状态标志位清除中断状态标志位接受数据,从 DR读取接受到的数据获取状态标志位获取中断状态标志位串口复位FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint

18、16_t USART_IT);串口传输状态获取USART相关类型名typedef struct p168(uint32_t USART_BaudRate;波特率uint16_t USART_WordLength;字长uint16_t USART_StopBits;停止位长度uint16_t USART_Parity;奇偶校验uint16_t USART_Mode;接收或发送模式uint16_t USART_HardwareFlowControl;硬件流控制 USART_InitTypeDef;typedef enum DISABLE = 0, ENABLE = !DISABLEtypedef

19、struct _IO uint16_t SR;_IO uint16_t DR;_IO uint16_t BRR;_IO uint16_t CR1;_IO uint16_t CR2;_IO uint16_t CR3;_IO uint16_t GTPR; USART_TypeDef;FunctionalState;#define USART_IT_PE#define USART_IT_TXE#define USART_IT_TC#define USART_IT_RXNEUSART_FLAG 取值#define USART_FLAG_CTS#define USART_FLAG_LBD#define

20、USART_FLAG_TXE#define USART_FLAG_TC#define USART_FLAG_RXNE#define USART_IT_IDLE#define USART_IT_LBD#define USART_IT_CTS#define USART_IT_ERR#define USART_FLAG_IDLE#define USART_FLAG_ORE#define USART_FLAG_NE#define USART_FLAG_FE#define USART_FLAG_PE通用定时器篇#define USART_IT_ORE#define USART_IT_NE#define

21、USART_IT_FEtypedef struct p169 uint16_t USART_Clock uint16_t USART_CPOL; uint16_t USART_CPHA; uint16_t USART_LastBit; USART_ClockInitTypeDef;USARTIT 取值TIMx相关寄存器 p189计数器当前值寄存器 CNT预分频寄存器TIMx_PSC自动重装载寄存器TIMx_ARR控制寄存器1TIMx_CR1控制寄存器2TIMx_CR2DMA 中断使能寄存器 TIMx DIERTIMx相关库函数stm32f10x_tim.h void TIM_TimeBaseI

22、nit(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_GetITSta

23、tus(TIM_TypeDef* TIMx, uint16_t TIM_IT);void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT);TIMx相关类型名TIM_TypeDef p191typedef structuint16_t TIM_Prescaler;uint16_t TIM_CounterMode;uint16_t TIM_Period;uint16_t TIM_ClockDivision;uint8_t TIM_RepetitionCounter; TIM_TimeBaseInitTypeDef;TIM_FLAG

24、 取值#define TIM_FLAG_Update#define TIM_FLAG_CC1#define TIM_FLAG_CC2#define TIM_FLAG_CC3TIM_IT取值#define TIM_IT_Update#define TIM_IT_CC1#define TIM_IT_CC2#define TIM_IT_CC3#define TIM_IT_CC4#define TIM_IT_COM#define TIM_IT_Trigger#define TIM_IT_BreakRTC相关寄存器RTC控制寄存器RTC预分频装载寄存器RTC预分频余数寄存器RTC计数器寄存器RTC闹钟寄

25、存器#define TIM_FLAG_CC4#define TIM_FLAG_COM #define TIM_FLAG_Trigger#define TIM_FLAG_BreakRTC篇P210(RTC_CRH ,RTC_CRL)(RTC_PRLH ,RTC_PRLL)(RTC_DIVH ,RTC_DIVL)(RTC_CNTH ,RTC_CNTL)(RTC_ALRH , RTC_ALRL)#define TIM_FLAG_CC1OF#define TIM_FLAG_CC2OF#define TIM_FLAG_CC3OF#define TIM_FLAG_CC4OF备份寄存器BKP_DRx(x=1

26、142)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

提交评论