STM32微控制器寄存器说明

合集下载

stm32F103寄存器

stm32F103寄存器

313029282726252423222120191817151413121110987654321DBP PVDE CSBF CWUF PDDS313029282726252423222120191817151413121110987654321EWUP PVDO SBF151413121110987654321151413121110987654321注:当WKUP 引脚已经是高电平时,在(通过设置EWUP 位)使能WKUP 引脚时,会检测到一个额外事件BKP ——DRx (x=1...10)(备份数据寄存器)15-0位:备份数据由用户来写数据。

注:BKP ——DRx 寄存器不会被系统复位,电源复位,待机唤醒所复位它可以由备份域复位来复位或(如果入侵检测引脚TAMPER 功能被开启时)由浸入引脚事件复位BKP_RTCCR (RTC 时钟校准寄存器)注:复位时清除这一位2位:PVDO-PVD 输出(当PVD 被PVDE 位使能后该位才有效)定义:0(VDD/VDDA 高于PLS[2-0]选定的PVD 阀值),1(VDD/VDDA 低于PLS[2-0]选定的PVD 阀值) 注:在待机模式下PVD 被停止,因此,待机模式后或复位后,直到设置PVDE 位之前,该位为01位:SBF 待机标志位(该位由硬件设置,并只能由POR/PDR (上电/掉电复位)或设置电源控制寄存器(PWR_CR )的CSBUF 位清除)定义:0(不在待机)1(已待机)0位:WUF 唤醒标志(该位由硬件设置,并只能由POR/PDR (上电/掉电复位)或设置电源控制寄存器(PWR_CR )的CWUF 位清除)定义:0(没有唤醒事件),1(在WKUP 引脚上发生唤醒事件或出现RTC 脑中事件)3位:CSBF 清除待机位(始终输出为0)定义:0(无功效),1(清除SBF 待机位(写)2位:CWUF 清除唤醒位(始终输出为0)定义:0(无功效),1(2个系统时钟周期后清除WUF 唤醒位(写)1位:PDDS 掉电深睡眠(与LPDS 位协同操作)定义:0(当CPU 进入深睡眠时进入停机模式,调压器状态由LPDS 位控制),1(CPU 进入深睡眠时进入待机模式)8位:EWUP 使能WKUP 引脚。

STM32单片机GPIO寄存器的功能解析

STM32单片机GPIO寄存器的功能解析

STM32单片机GPIO寄存器的功能解析1、GPIO的寄存器按照功能可以分为以下几类:A、配置寄存器B、数据寄存器C、位寄存器D、锁定寄存器2、对于GPIO端口,每个端口有16个引脚,每个引脚的模式由寄存器的四个位控制,每四位又分为两位控制引脚配置(CNFy[1:0]),两位控制引脚的模式及最高速度(MODEy [1:0]),其中y表示第y个引脚。

配置GPIO引脚模式的一共有两个寄存器,CRH是高寄存器,用来配置高8位引脚,还有CRL配置低八位引脚。

3、端口位设置\清除寄存器(GPIOx_BSRR)一个引脚y的输出数据由GPIOx_BSRR寄存器位的2个位来控制分别为BRy (Bit Reset y)和BSy (Bit Set y),BRy位用于写1清零,使引脚输出低电平,BSy位用来写1置1,使引脚输出高电平。

而对这两个位进行写零都是无效的。

4、Cortex-M3有32根地址线,所以它的寻址空间大小为2 bit=4GB。

ARM公司设计时,预先把这4GB的寻址空间大致地分配好了。

它把地址从0x4000 0000至0x5FFF FFFF(512MB )的地址分配给片上外设。

5、stm32f10x.h这个文件中重要的内容就是把STM32的所有寄存器进行地址映射。

如同51单片机的头文件一样,stm32f10x.h像一个大表格,我们在使用的时候就是通过宏定义进行类似查表的操作。

6、STM32总线有AHB总线、APB2总线、APB1总线7、时钟系统。

A、从时钟频率来说分为告诉时钟和低速时钟,高速时钟是提供给芯片主体时钟,而低速时钟只是提供给芯片中的RTC及独立看门狗使用。

B、从芯片角度来说,时钟源分为内部时钟与外部时钟源,内部时钟是在芯片内部RC振。

STM32f103寄存器说明

STM32f103寄存器说明

CRC寄存器(一种算法,用以确认发送过程中是否出错)数据寄存器:CRC_DR可读写,复位值:0xFFFF FFFF;独立数据寄存器:CRC_IDR临时存放任何8位数据;控制寄存器:CRC_CR只零位可用,用于复位CRC,对其写1复位,由硬件清零;PWR电源控制(控制和管理电源)电源控制寄存器:PWR_CR控制选择系统的电源电源控制/状态寄存器:PWR_CSR睡眠或待机模式电源控制BKP备份寄存器(用以控制和管理备份数据)备份数据寄存器x:BKP_DRx (x = 1 … 10) 10个16位数据寄存器用以存储用户数据RTC时钟校准寄存器:BKP_RTCCR控制实时时钟的运行备份控制寄存器:BKP_CR控制选择清除备份数据的类型备份控制/状态寄存器:BKP_CSR对侵入事件的控制RCC寄存器(时钟的选择、复位、分频)时钟控制寄存器(RCC_CR)各时钟状态显示时钟配置寄存器(RCC_CFGR)时钟分频时钟中断寄存器(RCC_CIR)控制就绪中断使能与否APB2外设复位寄存器(RCC_APB2RSTR) APB1外设复位寄存器(RCC_APB1RSTR) 复位APB各功能寄存器AHB外设时钟使能寄存器(RCC_AHBENR) AHB时钟使能控制APB2外设时钟使能寄存器(RCC_APB2ENR) APB1外设时钟使能寄存器(RCC_APB1ENR) APB1时钟使能控制备份域控制寄存器(RCC_BDCR)备份域时钟控制控制/状态寄存器(RCC_CSR)复位标志寄存器AHB外设时钟复位寄存器(RCC_AHBRSTR) 复位以太网MAC模块时钟配置寄存器2(RCC_CFGR2)时钟选择与分频GPIO寄存器(设置端口的功能)端口配置低寄存器(GPIOx_CRL) (x=A..E)端口配置高寄存器(GPIOx_CRH) (x=A..E)端口输入数据寄存器(GPIOx_IDR) (x=A..E)只读数据,读出IO口的状态端口输出数据寄存器(GPIOx_ODR) (x=A..E) 可读可写端口位设置/清除寄存器(GPIOx_BSRR) (x=A..E)端口位清除寄存器(GPIOx_BRR) (x=A..E)将某一端口清零端口配置锁定寄存器(GPIOx_LCKR) (x=A..E) 用于保护端口配值AFIO寄存器(将端口重映射到其它端口用以端口的第二功能)事件控制寄存器(AFIO_EVCR)选择时间输出端口与引脚复用重映射和调试I/O配置寄存器(AFIO_MAPR) 各寄存器功能引脚重映射选择外部中断配置寄存器1(AFIO_EXTICR1)外部中断配置寄存器2(AFIO_EXTICR2)外部中断配置寄存器3(AFIO_EXTICR3) 外部中断配置寄存器4(AFIO_EXTICR4) 外部中断引脚重映射选择EXTI 寄存器(外部中断控制器)中断屏蔽寄存器(EXTI_IMR)用于屏蔽或开放某一引脚的中断请求事件屏蔽寄存器(EXTI_EMR)用于屏蔽或开放某一引脚的事件上升沿触发选择寄存器(EXTI_RTSR) 禁止或允许某一引脚的上升沿触发下降沿触发选择寄存器(EXTI_FTSR) 禁止或允许某一引脚的下降沿触发软件中断事件寄存器(EXTI_SWIER) 控制某引脚的软件中断挂起寄存器(EXTI_PR)显示某线的引脚有无触发请求DMA寄存器(脱离cpu的传输模式)DMA中断状态寄存器(DMA_ISR)中断情况标志器DMA中断标志清除寄存器(DMA_IFCR) 手动清除标志位DMA通道x配置寄存器(DMA_CCRx)(x = 1…7)传输控制寄存器DMA通道x传输数量寄存器(DMA_CNDTRx)(x = 1…7)数据传输剩余数量存储器DMA通道x外设地址寄存器(DMA_CPARx)(x = 1…7)设置数据传输外设源或目标地址DMA通道x存储器地址寄存器(DMA_CMARx)(x = 1…7)设置存储器地址ADC寄存器(模数转换器)ADC状态寄存器(ADC_SR)AD转换标志寄存器ADC控制寄存器1(ADC_CR1)ADC控制寄存器2(ADC_CR2)设置AD转换的各种功能ADC采样时间寄存器1(ADC_SMPR1)ADC采样时间寄存器2(ADC_SMPR2)某通道选择固定的采样时间ADC注入通道数据偏移寄存器x (ADC_JOFRx)(x=1..4) 设置数据偏移量ADC看门狗高阀值寄存器(ADC_HTR)设置模拟看门狗的阀值高限ADC看门狗低阀值寄存器(ADC_LRT)设置模拟看门狗的阀值低限ADC规则序列寄存器1(ADC_SQR1)ADC规则序列寄存器2(ADC_SQR2)ADC规则序列寄存器3(ADC_SQR3)设置ADC顺序ADC注入序列寄存器(ADC_JSQR)ADC 注入数据寄存器x (ADC_JDRx) (x= 1..4)ADC数据结果寄存器ADC规则数据寄存器(ADC_DR)DAC寄存器(数模转换器)DAC控制寄存器(DAC_CR)DAC软件触发寄存器(DAC_SWTRIGR)DAC通道1的12位右对齐数据保持寄存器(DAC_DHR12R1) DAC通道1的12位左对齐数据保持寄存器(DAC_DHR12L1) DAC通道1的8位右对齐数据保持寄存器(DAC_DHR8R1) DAC通道2的12位右对齐数据保持寄存器(DAC_DHR12R2) DAC通道2的12位左对齐数据保持寄存器(DAC_DHR12L2) DAC通道2的8位右对齐数据保持寄存器(DAC_DHR8R2)双DAC的12位右对齐数据保持寄存器(DAC_DHR12RD)双DAC的12位左对齐数据保持寄存器(DAC_DHR12LD)双DAC的8位右对齐数据保持寄存器(DAC_DHR8RD) DAC通道1数据输出寄存器(DAC_DOR1)DAC通道2数据输出寄存器(DAC_DOR2)TIM1和TIM8寄存器(高级的定时计数寄存器)TIM1和TIM8控制寄存器1(TIMx_CR1)TIM1和TIM8控制寄存器2(TIMx_CR2)TIM1和TIM8从模式控制寄存器(TIMx_SMCR)TIM1和TIM8 DMA/中断使能寄存器(TIMx_DIER) TIM1和TIM8状态寄存器(TIMx_SR)TIM1和TIM8事件产生寄存器(TIMx_EGR)TIM1和TIM8捕获/比较模式寄存器1(TIMx_CCMR1) TIM1和TIM8捕获/比较模式寄存器2(TIMx_CCMR2) TIM1和TIM8捕获/比较使能寄存器(TIMx_CCER) TIM1和TIM8计数器(TIMx_CNT)TIM1和TIM8预分频器(TIMx_PSC)TIM1和TIM8自动重装载寄存器(TIMx_ARR)TIM1和TIM8重复计数寄存器(TIMx_RCR)TIM1和TIM8捕获/比较寄存器1(TIMx_CCR1)TIM1和TIM8捕获/比较寄存器2(TIMx_CCR2)TIM1和TIM8捕获/比较寄存器3(TIMx_CCR3)TIM1和TIM8捕获/比较寄存器(TIMx_CCR4)TIM1和TIM8刹车和死区寄存器(TIMx_BDTR)TIM1和TIM8 DMA控制寄存器(TIMx_DCR)TIM1和TIM8连续模式的DMA地址(TIMx_DMAR)TIMx寄存器(控制定时器)控制寄存器1(TIMx_CR1)控制寄存器2(TIMx_CR2)从模式控制寄存器(TIMx_SMCR)DMA/中断使能寄存器(TIMx_DIER)状态寄存器(TIMx_SR)事件产生寄存器(TIMx_EGR)捕获/比较模式寄存器1(TIMx_CCMR1)捕获/比较模式寄存器2(TIMx_CCMR2)捕获/比较使能寄存器(TIMx_CCER)计数器(TIMx_CNT)预分频器(TIMx_PSC)自动重装载寄存器(TIMx_ARR)捕获/比较寄存器1(TIMx_CCR1)捕获/比较寄存器2(TIMx_CCR2)捕获/比较寄存器3(TIMx_CCR3)捕获/比较寄存器4(TIMx_CCR4)DMA控制寄存器(TIMx_DCR)连续模式的DMA地址(TIMx_DMAR)TIM6和TIM7寄存器(基本定时计数器)TIM6和TIM7控制寄存器1(TIMx_CR1)TIM6和TIM7控制寄存器2(TIMx_CR2)TIM6和TIM7 DMA/中断使能寄存器(TIMx_DIER)TIM6和TIM7状态寄存器(TIMx_SR)TIM6和TIM7事件产生寄存器(TIMx_EGR)TIM6和TIM7计数器(TIMx_CNT)TIM6和TIM7预分频器(TIMx_PSC)TIM6和TIM7自动重装载寄存器(TIMx_ARR)RTC寄存器(实时时钟)RTC控制寄存器高位(RTC_CRH)RTC控制寄存器低位(RTC_CRL)16.4.3 RTC预分频装载寄存器(RTC_PRLH/RTC_PRLL) 16.4.4 RTC预分频器余数寄存器(RTC_DIVH / RTC_DIVL)RTC计数器寄存器(RTC_CNTH / RTC_CNTL) 16.4.6 RTC闹钟寄存器(RTC_ALRH/RTC_ALRL)IWDG寄存器(独立看门狗,用以监督系统硬件的正常运行)键寄存器(IWDG_KR)预分频寄存器(IWDG_PR)重装载寄存器(IWDG_RLR)状态寄存器(IWDG_SR)窗口看门狗(WWDG)寄存器(用以监督软件的正常运行)控制寄存器(WWDG_CR)配置寄存器(WWDG_CFR)状态寄存器(WWDG_SR)FSMC寄存器(可变静态存储控制器)NOR闪存和PSRAM控制器寄存器SRAM/NOR闪存片选控制寄存器1…4 (FSMC_BCR1…4)SRAM/NOR闪存片选时序寄存器1…4 (FSMC_BTR1…4) SRAM/NOR闪存写时序寄存器1…4 (FSMC_BWTR1…4)NAND闪存和PC卡控制器寄存器PC卡/NAND闪存控制寄存器2..4 (FSMC_PCR2..4) FIFO状态和中断寄存器2..4 (FSMC_SR2..4)通用存储空间时序寄存器 2..4 (FSMC_PMEM2..4)属性存储空间时序寄存器 2..4 (FSMC_PATT2..4)I/O空间时序寄存器4 (FSMC_PIO4)ECC结果寄存器2/3 (FSMC_ECCR2/3)SDIO寄存器(数据传输控制器)SDIO电源控制寄存器(SDIO_POWER) SDIO时钟控制寄存器(SDIO_CLKCR) SDIO参数寄存器(SDIO_ARG)SDIO命令寄存器(SDIO_CMD)SDIO命令响应寄存器(SDIO_RESPCMD) SDIO响应1..4寄存器(SDIO_RESPx) SDIO数据定时器寄存器(SDIO_DTIMER) SDIO数据长度寄存器(SDIO_DLEN)SDIO数据控制寄存器(SDIO_DCTRL SDIO数据计数器寄存器(SDIO_DCOUNT) SDIO状态寄存器(SDIO_STA)SDIO清除中断寄存器(SDIO_ICR)SDIO中断屏蔽寄存器(SDIO_MASK)SDIO FIFO计数器寄存器(SDIO_FIFOCNT) SDIO数据FIFO寄存器(SDIO_FIFO)USB寄存器(usb传输控制器)通用寄存器USB控制寄存器(USB_CNTR)USB中断状态寄存器(USB_ISTR)USB帧编号寄存器(USB_FNR)USB设备地址寄存器(USB_DADDR)USB分组缓冲区描述表地址寄存器(USB_BTABLE)端点寄存器USB 端点n寄存器(USB_EPnR), n=[0..7]缓冲区寄存器发送缓冲区地址寄存器n(USB_ADDRn_TX)发送数据字节数寄存器n(USB_COUNTn_TX)接收缓冲区地址寄存器n(USB_ADDRn_RX)接收数据字节数寄存器n(USB_COUNTn_RX)CAN 寄存器(邮箱控制寄存器)CAN控制和状态寄存器CAN主控制寄存器(CAN_MCR)CAN主状态寄存器(CAN_MSR)CAN发送状态寄存器(CAN_TSR)CAN接收FIFO 0寄存器(CAN_RF0R)CAN接收FIFO 1寄存器(CAN_RF1R)CAN中断使能寄存器(CAN_IER)CAN错误状态寄存器(CAN_ESR)CAN位时序寄存器(CAN_BTR)CAN邮箱寄存器发送邮箱标识符寄存器(CAN_TIxR) (x=0..2)发送邮箱数据长度和时间戳寄存器(CAN_TDTxR) (x=0..2)发送邮箱低字节数据寄存器(CAN_TDLxR) (x=0..2)发送邮箱高字节数据寄存器(CAN_TDHxR) (x=0..2)接收FIFO邮箱标识符寄存器(CAN_RIxR) (x=0..1)接收FIFO邮箱数据长度和时间戳寄存器(CAN_RDTxR) (x=0..1)接收FIFO邮箱低字节数据寄存器(CAN_RDLxR) (x=0..1)接收FIFO邮箱高字节数据寄存器(CAN_RDHxR) (x=0..1)CAN过滤器寄存器CAN 过滤器主控寄存器(CAN_FMR)CAN 过滤器模式寄存器(CAN_FM1R)CAN 过滤器位宽寄存器(CAN_FS1R)CAN 过滤器FIFO关联寄存器(CAN_FFA1R)CAN 过滤器激活寄存器(CAN_FA1R)CAN 过滤器组i的寄存器x (CAN_FiRx) (互联产品中i=0..27,其它产品中i=0..13;x=1..2)SPI和I2S寄存器(串行外设接口控制器)SPI控制寄存器1(SPI_CR1)SPI控制寄存器2(SPI_CR2)SPI 状态寄存器(SPI_SR)SPI 数据寄存器(SPI_DR)SPI CRC多项式寄存器(SPI_CRCPR)SPI Rx CRC寄存器(SPI_RXCRCR)SPI Tx CRC寄存器(SPI_TXCRCR)SPI_I2S配置寄存器(SPI_I2S_CFGR)SPI_I2S预分频寄存器(SPI_I2SPR)I2C寄存器(数据传输寄存器)控制寄存器1(I2C_CR1)控制寄存器2(I2C_CR2)自身地址寄存器1(I2C_OAR1)自身地址寄存器2(I2C_OAR2)数据寄存器(I2C_DR)状态寄存器1(I2C_SR1)状态寄存器2 (I2C_SR2)时钟控制寄存器(I2C_CCR)TRISE寄存器(I2C_TRISE)USART寄存器(通用同步异步收发器)状态寄存器(USART_SR)数据寄存器(USART_DR)波特比率寄存器(USART_BRR)控制寄存器1(USART_CR1)控制寄存器2(USART_CR2)控制寄存器3(USART_CR3)保护时间和预分频寄存器(USART_GTPR)OTG_FS控制和状态寄存器(数据传输控制器)OTG_FS全局寄存器OTG_FS控制和状态寄存器(OTG_FS_GOTGCTL)OTG_FS中断寄存器(OTG_FS_GOTGINT)OTG_FS AHB配置寄存器(OTG_FS_GAHBCFG)OTG_FS_USB配置寄存器(OTG_FS_GUSBCFG)OTG_FS复位寄存器(OTG_FS_GRSTCTL)OTG_FS控制器中断寄存器(OTG_FS_GINTSTS)OTG_FS中断屏蔽寄存器(OTG_FS_GINTMSK)OTG_FS接收状态调试读/OTG状态读和POP寄存器(OTG_FS_GRXSTSR / OTG_FS_GRXSTSP)OTG_FS接收FIFO长度寄存器(OTG_FS_GRXFSIZ)OTG_FS非周期性TX FIFO长度寄存器(OTG_FS_GNPTXFSIZ)OTG_FS非周期性TX FIFO/请求队列状态寄存器(OTG_FS_GNPTXSTS)OTG_FS通用控制器配置寄存器(OTG_FS_GCCFG)OTG_FS控制器ID寄存器(OTG_FS_CID)OTG_FS主机周期性发送FIFO长度寄存器(OTG_FS_HPTXFSIZ)OTG_FS设备IN端点发送FIFO长度寄存器(OTG_FS_DIEPTXFx)(其中x是FIFO的编号,x=1…4)主机模式下的寄存器OTG_FS主机模式配置寄存器(OTG_FS_HCFG)OTG_FS主机帧间隔寄存器(OTG_FS_HFIR)OTG_FS主机帧号/帧时间剩余寄存器(OTG_FS_HFNUM)OTG_FS主机周期性发送FIFO/请求队列寄存器(OTG_FS_HPTXSTS)OTG_FS主机所有通道中断寄存器(OTG_FS_HAINT)OTG_FS主机所有通道中断屏蔽寄存器(OTG_FS_HAINTMSK)OTG_FS主机端口控制和状态寄存器(OTG_FS_HPRT)OTG_FS主机通道x特性寄存器(OTG_FS_HCCHARx)(此处x代码通道号,x = 0...7)OTG_FS主机通道x中断寄存器(OTG_FS_HCINTx)(其中x代表通道号,x=0...7,)OTG_FS主机通道x中断屏蔽寄存器(OTG_FS_HCINTMSKx)(其中x为通道号,x=0...7) OTG_FS主机通道x传输长度寄存器(OTG_FS_HCTSIZx)(其中x为通道号,x=0...7)设备模式下的寄存器OTG_FS设备配置寄存器(OTG_FS_DCFG)OTG_FS设备控制寄存器(OTG_FS_DCTL)OTG_FS设备状态寄存器(OTG_FS_DSTS)OTG_FS设备IN端点通用中断屏蔽寄存器(OTG_FS_DIEPMSK)OTG_FS设备OUT端点通用中断屏蔽寄存器(OTG_FS_DOEPMSK)OTG_FS设备所有端点中断寄存器(OTG_FS_DAINT)OTG_FS所有端点中断屏蔽寄存器(OTG_FS_DAINTMSK)OTG_FS设备V BUS放电时间寄存器(OTG_FS_DVBUSDIS)OTG_FS设备V BUS脉冲时间寄存器(OTG_FS_DVBUSPULSE)OTG_FS设备IN端点FIFO空中断屏蔽寄存器(OTG_FS_DIEPEMPMSK)OTG_FS设备控制IN端点0控制寄存器(OTG_FS_DIEPCTL0)OTG设备端点x控制寄存器(OTG_FS_DIEPCTLx)(其中x为端点号,x=1…3)OTG_FS设备控制OUT端点0控制寄存器(OTG_FS_DOEPCTL0)OTG_FS设备OUT端点x控制寄存器(OTG_FS_DOEPCTLx)(其中x为端点号,x=1…3) OTG_FS设备端点x中断寄存器(OTG_FS_DIEPINTx)(其中x为端点号,x=0…3)OTG_FS设备端点x中断寄存器(OTG_FS_DOEPINTx)(其中x为端点号,x=0…3)OTG_FS设备IN端点0传输长度寄存器(OTG_FS_DIEPTSIZ0)OTG_FS设备OUT端点0传输长度寄存器(OTG_FS_DOEPTSIZ0)OTG_FS设备端点x传输长度寄存器(OTG_FS_DIEPTSIZx)(其中x为端点号,x=1…3) OTG_FS设备IN端点传输FIFO状态寄存器(OTG-FS_DTXFSTSx)(其中x为端点号,x=0…3)OTG_FS设备端点x传输长度寄存器(OTG_FS_DOEPTSIZx)(其中x为端点号,x=1…3) OTG_FS电源和时钟门控寄存器(OTG_FS_PCGCCTL)以太网寄存器(通信传输控制器)MAC寄存器以太网MAC设置寄存器(ETH_MACCR)以太网MAC帧过滤器寄存器(ETH_MACFFR)以太网MAC Hash列表高寄存器(ETH_MACHTHR)以太网MAC Hash列表低寄存器(ETH_MACHTLR)以太网MAC MII地址寄存器(ETH_MACMIIAR)以太网MAC MII数据寄存器(ETH_MACMIIDR)以太网MAC流控寄存器(ETH_MACFCR)以太网MAC VLAN标签寄存器(ETH_MACVLANTR)以太网MAC远程唤醒帧过滤器寄存器(ETH_MACRWUFFR)以太网MAC PMT控制和状态寄存器(ETH_MACPMTCSR)以太网MAC中断状态寄存器(ETH_MACSR)以太网MAC中断屏蔽寄存器(ETH_MAIMR)以太网MAC地址0高寄存器(ETH_MACA0HR)以太网MAC地址0低寄存器(ETH_MACA0LR)以太网MAC地址1高寄存器(ETH_MACA1HR)以太网MAC地址1低寄存器(ETH_MACA1LR)以太网MAC地址2高寄存器(ETH_MACA2HR)以太网MAC地址2低寄存器(ETH_MACA2LR)以太网MAC地址3高寄存器(ETH_MACA3HR)以太网MAC地址3低寄存器(ETH_MACA3LR)MMC寄存器以太网MMC控制寄存器(ETH_MMCCR)以太网MMC接收中断寄存器(ETH_MMCRIR)以太网MMC发送中断寄存器(ETH_MMCTIR)以太网MMC接收中断屏蔽寄存器(ETH_MMCRIMR)以太网MMC发送中断屏蔽寄存器(ETH_MMCTIMR)以太网MMC1次冲突后发送”好”帧的计数器寄存器(ETH_MMCTGFSCCR)以太网MMC1次以上冲突后发送”好”帧的计数器寄存器(ETH_MMCTGFMSCCR)以太网MMC发送”好”帧的计数器寄存器(ETH_MMCTGFCR)以太网MMC CRC错误接收帧计数器寄存器(ETH_ MMCRFCECR)以太网MMC对齐错误接收帧计数器寄存器(ETH_ MMCRFAECR)以太网MMC接收帧”好”单播帧计数器寄存器(ETH_ MMCRGUFCR)27.8.3。

STM32f103寄存器说明

STM32f103寄存器说明

CRC寄存器(一种算法,用以确认发送过程中是否出错)数据寄存器:CRC_DR可读写,复位值:0xFFFF FFFF;独立数据寄存器:CRC_IDR临时存放任何8位数据;控制寄存器:CRC_CR只零位可用,用于复位CRC,对其写1复位,由硬件清零;PWR电源控制(控制和管理电源)电源控制寄存器:PWR_CR控制选择系统的电源电源控制/状态寄存器:PWR_CSR睡眠或待机模式电源控制BKP备份寄存器(用以控制和管理备份数据)备份数据寄存器x:BKP_DRx (x = 1 …10) 10个16位数据寄存器用以存储用户数据RTC时钟校准寄存器:BKP_RTCCR控制实时时钟的运行备份控制寄存器:BKP_CR控制选择清除备份数据的类型备份控制/状态寄存器:BKP_CSR对侵入事件的控制RCC寄存器(时钟的选择、复位、分频)时钟控制寄存器(RCC_CR)各时钟状态显示时钟配置寄存器(RCC_CFGR)时钟分频时钟中断寄存器(RCC_CIR)控制就绪中断使能与否APB2外设复位寄存器(RCC_APB2RSTR) APB1外设复位寄存器(RCC_APB1RSTR)复位APB各功能寄存器AHB外设时钟使能寄存器(RCC_AHBENR) AHB时钟使能控制APB2外设时钟使能寄存器(RCC_APB2ENR) APB1外设时钟使能寄存器(RCC_APB1ENR) APB1时钟使能控制备份域控制寄存器(RCC_BDCR)备份域时钟控制控制/状态寄存器(RCC_CSR)复位标志寄存器AHB外设时钟复位寄存器(RCC_AHBRSTR)复位以太网MAC模块时钟配置寄存器2(RCC_CFGR2)时钟选择与分频.GPIO寄存器(设置端口的功能)端口配置低寄存器(GPIOx_CRL) (x=A..E)端口配置高寄存器(GPIOx_CRH) (x=A..E)端口输入数据寄存器(GPIOx_IDR) (x=A..E)只读数据,读出IO口的状态端口输出数据寄存器(GPIOx_ODR) (x=A..E)可读可写端口位设置/清除寄存器(GPIOx_BSRR) (x=A..E)端口位清除寄存器(GPIOx_BRR) (x=A..E)将某一端口清零端口配置锁定寄存器(GPIOx_LCKR) (x=A..E)用于保护端口配值AFIO寄存器(将端口重映射到其它端口用以端口的第二功能)事件控制寄存器(AFIO_EVCR)选择时间输出端口与引脚复用重映射和调试I/O配置寄存器(AFIO_MAPR)各寄存器功能引脚重映射选择外部中断配置寄存器1(AFIO_EXTICR1) 2(AFIO_EXTICR2)外部中断配置寄存器.外部中断配置寄存器3(AFIO_EXTICR3) 外部中断配置寄存器4(AFIO_EXTICR4) 外部中断引脚重映射选择EXTI 寄存器(外部中断控制器)中断屏蔽寄存器(EXTI_IMR)用于屏蔽或开放某一引脚的中断请求事件屏蔽寄存器(EXTI_EMR)用于屏蔽或开放某一引脚的事件上升沿触发选择寄存器(EXTI_RTSR)禁止或允许某一引脚的上升沿触发下降沿触发选择寄存器(EXTI_FTSR)禁止或允许某一引脚的下降沿触发软件中断事件寄存器(EXTI_SWIER)控制某引脚的软件中断挂起寄存器(EXTI_PR)显示某线的引脚有无触发请求DMA寄存器(脱离cpu的传输模式)DMA中断状态寄存器(DMA_ISR)中断情况标志器DMA中断标志清除寄存器(DMA_IFCR)手动清除标志位DMA通道x配置寄存器(DMA_CCRx)(x = 1…7)传输控制寄存器DMA通道x传输数量寄存器(DMA_CNDTRx)(x = 1…7) 数据传输剩余数量存储器DMA通道x外设地址寄存器(DMA_CPARx)(x = 1…7)设置数据传输外设源或目标地址DMA通道x存储器地址寄存器(DMA_CMARx)(x = 1…7) 设置存储器地址ADC寄存器(模数转换器)ADC状态寄存器(ADC_SR)AD转换标志寄存器ADC控制寄存器1(ADC_CR1)ADC控制寄存器2(ADC_CR2)设置AD转换的各种功能1(ADC_SMPR1)ADC采样时间寄存器ADC采样时间寄存器2(ADC_SMPR2)某通道选择固定的采样时间ADC注入通道数据偏移寄存器x (ADC_JOFRx)(x=1..4) 设置数据偏移量ADC看门狗高阀值寄存器(ADC_HTR)设置模拟看门狗的阀值高限ADC看门狗低阀值寄存器(ADC_LRT)设置模拟看门狗的阀值低限1(ADC_SQR1)ADC规则序列寄存器2(ADC_SQR2)规则序列寄存器ADC.ADC规则序列寄存器3(ADC_SQR3)设置ADC顺序(ADC_JSQR)ADC注入序列寄存器ADC 注入数据寄存器x (ADC_JDRx) (x= 1..4)ADC数据结果寄存器(ADC_DR)ADC规则数据寄存器DAC寄存器(数模转换器)(DAC_CR)控制寄存器DAC(DAC_SWTRIGR)软件触发寄存器DAC(DAC_DHR12R1)位右对齐数据保持寄存器的12通道DAC1(DAC_DHR12L1)位左对齐数据保持寄存器的12DAC通道1(DAC_DHR8R1)8位右对齐数据保持寄存器通道DAC1的(DAC_DHR12R2)12位右对齐数据保持寄存器DAC通道2的(DAC_DHR12L2)位左对齐数据保持寄存器2的12通道DAC (DAC_DHR8R2)位右对齐数据保持寄存器的8通道DAC2双DAC 的12位右对齐数据保持寄存器(DAC_DHR12RD)双DAC的12位左对齐数据保持寄存器(DAC_DHR12LD)双DAC的8位右对齐数据保持寄存器(DAC_DHR8RD)DAC通道1数据输出寄存器(DAC_DOR1)(DAC_DOR2)数据输出寄存器2通道DAC.TIM1和TIM8寄存器(高级的定时计数寄存器)1(TIMx_CR1)TIM8控制寄存器TIM1和2(TIMx_CR2)TIM8控制寄存器TIM1和(TIMx_SMCR)TIM8从模式控制寄存器TIM1和(TIMx_DIER)TIM8 DMA/中断使能寄存器TIM1和(TIMx_SR)状态寄存器和TIM1TIM8 (TIMx_EGR)事件产生寄存器TIM1和TIM81(TIMx_CCMR1)比较模式寄存器TIM8捕获/TIM1和2(TIMx_CCMR2)比较模式寄存器捕获/TIM1和TIM8(TIMx_CCER)比较使能寄存器捕获/TIM1和TIM8(TIMx_CNT)TIM8计数器TIM1和(TIMx_PSC)TIM8预分频器TIM1和(TIMx_ARR)自动重装载寄存器和TIM1TIM8(TIMx_RCR)重复计数寄存器TIM1和TIM81(TIMx_CCR1)比较寄存器捕获/TIM1和TIM82(TIMx_CCR2)/比较寄存器TIM1和TIM8捕获3(TIMx_CCR3)比较寄存器捕获/和TIM1TIM8(TIMx_CCR4)比较寄存器TIM8捕获/和TIM1(TIMx_BDTR)刹车和死区寄存器TIM8和TIM1.(TIMx_DCR)控制寄存器和TIM8 DMATIM1(TIMx_DMAR)DMA地址连续模式的TIM1和TIM8TIMx寄存器(控制定时器)1(TIMx_CR1)控制寄存器2(TIMx_CR2)控制寄存器(TIMx_SMCR)从模式控制寄存器(TIMx_DIER)中断使能寄存器DMA/(TIMx_SR)状态寄存器(TIMx_EGR)事件产生寄存器捕获/比较模式寄存器1(TIMx_CCMR1)捕获/比较模式寄存器2(TIMx_CCMR2)捕获/比较使能寄存器(TIMx_CCER)计数器(TIMx_CNT)预分频器(TIMx_PSC)自动重装载寄存器(TIMx_ARR)捕获/比较寄存器1(TIMx_CCR1)捕获/比较寄存器2(TIMx_CCR2)捕获/比较寄存器3(TIMx_CCR3)4(TIMx_CCR4)比较寄存器/捕获.DMA控制寄存器(TIMx_DCR)连续模式的DMA地址(TIMx_DMAR)TIM6和TIM7寄存器(基本定时计数器)TIM6和TIM7控制寄存器1(TIMx_CR1)TIM6和TIM7控制寄存器2(TIMx_CR2)TIM6和TIM7 DMA/中断使能寄存器(TIMx_DIER)TIM6和TIM7状态寄存器(TIMx_SR)TIM6和TIM7事件产生寄存器(TIMx_EGR)TIM6和TIM7计数器(TIMx_CNT)TIM6和TIM7预分频器(TIMx_PSC)TIM6和TIM7自动重装载寄存器(TIMx_ARR)RTC寄存器(实时时钟)RTC控制寄存器高位(RTC_CRH)RTC控制寄存器低位(RTC_CRL)16.4.3 RTC预分频装载寄存器(RTC_PRLH/RTC_PRLL) (RTC_DIVH / RTC_DIVL)预分频器余数寄存器16.4.4 RTC.RTC计数器寄存器(RTC_CNTH / RTC_CNTL)16.4.6 RTC闹钟寄存器(RTC_ALRH/RTC_ALRL) IWDG寄存器(独立看门狗,用以监督系统硬件的正常运行)键寄存器(IWDG_KR)预分频寄存器(IWDG_PR)重装载寄存器(IWDG_RLR)状态寄存器(IWDG_SR)窗口看门狗(WWDG)寄存器(用以监督软件的正常运行)控制寄存器(WWDG_CR)配置寄存器(WWDG_CFR)状态寄存器(WWDG_SR)FSMC寄存器(可变静态存储控制器)NOR闪存和PSRAM控制器寄存器1…4 (FSMC_BCR1…4)闪存片选控制寄存器SRAM/NOR.1…4 (FSMC_BTR1…4)SRAM/NOR闪存片选时序寄存器1…4 (FSMC_BWTR1…4)SRAM/NOR闪存写时序寄存器NAND闪存和PC卡控制器寄存器2..4 (FSMC_PCR2..4)/NAND闪存控制寄存器PC卡 2..4 (FSMC_SR2..4) FIFO状态和中断寄存器 2..4 (FSMC_PMEM2..4)通用存储空间时序寄存器2..4 (FSMC_PATT2..4)属性存储空间时序寄存器4 (FSMC_PIO4)I/O空间时序寄存器2/3 (FSMC_ECCR2/3)ECC结果寄存器(数据传输控制器)SDIO电源控制寄存器(SDIO_POWER)SDIO时钟控制寄存器(SDIO_CLKCR)SDIO参数寄存器(SDIO_ARG)SDIO命令寄存器(SDIO_CMD)SDIO命令响应寄存器(SDIO_RESPCMD) SDIO响应1..4寄存器(SDIO_RESPx) SDIO数据定时器寄存器(SDIO_DTIMER) SDIO数据长度寄存器(SDIO_DLEN)SDIO数据控制寄存器(SDIO_DCTRLSDIO数据计数器寄存器(SDIO_DCOUNT) SDIO状态寄存器(SDIO_STA)SDIO清除中断寄存器(SDIO_ICR)(SDIO_MASK)中断屏蔽寄存器SDIO.SDIO FIFO计数器寄存器(SDIO_FIFOCNT) SDIO数据FIFO寄存器(SDIO_FIFO)USB寄存器(usb传输控制器)(USB_CNTR)控制寄存器USB(USB_ISTR)中断状态寄存器USB(USB_FNR)帧编号寄存器USB(USB_DADDR)设备地址寄存器USB(USB_BTABLE)分组缓冲区描述表地址寄存器USB端点寄存器(USB_EPnR), n=[0..7]寄存器端点nUSB缓冲区寄存器n(USB_ADDRn_TX)发送缓冲区地址寄存器n(USB_COUNTn_TX)发送数据字节数寄存器n(USB_ADDRn_RX)接收缓冲区地址寄存器n(USB_COUNTn_RX)接收数据字节数寄存器CAN 寄存器(邮箱控制寄存器)CAN控制和状态寄存器(CAN_MCR)CAN主控制寄存器(CAN_MSR)主状态寄存器CAN(CAN_TSR)发送状态寄存器CAN(CAN_RF0R)接收FIFO 0寄存器CAN(CAN_RF1R)FIFO 1寄存器CAN接收(CAN_IER)中断使能寄存器CAN(CAN_ESR)错误状态寄存器CAN.(CAN_BTR)CAN位时序寄存器CAN邮箱寄存器(CAN_TIxR) (x=0..2)发送邮箱标识符寄存器(CAN_TDTxR) (x=0..2)发送邮箱数据长度和时间戳寄存器(CAN_TDLxR) (x=0..2)发送邮箱低字节数据寄存器(CAN_TDHxR) (x=0..2)发送邮箱高字节数据寄存器(CAN_RIxR) (x=0..1)邮箱标识符寄存器接收FIFO(CAN_RDTxR) (x=0..1)邮箱数据长度和时间戳寄存器接收FIFO(CAN_RDLxR) (x=0..1)邮箱低字节数据寄存器接收FIFO(CAN_RDHxR) (x=0..1)邮箱高字节数据寄存器接收FIFO CAN过滤器寄存器(CAN_FMR)CAN 过滤器主控寄存器(CAN_FM1R)CAN 过滤器模式寄存器(CAN_FS1R)CAN 过滤器位宽寄存器(CAN_FFA1R)FIFO关联寄存器CAN 过滤器(CAN_FA1R)CAN 过滤器激活寄存器x=1..2)0..13;,其它产品中i=过滤器组CAN i的寄存器x (CAN_FiRx) (互联产品中i=0..27SPI和IS寄存器2(串行外设接口控制器)SPI控制寄存器1(SPI_CR1)SPI控制寄存器2(SPI_CR2)SPI 状态寄存器(SPI_SR)SPI 数据寄存器(SPI_DR)SPI CRC多项式寄存器(SPI_CRCPR)SPI Rx CRC寄存器(SPI_RXCRCR)SPI Tx CRC寄存器(SPI_TXCRCR)SPI_IS配置寄存器(SPI_I2S_CFGR)2(SPI_I2SPR)预分频寄存器SPI_I2S.IC寄存器2(数据传输寄存器)控制寄存器1(I2C_CR1)控制寄存器2(I2C_CR2)自身地址寄存器1(I2C_OAR1)自身地址寄存器2(I2C_OAR2)数据寄存器(I2C_DR)状态寄存器1(I2C_SR1)状态寄存器2 (I2C_SR2)时钟控制寄存器(I2C_CCR)TRISE寄存器(I2C_TRISE)USART寄存器(通用同步异步收发器)状态寄存器(USART_SR)数据寄存器(USART_DR)波特比率寄存器(USART_BRR)控制寄存器1(USART_CR1)2(USART_CR2)控制寄存器.控制寄存器3(USART_CR3)保护时间和预分频寄存器(USART_GTPR)OTG_FS控制和状态寄存器(数据传输控制器)OTG_FS全局寄存器(OTG_FS_GOTGCTL)控制和状态寄存器OTG_FS(OTG_FS_GOTGINT)中断寄存器OTG_FS(OTG_FS_GAHBCFG)配置寄存器OTG_FS AHB(OTG_FS_GUSBCFG)配置寄存器OTG_FS_USB(OTG_FS_GRSTCTL)复位寄存器OTG_FS(OTG_FS_GINTSTS)控制器中断寄存器OTG_FS(OTG_FS_GINTMSK)中断屏蔽寄存器OTG_FSOTG_FS接收状态调试读/OTG状态读和POP寄存器(OTG_FS_GRXSTSR / OTG_FS_GRXSTSP) (OTG_FS_GRXFSIZ)FIFO长度寄存器OTG_FS接收(OTG_FS_GNPTXFSIZ)TX FIFO长度寄存器OTG_FS非周期性(OTG_FS_GNPTXSTS)TX FIFO/请求队列状态寄存器OTG_FS非周期性(OTG_FS_GCCFG)OTG_FS通用控制器配置寄存器(OTG_FS_CID)寄存器OTG_FS控制器ID(OTG_FS_HPTXFSIZ)长度寄存器OTG_FS 主机周期性发送FIFOOTG_FS设备IN端点发送FIFO长度寄存器(OTG_FS_DIEPTXFx)(其中x是FIFO的编号,x=1…4)主机模式下的寄存器(OTG_FS_HCFG)主机模式配置寄存器OTG_FS(OTG_FS_HFIR)OTG_FS主机帧间隔寄存器(OTG_FS_HFNUM)/帧时间剩余寄存器OTG_FS主机帧号(OTG_FS_HPTXSTS)FIFO/请求队列寄存器OTG_FS主机周期性发送(OTG_FS_HAINT)主机所有通道中断寄存器OTG_FS(OTG_FS_HAINTMSK)主机所有通道中断屏蔽寄存器OTG_FS(OTG_FS_HPRT)主机端口控制和状态寄存器OTG_FSOTG_FS主机通道x特性寄存器(OTG_FS_HCCHARx)(此处x代码通道号,x = 0...7)OTG_FS主机通道x中断寄存器(OTG_FS_HCINTx)(其中x代表通道号,x=0...7,) OTG_FS主机通道x中断屏蔽寄存器(OTG_FS_HCINTMSKx)(其中x为通道号,x=0...7)x=0...7)为通道号,x其中(OTG_FS_HCTSIZx)(传输长度寄存器x主机通道OTG_FS.设备模式下的寄存器(OTG_FS_DCFG)OTG_FS设备配置寄存器(OTG_FS_DCTL)OTG_FS设备控制寄存器(OTG_FS_DSTS)OTG_FS设备状态寄存器(OTG_FS_DIEPMSK)IN端点通用中断屏蔽寄存器OTG_FS设备(OTG_FS_DOEPMSK)OUT端点通用中断屏蔽寄存器OTG_FS设备(OTG_FS_DAINT)OTG_FS设备所有端点中断寄存器(OTG_FS_DAINTMSK)所有端点中断屏蔽寄存器OTG_FS(OTG_FS_DVBUSDIS)放电时间寄存器OTG_FS设备V BUS(OTG_FS_DVBUSPULSE)脉冲时间寄存器OTG_FS设备V BUS(OTG_FS_DIEPEMPMSK)空中断屏蔽寄存器IN端点FIFOOTG_FS设备(OTG_FS_DIEPCTL0)控制寄存器IN端点0OTG_FS设备控制x=1…3)为端点号,其中xOTG设备端点x控制寄存器(OTG_FS_DIEPCTLx)((OTG_FS_DOEPCTL0)控制寄存器端点0OTG_FS设备控制OUT x=1…3)为端点号,其中x端点x控制寄存器(OTG_FS_DOEPCTLx)(OTG_FS设备OUT x=0…3)x为端点号,x中断寄存器(OTG_FS_DIEPINTx)(其中OTG_FS设备端点x=0…3)x为端点号,x中断寄存器(OTG_FS_DOEPINTx)(其中OTG_FS设备端点(OTG_FS_DIEPTSIZ0)0传输长度寄存器设备IN端点OTG_FS(OTG_FS_DOEPTSIZ0)传输长度寄存器OUT端点0设备OTG_FS x=1…3)为端点号,(OTG_FS_DIEPTSIZx)(其中xOTG_FS设备端点x传输长度寄存器OTG_FS设备IN端点传输FIFO状态寄存器(OTG-FS_DTXFSTSx)(其中x为端点号,x=0…3)x=1…3)x为端点号,传输长度寄存器设备端点x(OTG_FS_DOEPTSIZx)(其中OTG_FS OTG_FS电源和时钟门控寄存器(OTG_FS_PCGCCTL)以太网寄存器(通信传输控制器)MAC寄存器(ETH_MACCR)设置寄存器以太网MAC(ETH_MACFFR)帧过滤器寄存器以太网MAC(ETH_MACHTHR)列表高寄存器以太网MAC Hash(ETH_MACHTLR)MAC Hash列表低寄存器以太网(ETH_MACMIIAR)地址寄存器以太网MAC MII(ETH_MACMIIDR)数据寄存器以太网MAC MII(ETH_MACFCR)MAC流控寄存器以太网(ETH_MACVLANTR)MAC VLAN以太网标签寄存器(ETH_MACRWUFFR)远程唤醒帧过滤器寄存器MAC以太网.(ETH_MACPMTCSR)控制和状态寄存器以太网MAC PMT(ETH_MACSR)中断状态寄存器以太网MAC(ETH_MAIMR)中断屏蔽寄存器以太网MAC(ETH_MACA0HR)高寄存器地址0以太网MAC(ETH_MACA0LR)0低寄存器以太网MAC地址(ETH_MACA1HR)1高寄存器以太网MAC地址(ETH_MACA1LR)1低寄存器以太网MAC地址(ETH_MACA2HR)2高寄存器以太网MAC地址以太网MAC地址2低寄存器(ETH_MACA2LR)(ETH_MACA3HR)高寄存器MAC地址3以太网以太网MAC地址3低寄存器(ETH_MACA3LR)MMC寄存器(ETH_MMCCR)控制寄存器以太网MMC(ETH_MMCRIR)接收中断寄存器以太网MMC(ETH_MMCTIR)MMC以太网发送中断寄存器(ETH_MMCRIMR)MMC接收中断屏蔽寄存器以太网(ETH_MMCTIMR)MMC发送中断屏蔽寄存器以太网(ETH_MMCTGFSCCR)帧的计数器寄存器”好”1以太网MMC次冲突后发送(ETH_MMCTGFMSCCR)帧的计数器寄存器好”以太网MMC1次以上冲突后发送”以太网MMC发送”好”帧的计数器寄存器(ETH_MMCTGFCR)(ETH_ MMCRFCECR)错误接收帧计数器寄存器以太网MMC CRC以太网MMC对齐错误接收帧计数器寄存器(ETH_ MMCRFAECR)以太网MMC接收帧”好”单播帧计数器寄存器(ETH_ MMCRGUFCR)27.8. 3。

STM32中几个GPIO寄存器总结

STM32中几个GPIO寄存器总结

OPA1632 全差动 I/O 音频放大器 音频放大器
OPA2604-Q1 汽车类双路 FET 输入低失真运算放大器 音频放大器
PCM1600 104dB SNR 6 通道音频 DAC 音频转换器
PCM1601 104dB SNR 6 通道音频 DAC 音频转换器
PCM1602 105dB SNR 6 通道音频 DAC 音频转换器
DSD1792 132dB SNR 最高性能立体声音频 DAC(软件控制) 音频转换器
DSD1792A 132dB SNR 最高性能立体声音频 DAC(软件控制) 音频转换器
DSD1793 113dB SNR 立体声音频 DAC(软件控制R 最高性能立体声音频 DAC(硬件控制) 音频转换器
PCM1609 105dB SNR 8 通道音频 DAC 音频转换器
PCM1609A 105dB SNR 8 通道音频 DAC 音频转换器
PCM1680 105dB SNR 8 通道音频 DAC 音频转换器
GPIOA->CRH&=0XFFFFFFF0;//清除该位原来的设置
GPIOA->CRH|=0X00000003;//PA8 推挽输出
GPIOA->ODR|=1<<8; //PA8 输出高
由以上代码看出,PA8设置成了推挽输出。大家都知道一个端口可以输出高电平,也可以输出低电平,而GPIOA->ODR|=1<<8; 这个表达式就把PA8设置成了在空闲的时候输出高电平;GPIOA->ODR|=0<<8; 这个表达式,把PA8设置成了在空闲的时候输出低电平。
一.CRH和CRL的使用:
CRH和CRL的使用基本相同,CRH用于控制GPIOX(X表示A---G)的高8位(Pin15---Pin8),而CRL用于控制GPIOX(X表示A---G)的低8位(Pin7----Pin0)。

STM32f103寄存器说明书

STM32f103寄存器说明书

CRC寄存器(一种算法,用以确认发送过程中是否出错)数据寄存器:CRC_DR可读写,复位值:0xFFFF FFFF;独立数据寄存器:CRC_IDR临时存放任何8位数据;控制寄存器:CRC_CR只零位可用,用于复位CRC,对其写1复位,由硬件清零;PWR电源控制(控制和管理电源)电源控制寄存器:PWR_CR控制选择系统的电源电源控制/状态寄存器:PWR_CSR睡眠或待机模式电源控制BKP备份寄存器(用以控制和管理备份数据)备份数据寄存器x:BKP_DRx (x = 1 … 10) 10个16位数据寄存器用以存储用户数据RTC时钟校准寄存器:BKP_RTCCR控制实时时钟的运行备份控制寄存器:BKP_CR控制选择清除备份数据的类型备份控制/状态寄存器:BKP_CSR对侵入事件的控制RCC寄存器(时钟的选择、复位、分频)时钟控制寄存器(RCC_CR)各时钟状态显示时钟配置寄存器(RCC_CFGR)时钟分频时钟中断寄存器(RCC_CIR)控制就绪中断使能与否APB2外设复位寄存器(RCC_APB2RSTR) APB1外设复位寄存器(RCC_APB1RSTR) 复位APB各功能寄存器AHB外设时钟使能寄存器(RCC_AHBENR) AHB时钟使能控制APB2外设时钟使能寄存器(RCC_APB2ENR) APB1外设时钟使能寄存器(RCC_APB1ENR) APB1时钟使能控制备份域控制寄存器(RCC_BDCR)备份域时钟控制控制/状态寄存器(RCC_CSR)复位标志寄存器AHB外设时钟复位寄存器(RCC_AHBRSTR) 复位以太网MAC模块时钟配置寄存器2(RCC_CFGR2)时钟选择与分频GPIO寄存器(设置端口的功能)端口配置低寄存器(GPIOx_CRL) (x=A..E)端口配置高寄存器(GPIOx_CRH) (x=A..E)端口输入数据寄存器(GPIOx_IDR) (x=A..E)只读数据,读出IO口的状态端口输出数据寄存器(GPIOx_ODR) (x=A..E) 可读可写端口位设置/清除寄存器(GPIOx_BSRR) (x=A..E)端口位清除寄存器(GPIOx_BRR) (x=A..E)将某一端口清零端口配置锁定寄存器(GPIOx_LCKR) (x=A..E) 用于保护端口配值AFIO寄存器(将端口重映射到其它端口用以端口的第二功能)事件控制寄存器(AFIO_EVCR)选择时间输出端口与引脚复用重映射和调试I/O配置寄存器(AFIO_MAPR) 各寄存器功能引脚重映射选择外部中断配置寄存器1(AFIO_EXTICR1)外部中断配置寄存器2(AFIO_EXTICR2)外部中断配置寄存器3(AFIO_EXTICR3) 外部中断配置寄存器4(AFIO_EXTICR4) 外部中断引脚重映射选择EXTI 寄存器(外部中断控制器)中断屏蔽寄存器(EXTI_IMR)用于屏蔽或开放某一引脚的中断请求事件屏蔽寄存器(EXTI_EMR)用于屏蔽或开放某一引脚的事件上升沿触发选择寄存器(EXTI_RTSR) 禁止或允许某一引脚的上升沿触发下降沿触发选择寄存器(EXTI_FTSR) 禁止或允许某一引脚的下降沿触发软件中断事件寄存器(EXTI_SWIER) 控制某引脚的软件中断挂起寄存器(EXTI_PR)显示某线的引脚有无触发请求DMA寄存器(脱离cpu的传输模式)DMA中断状态寄存器(DMA_ISR)中断情况标志器DMA中断标志清除寄存器(DMA_IFCR) 手动清除标志位DMA通道x配置寄存器(DMA_CCRx)(x = 1…7)传输控制寄存器DMA通道x传输数量寄存器(DMA_CNDTRx)(x = 1…7)数据传输剩余数量存储器DMA通道x外设地址寄存器(DMA_CPARx)(x = 1…7)设置数据传输外设源或目标地址DMA通道x存储器地址寄存器(DMA_CMARx)(x = 1…7)设置存储器地址ADC寄存器(模数转换器)ADC状态寄存器(ADC_SR)AD转换标志寄存器ADC控制寄存器1(ADC_CR1)ADC控制寄存器2(ADC_CR2)设置AD转换的各种功能ADC采样时间寄存器1(ADC_SMPR1)ADC采样时间寄存器2(ADC_SMPR2)某通道选择固定的采样时间ADC注入通道数据偏移寄存器x (ADC_JOFRx)(x=1..4) 设置数据偏移量ADC看门狗高阀值寄存器(ADC_HTR)设置模拟看门狗的阀值高限ADC看门狗低阀值寄存器(ADC_LRT)设置模拟看门狗的阀值低限ADC规则序列寄存器1(ADC_SQR1)ADC规则序列寄存器2(ADC_SQR2)ADC规则序列寄存器3(ADC_SQR3)设置ADC顺序ADC注入序列寄存器(ADC_JSQR)ADC 注入数据寄存器x (ADC_JDRx) (x= 1..4)ADC数据结果寄存器ADC规则数据寄存器(ADC_DR)DAC寄存器(数模转换器)DAC控制寄存器(DAC_CR)DAC软件触发寄存器(DAC_SWTRIGR)DAC通道1的12位右对齐数据保持寄存器(DAC_DHR12R1) DAC通道1的12位左对齐数据保持寄存器(DAC_DHR12L1) DAC通道1的8位右对齐数据保持寄存器(DAC_DHR8R1) DAC通道2的12位右对齐数据保持寄存器(DAC_DHR12R2) DAC通道2的12位左对齐数据保持寄存器(DAC_DHR12L2) DAC通道2的8位右对齐数据保持寄存器(DAC_DHR8R2)双DAC的12位右对齐数据保持寄存器(DAC_DHR12RD)双DAC的12位左对齐数据保持寄存器(DAC_DHR12LD)双DAC的8位右对齐数据保持寄存器(DAC_DHR8RD) DAC通道1数据输出寄存器(DAC_DOR1)DAC通道2数据输出寄存器(DAC_DOR2)TIM1和TIM8寄存器(高级的定时计数寄存器)TIM1和TIM8控制寄存器1(TIMx_CR1)TIM1和TIM8控制寄存器2(TIMx_CR2)TIM1和TIM8从模式控制寄存器(TIMx_SMCR)TIM1和TIM8 DMA/中断使能寄存器(TIMx_DIER) TIM1和TIM8状态寄存器(TIMx_SR)TIM1和TIM8事件产生寄存器(TIMx_EGR)TIM1和TIM8捕获/比较模式寄存器1(TIMx_CCMR1) TIM1和TIM8捕获/比较模式寄存器2(TIMx_CCMR2) TIM1和TIM8捕获/比较使能寄存器(TIMx_CCER) TIM1和TIM8计数器(TIMx_CNT)TIM1和TIM8预分频器(TIMx_PSC)TIM1和TIM8自动重装载寄存器(TIMx_ARR)TIM1和TIM8重复计数寄存器(TIMx_RCR)TIM1和TIM8捕获/比较寄存器1(TIMx_CCR1)TIM1和TIM8捕获/比较寄存器2(TIMx_CCR2)TIM1和TIM8捕获/比较寄存器3(TIMx_CCR3)TIM1和TIM8捕获/比较寄存器(TIMx_CCR4)TIM1和TIM8刹车和死区寄存器(TIMx_BDTR)TIM1和TIM8 DMA控制寄存器(TIMx_DCR)TIM1和TIM8连续模式的DMA地址(TIMx_DMAR)TIMx寄存器(控制定时器)控制寄存器1(TIMx_CR1)控制寄存器2(TIMx_CR2)从模式控制寄存器(TIMx_SMCR)DMA/中断使能寄存器(TIMx_DIER)状态寄存器(TIMx_SR)事件产生寄存器(TIMx_EGR)捕获/比较模式寄存器1(TIMx_CCMR1)捕获/比较模式寄存器2(TIMx_CCMR2)捕获/比较使能寄存器(TIMx_CCER)计数器(TIMx_CNT)预分频器(TIMx_PSC)自动重装载寄存器(TIMx_ARR)捕获/比较寄存器1(TIMx_CCR1)捕获/比较寄存器2(TIMx_CCR2)捕获/比较寄存器3(TIMx_CCR3)捕获/比较寄存器4(TIMx_CCR4)DMA控制寄存器(TIMx_DCR)连续模式的DMA地址(TIMx_DMAR)TIM6和TIM7寄存器(基本定时计数器)TIM6和TIM7控制寄存器1(TIMx_CR1)TIM6和TIM7控制寄存器2(TIMx_CR2)TIM6和TIM7 DMA/中断使能寄存器(TIMx_DIER)TIM6和TIM7状态寄存器(TIMx_SR)TIM6和TIM7事件产生寄存器(TIMx_EGR)TIM6和TIM7计数器(TIMx_CNT)TIM6和TIM7预分频器(TIMx_PSC)TIM6和TIM7自动重装载寄存器(TIMx_ARR)RTC寄存器(实时时钟)RTC控制寄存器高位(RTC_CRH)RTC控制寄存器低位(RTC_CRL)16.4.3 RTC预分频装载寄存器(RTC_PRLH/RTC_PRLL) 16.4.4 RTC预分频器余数寄存器(RTC_DIVH / RTC_DIVL)RTC计数器寄存器(RTC_CNTH / RTC_CNTL) 16.4.6 RTC闹钟寄存器(RTC_ALRH/RTC_ALRL)IWDG寄存器(独立看门狗,用以监督系统硬件的正常运行)键寄存器(IWDG_KR)预分频寄存器(IWDG_PR)重装载寄存器(IWDG_RLR)状态寄存器(IWDG_SR)窗口看门狗(WWDG)寄存器(用以监督软件的正常运行)控制寄存器(WWDG_CR)配置寄存器(WWDG_CFR)状态寄存器(WWDG_SR)FSMC寄存器(可变静态存储控制器)NOR闪存和PSRAM控制器寄存器SRAM/NOR闪存片选控制寄存器1…4 (FSMC_BCR1…4)SRAM/NOR闪存片选时序寄存器1…4 (FSMC_BTR1…4) SRAM/NOR闪存写时序寄存器1…4 (FSMC_BWTR1…4)NAND闪存和PC卡控制器寄存器PC卡/NAND闪存控制寄存器2..4 (FSMC_PCR2..4) FIFO状态和中断寄存器2..4 (FSMC_SR2..4)通用存储空间时序寄存器 2..4 (FSMC_PMEM2..4)属性存储空间时序寄存器 2..4 (FSMC_PATT2..4)I/O空间时序寄存器4 (FSMC_PIO4)ECC结果寄存器2/3 (FSMC_ECCR2/3)SDIO寄存器(数据传输控制器)SDIO电源控制寄存器(SDIO_POWER) SDIO时钟控制寄存器(SDIO_CLKCR) SDIO参数寄存器(SDIO_ARG)SDIO命令寄存器(SDIO_CMD)SDIO命令响应寄存器(SDIO_RESPCMD) SDIO响应1..4寄存器(SDIO_RESPx) SDIO数据定时器寄存器(SDIO_DTIMER) SDIO数据长度寄存器(SDIO_DLEN)SDIO数据控制寄存器(SDIO_DCTRL SDIO数据计数器寄存器(SDIO_DCOUNT) SDIO状态寄存器(SDIO_STA)SDIO清除中断寄存器(SDIO_ICR)SDIO中断屏蔽寄存器(SDIO_MASK)SDIO FIFO计数器寄存器(SDIO_FIFOCNT) SDIO数据FIFO寄存器(SDIO_FIFO)USB寄存器(usb传输控制器)通用寄存器USB控制寄存器(USB_CNTR)USB中断状态寄存器(USB_ISTR)USB帧编号寄存器(USB_FNR)USB设备地址寄存器(USB_DADDR)USB分组缓冲区描述表地址寄存器(USB_BTABLE)端点寄存器USB 端点n寄存器(USB_EPnR), n=[0..7]缓冲区寄存器发送缓冲区地址寄存器n(USB_ADDRn_TX)发送数据字节数寄存器n(USB_COUNTn_TX)接收缓冲区地址寄存器n(USB_ADDRn_RX)接收数据字节数寄存器n(USB_COUNTn_RX)CAN 寄存器(控制寄存器)CAN控制和状态寄存器CAN主控制寄存器(CAN_MCR)CAN主状态寄存器(CAN_MSR)CAN发送状态寄存器(CAN_TSR)CAN接收FIFO 0寄存器(CAN_RF0R)CAN接收FIFO 1寄存器(CAN_RF1R)CAN中断使能寄存器(CAN_IER)CAN错误状态寄存器(CAN_ESR)CAN位时序寄存器(CAN_BTR)CAN寄存器发送标识符寄存器(CAN_TIxR) (x=0..2)发送数据长度和时间戳寄存器(CAN_TDTxR) (x=0..2)发送低字节数据寄存器(CAN_TDLxR) (x=0..2)发送高字节数据寄存器(CAN_TDHxR) (x=0..2)接收FIFO标识符寄存器(CAN_RIxR) (x=0..1)接收FIFO数据长度和时间戳寄存器(CAN_RDTxR) (x=0..1)接收FIFO低字节数据寄存器(CAN_RDLxR) (x=0..1)接收FIFO高字节数据寄存器(CAN_RDHxR) (x=0..1)CAN过滤器寄存器CAN 过滤器主控寄存器(CAN_FMR)CAN 过滤器模式寄存器(CAN_FM1R)CAN 过滤器位宽寄存器(CAN_FS1R)CAN 过滤器FIFO关联寄存器(CAN_FFA1R)CAN 过滤器激活寄存器(CAN_FA1R)CAN 过滤器组i的寄存器x (CAN_FiRx) (互联产品中i=0..27,其它产品中i=0..13;x=1..2)SPI和I2S寄存器(串行外设接口控制器)SPI控制寄存器1(SPI_CR1)SPI控制寄存器2(SPI_CR2)SPI 状态寄存器(SPI_SR)SPI 数据寄存器(SPI_DR)SPI CRC多项式寄存器(SPI_CRCPR)SPI Rx CRC寄存器(SPI_RXCRCR)SPI Tx CRC寄存器(SPI_TXCRCR)SPI_I2S配置寄存器(SPI_I2S_CFGR)SPI_I2S预分频寄存器(SPI_I2SPR)I2C寄存器(数据传输寄存器)控制寄存器1(I2C_CR1)控制寄存器2(I2C_CR2)自身地址寄存器1(I2C_OAR1)自身地址寄存器2(I2C_OAR2)数据寄存器(I2C_DR)状态寄存器1(I2C_SR1)状态寄存器2 (I2C_SR2)时钟控制寄存器(I2C_CCR)TRISE寄存器(I2C_TRISE)USART寄存器(通用同步异步收发器)状态寄存器(USART_SR)数据寄存器(USART_DR)波特比率寄存器(USART_BRR)控制寄存器1(USART_CR1)控制寄存器2(USART_CR2)控制寄存器3(USART_CR3)保护时间和预分频寄存器(USART_GTPR)OTG_FS控制和状态寄存器(数据传输控制器)OTG_FS全局寄存器OTG_FS控制和状态寄存器(OTG_FS_GOTGCTL)OTG_FS中断寄存器(OTG_FS_GOTGINT)OTG_FS AHB配置寄存器(OTG_FS_GAHBCFG)OTG_FS_USB配置寄存器(OTG_FS_GUSBCFG)OTG_FS复位寄存器(OTG_FS_GRSTCTL)OTG_FS控制器中断寄存器(OTG_FS_GINTSTS)OTG_FS中断屏蔽寄存器(OTG_FS_GINTMSK)OTG_FS接收状态调试读/OTG状态读和POP寄存器(OTG_FS_GRXSTSR / OTG_FS_GRXSTSP)OTG_FS接收FIFO长度寄存器(OTG_FS_GRXFSIZ)OTG_FS非周期性TX FIFO长度寄存器(OTG_FS_GNPTXFSIZ)OTG_FS非周期性TX FIFO/请求队列状态寄存器(OTG_FS_GNPTXSTS)OTG_FS通用控制器配置寄存器(OTG_FS_GCCFG)OTG_FS控制器ID寄存器(OTG_FS_CID)OTG_FS主机周期性发送FIFO长度寄存器(OTG_FS_HPTXFSIZ)OTG_FS设备IN端点发送FIFO长度寄存器(OTG_FS_DIEPTXFx)(其中x是FIFO的编号,x=1…4)主机模式下的寄存器OTG_FS主机模式配置寄存器(OTG_FS_HCFG)OTG_FS主机帧间隔寄存器(OTG_FS_HFIR)OTG_FS主机帧号/帧时间剩余寄存器(OTG_FS_HFNUM)OTG_FS主机周期性发送FIFO/请求队列寄存器(OTG_FS_HPTXSTS)OTG_FS主机所有通道中断寄存器(OTG_FS_HAINT)OTG_FS主机所有通道中断屏蔽寄存器(OTG_FS_HAINTMSK)OTG_FS主机端口控制和状态寄存器(OTG_FS_HPRT)OTG_FS主机通道x特性寄存器(OTG_FS_HCCHARx)(此处x代码通道号,x = 0...7)OTG_FS主机通道x中断寄存器(OTG_FS_HCINTx)(其中x代表通道号,x=0...7,)OTG_FS主机通道x中断屏蔽寄存器(OTG_FS_HCINTMSKx)(其中x为通道号,x=0...7) OTG_FS主机通道x传输长度寄存器(OTG_FS_HCTSIZx)(其中x为通道号,x=0...7)设备模式下的寄存器OTG_FS设备配置寄存器(OTG_FS_DCFG)OTG_FS设备控制寄存器(OTG_FS_DCTL)OTG_FS设备状态寄存器(OTG_FS_DSTS)OTG_FS设备IN端点通用中断屏蔽寄存器(OTG_FS_DIEPMSK)OTG_FS设备OUT端点通用中断屏蔽寄存器(OTG_FS_DOEPMSK)OTG_FS设备所有端点中断寄存器(OTG_FS_DAINT)OTG_FS所有端点中断屏蔽寄存器(OTG_FS_DAINTMSK)OTG_FS设备V BUS放电时间寄存器(OTG_FS_DVBUSDIS)OTG_FS设备V BUS脉冲时间寄存器(OTG_FS_DVBUSPULSE)OTG_FS设备IN端点FIFO空中断屏蔽寄存器(OTG_FS_DIEPEMPMSK)OTG_FS设备控制IN端点0控制寄存器(OTG_FS_DIEPCTL0)OTG设备端点x控制寄存器(OTG_FS_DIEPCTLx)(其中x为端点号,x=1…3)OTG_FS设备控制OUT端点0控制寄存器(OTG_FS_DOEPCTL0)OTG_FS设备OUT端点x控制寄存器(OTG_FS_DOEPCTLx)(其中x为端点号,x=1…3) OTG_FS设备端点x中断寄存器(OTG_FS_DIEPINTx)(其中x为端点号,x=0…3)OTG_FS设备端点x中断寄存器(OTG_FS_DOEPINTx)(其中x为端点号,x=0…3)OTG_FS设备IN端点0传输长度寄存器(OTG_FS_DIEPTSIZ0)OTG_FS设备OUT端点0传输长度寄存器(OTG_FS_DOEPTSIZ0)OTG_FS设备端点x传输长度寄存器(OTG_FS_DIEPTSIZx)(其中x为端点号,x=1…3) OTG_FS设备IN端点传输FIFO状态寄存器(OTG-FS_DTXFSTSx)(其中x为端点号,x=0…3)OTG_FS设备端点x传输长度寄存器(OTG_FS_DOEPTSIZx)(其中x为端点号,x=1…3) OTG_FS电源和时钟门控寄存器(OTG_FS_PCGCCTL)以太网寄存器(通信传输控制器)MAC寄存器以太网MAC设置寄存器(ETH_MACCR)以太网MAC帧过滤器寄存器(ETH_MACFFR)以太网MAC Hash列表高寄存器(ETH_MACHTHR)以太网MAC Hash列表低寄存器(ETH_MACHTLR)以太网MAC MII地址寄存器(ETH_MACMIIAR)以太网MAC MII数据寄存器(ETH_MACMIIDR)以太网MAC流控寄存器(ETH_MACFCR)以太网MAC VLAN标签寄存器(ETH_MACVLANTR)以太网MAC远程唤醒帧过滤器寄存器(ETH_MACRWUFFR)以太网MAC PMT控制和状态寄存器(ETH_MACPMTCSR)以太网MAC中断状态寄存器(ETH_MACSR)以太网MAC中断屏蔽寄存器(ETH_MAIMR)以太网MAC地址0高寄存器(ETH_MACA0HR)以太网MAC地址0低寄存器(ETH_MACA0LR)以太网MAC地址1高寄存器(ETH_MACA1HR)以太网MAC地址1低寄存器(ETH_MACA1LR)以太网MAC地址2高寄存器(ETH_MACA2HR)以太网MAC地址2低寄存器(ETH_MACA2LR)以太网MAC地址3高寄存器(ETH_MACA3HR)以太网MAC地址3低寄存器(ETH_MACA3LR)MMC寄存器以太网MMC控制寄存器(ETH_MMCCR)以太网MMC接收中断寄存器(ETH_MMCRIR)以太网MMC发送中断寄存器(ETH_MMCTIR)以太网MMC接收中断屏蔽寄存器(ETH_MMCRIMR)以太网MMC发送中断屏蔽寄存器(ETH_MMCTIMR)以太网MMC1次冲突后发送”好”帧的计数器寄存器(ETH_MMCTGFSCCR)以太网MMC1次以上冲突后发送”好”帧的计数器寄存器(ETH_MMCTGFMSCCR)以太网MMC发送”好”帧的计数器寄存器(ETH_MMCTGFCR)以太网MMC CRC错误接收帧计数器寄存器(ETH_ MMCRFCECR)以太网MMC对齐错误接收帧计数器寄存器(ETH_ MMCRFAECR)以太网MMC接收帧”好”单播帧计数器寄存器(ETH_ MMCRGUFCR)27.8.3。

stm32寄存器写法

stm32寄存器写法

STM32是一种常见的微控制器,其寄存器地址和功能由其ARM Cortex-M内核定义。

下面是一些常见的STM32寄存器操作的方法:
1.直接操作寄存器:这种方法需要直接操作特定的寄存器地址,例如:
__asm("MOV R0, #0"); // 将值0写入寄存器R0
2.使用标准C库函数:STM32提供了许多标准C库函数,可以方便地操作寄
存器,例如:
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET); // 将GPIOA的第0位设置为低电平
3.使用HAL库函数:STM32 HAL库提供了一组函数,可以方便地操作寄存
器,例如:
HAL_Delay(1000); // 延时1000毫秒
4.使用标准外设库函数:STM32标准外设库函数可以方便地操作寄存器,例
如:
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); // 初始化GPIOA的第0位为输出模式
以上是一些常见的STM32寄存器操作方法,具体使用哪种方法取决于具体的项目需求和开发环境。

STM32外设寄存器简介及简单用法

STM32外设寄存器简介及简单用法
STM32外设寄存器简介及简单用法
STM32外设有哪些?
外设指的是单片机外部的外围功能模块,比如键盘控制芯片,液晶,A/D
转换芯片,等等。外设可通过单片机的I/O,SPI,I2C等总线控制。
Smt32外设有以下几类寄存器:
1.控制寄存器CR:配置、控制相应外设工作方式
2.数据寄存器DR:存储外设进行输入输出的数据
USART收发函数为USART_RECEIVEDATA()USART_SENDDATA
()
状态寄存器SR
对外设工作状态进行检查。假如外设进行完成了某一事件,完成的标志就
会储存在状态寄存器SR中。
假如将串口的接收与发送都设置为中断,那幺如何才能确定是由什幺时间
触发的中断呢?这就可以从状态寄存器中读取标志位了。
标志位检查的库函数
GETFLAGSTATUS()GETITSATUS()
功能为读取事件标志位和中断标志位状态
USART_GETFLAGSTபைடு நூலகம்TUS()读取串口标志位
EXIT_GETFLAGSTATUS()读取EXIT线状态
那幺清除标志位的函数为CLEARFLAG()清除事件标志位
CLEARITPENGDINGBIT()清除挂起中断标志位
3.状态寄存器SR:存储当前外设的运行状态(标准位,状态位)
控制寄存器CR结构体初始化代码:
1. GPIO_initTypedef用来配置GPIO
2. NVIC_InitTypedef配置NVIC
3. EXTI_InitTypede配置EXTI
4. USART_InitTypede配置USART
控制寄存器使用库初始化外设步骤:
1.定义1个InitTypedef类型初始化结构体

STM32的寄存器操作

STM32的寄存器操作

STM32的寄存器操作和C51的操作有很大的不同。

要操作STM32可以通过库函数操作,也可直接操作寄存器。

下面分析一下寄存器的操作,以控制PE4脚输出高低电平为例:首先找到GPIOE的寄存器基地址,如下图:(STM32F4xx中文参考手册.pdf)找到GPIOE的基地址为:0x4002 1000我们要操作PE4脚,首先找到BSRR位操作寄存器,如下图BSRR寄存器偏移地址为:0x18由于我我们要操作PE4,即操作BSRR寄存器的第4位。

下面编写代码:首先定义一个指向uint32_t型的指针,之后将该指针指向BSRR寄存器地址:0x4002 1018 = 0x4002 1000 + 0x0000 00018此时要操作BSRR寄存器,直接向*p赋值就可以了,如下图:该代码即可实现PE4脚的高低电平输出。

假如不加延时,如下图:系统也可正常运行,但在这两行处打断点调试,会发现无法进入,分析原因是两行代码中间无延时,实际运行时几乎可以忽略该代码的操作,所以编译器在编译时自动优化了,此时我们只需要在声明变量的时候为其指明__IO类型变量(volatile)即可,如下图:上面的例子从最基本的寄存器分析操作STM32的,下面来分析下官方库函数是如何操作寄存器的。

首先定义GPIO寄存器组,通过结构体将寄存器组封包,如下图:由于以上寄存器地址是连续的,所以可以分在一个结构体中然后定义GPIOE寄存器组这里的GPIOE_BASE为GPIOE寄存器的基地址:0x4002 1000定义了GPIO_TypeDef类型指针GPIOE,并指向了GPIOE寄存器的基地址。

此时我们要操作PE4脚状态只需要操作GPIOE->BSRR就可以了,其它寄存器的操作参考上面的分析即可实现。

STM32f103寄存器说明

STM32f103寄存器说明

CRC寄存器(一种算法,用以确认发送过程中是否出错)数据寄存器:CRC_DR可读写,复位值:0xFFFF FFFF;独立数据寄存器:CRC_IDR临时存放任何8位数据;控制寄存器:CRC_CR只零位可用,用于复位CRC,对其写1复位,由硬件清零;PWR电源控制(控制和管理电源)电源控制寄存器:PWR_CR控制选择系统的电源电源控制/状态寄存器:PWR_CSR睡眠或待机模式电源控制BKP备份寄存器(用以控制和管理备份数据)备份数据寄存器x:BKP_DRx (x = 1 … 10) 10个16位数据寄存器用以存储用户数据RTC时钟校准寄存器:BKP_RTCCR控制实时时钟的运行备份控制寄存器:BKP_CR控制选择清除备份数据的类型备份控制/状态寄存器:BKP_CSR对侵入事件的控制RCC寄存器(时钟的选择、复位、分频)时钟控制寄存器(RCC_CR)各时钟状态显示时钟配置寄存器(RCC_CFGR)时钟分频时钟中断寄存器(RCC_CIR)控制就绪中断使能与否APB2外设复位寄存器(RCC_APB2RSTR) APB1外设复位寄存器(RCC_APB1RSTR) 复位APB各功能寄存器AHB外设时钟使能寄存器(RCC_AHBENR) AHB时钟使能控制APB2外设时钟使能寄存器(RCC_APB2ENR) APB1外设时钟使能寄存器(RCC_APB1ENR) APB1时钟使能控制备份域控制寄存器(RCC_BDCR)备份域时钟控制控制/状态寄存器(RCC_CSR)复位标志寄存器AHB外设时钟复位寄存器(RCC_AHBRSTR) 复位以太网MAC模块时钟配置寄存器2(RCC_CFGR2)时钟选择与分频GPIO寄存器(设置端口的功能)端口配置低寄存器(GPIOx_CRL) (x=A..E)端口配置高寄存器(GPIOx_CRH) (x=A..E)端口输入数据寄存器(GPIOx_IDR) (x=A..E)只读数据,读出IO口的状态端口输出数据寄存器(GPIOx_ODR) (x=A..E) 可读可写端口位设置/清除寄存器(GPIOx_BSRR) (x=A..E)端口位清除寄存器(GPIOx_BRR) (x=A..E)将某一端口清零端口配置锁定寄存器(GPIOx_LCKR) (x=A..E) 用于保护端口配值AFIO寄存器(将端口重映射到其它端口用以端口的第二功能)事件控制寄存器(AFIO_EVCR)选择时间输出端口与引脚复用重映射和调试I/O配置寄存器(AFIO_MAPR) 各寄存器功能引脚重映射选择外部中断配置寄存器1(AFIO_EXTICR1)外部中断配置寄存器2(AFIO_EXTICR2)外部中断配置寄存器3(AFIO_EXTICR3) 外部中断配置寄存器4(AFIO_EXTICR4) 外部中断引脚重映射选择EXTI 寄存器(外部中断控制器)中断屏蔽寄存器(EXTI_IMR)用于屏蔽或开放某一引脚的中断请求事件屏蔽寄存器(EXTI_EMR)用于屏蔽或开放某一引脚的事件上升沿触发选择寄存器(EXTI_RTSR) 禁止或允许某一引脚的上升沿触发下降沿触发选择寄存器(EXTI_FTSR) 禁止或允许某一引脚的下降沿触发软件中断事件寄存器(EXTI_SWIER) 控制某引脚的软件中断挂起寄存器(EXTI_PR)显示某线的引脚有无触发请求DMA寄存器(脱离cpu的传输模式)DMA中断状态寄存器(DMA_ISR)中断情况标志器DMA中断标志清除寄存器(DMA_IFCR) 手动清除标志位DMA通道x配置寄存器(DMA_CCRx)(x = 1…7)传输控制寄存器DMA通道x传输数量寄存器(DMA_CNDTRx)(x = 1…7)数据传输剩余数量存储器DMA通道x外设地址寄存器(DMA_CPARx)(x = 1…7)设置数据传输外设源或目标地址DMA通道x存储器地址寄存器(DMA_CMARx)(x = 1…7)设置存储器地址ADC寄存器(模数转换器)ADC状态寄存器(ADC_SR)AD转换标志寄存器ADC控制寄存器1(ADC_CR1)ADC控制寄存器2(ADC_CR2)设置AD转换的各种功能ADC采样时间寄存器1(ADC_SMPR1)ADC采样时间寄存器2(ADC_SMPR2)某通道选择固定的采样时间ADC注入通道数据偏移寄存器x (ADC_JOFRx)(x=1..4) 设置数据偏移量ADC看门狗高阀值寄存器(ADC_HTR)设置模拟看门狗的阀值高限ADC看门狗低阀值寄存器(ADC_LRT)设置模拟看门狗的阀值低限ADC规则序列寄存器1(ADC_SQR1)ADC规则序列寄存器2(ADC_SQR2)ADC规则序列寄存器3(ADC_SQR3)设置ADC顺序ADC注入序列寄存器(ADC_JSQR)ADC 注入数据寄存器x (ADC_JDRx) (x= 1..4)ADC数据结果寄存器ADC规则数据寄存器(ADC_DR)DAC寄存器(数模转换器)DAC控制寄存器(DAC_CR)DAC软件触发寄存器(DAC_SWTRIGR)DAC通道1的12位右对齐数据保持寄存器(DAC_DHR12R1) DAC通道1的12位左对齐数据保持寄存器(DAC_DHR12L1) DAC通道1的8位右对齐数据保持寄存器(DAC_DHR8R1) DAC通道2的12位右对齐数据保持寄存器(DAC_DHR12R2) DAC通道2的12位左对齐数据保持寄存器(DAC_DHR12L2) DAC通道2的8位右对齐数据保持寄存器(DAC_DHR8R2)双DAC的12位右对齐数据保持寄存器(DAC_DHR12RD)双DAC的12位左对齐数据保持寄存器(DAC_DHR12LD)双DAC的8位右对齐数据保持寄存器(DAC_DHR8RD) DAC通道1数据输出寄存器(DAC_DOR1)DAC通道2数据输出寄存器(DAC_DOR2)TIM1和TIM8寄存器(高级的定时计数寄存器)TIM1和TIM8控制寄存器1(TIMx_CR1)TIM1和TIM8控制寄存器2(TIMx_CR2)TIM1和TIM8从模式控制寄存器(TIMx_SMCR)TIM1和TIM8 DMA/中断使能寄存器(TIMx_DIER) TIM1和TIM8状态寄存器(TIMx_SR)TIM1和TIM8事件产生寄存器(TIMx_EGR)TIM1和TIM8捕获/比较模式寄存器1(TIMx_CCMR1) TIM1和TIM8捕获/比较模式寄存器2(TIMx_CCMR2) TIM1和TIM8捕获/比较使能寄存器(TIMx_CCER) TIM1和TIM8计数器(TIMx_CNT)TIM1和TIM8预分频器(TIMx_PSC)TIM1和TIM8自动重装载寄存器(TIMx_ARR)TIM1和TIM8重复计数寄存器(TIMx_RCR)TIM1和TIM8捕获/比较寄存器1(TIMx_CCR1)TIM1和TIM8捕获/比较寄存器2(TIMx_CCR2)TIM1和TIM8捕获/比较寄存器3(TIMx_CCR3)TIM1和TIM8捕获/比较寄存器(TIMx_CCR4)TIM1和TIM8刹车和死区寄存器(TIMx_BDTR)TIM1和TIM8 DMA控制寄存器(TIMx_DCR)TIM1和TIM8连续模式的DMA地址(TIMx_DMAR)TIMx寄存器(控制定时器)控制寄存器1(TIMx_CR1)控制寄存器2(TIMx_CR2)从模式控制寄存器(TIMx_SMCR)DMA/中断使能寄存器(TIMx_DIER)状态寄存器(TIMx_SR)事件产生寄存器(TIMx_EGR)捕获/比较模式寄存器1(TIMx_CCMR1)捕获/比较模式寄存器2(TIMx_CCMR2)捕获/比较使能寄存器(TIMx_CCER)计数器(TIMx_CNT)预分频器(TIMx_PSC)自动重装载寄存器(TIMx_ARR)捕获/比较寄存器1(TIMx_CCR1)捕获/比较寄存器2(TIMx_CCR2)捕获/比较寄存器3(TIMx_CCR3)捕获/比较寄存器4(TIMx_CCR4)DMA控制寄存器(TIMx_DCR)连续模式的DMA地址(TIMx_DMAR)TIM6和TIM7寄存器(基本定时计数器)TIM6和TIM7控制寄存器1(TIMx_CR1)TIM6和TIM7控制寄存器2(TIMx_CR2)TIM6和TIM7 DMA/中断使能寄存器(TIMx_DIER)TIM6和TIM7状态寄存器(TIMx_SR)TIM6和TIM7事件产生寄存器(TIMx_EGR)TIM6和TIM7计数器(TIMx_CNT)TIM6和TIM7预分频器(TIMx_PSC)TIM6和TIM7自动重装载寄存器(TIMx_ARR)RTC寄存器(实时时钟)RTC控制寄存器高位(RTC_CRH)RTC控制寄存器低位(RTC_CRL)16.4.3 RTC预分频装载寄存器(RTC_PRLH/RTC_PRLL) 16.4.4 RTC预分频器余数寄存器(RTC_DIVH / RTC_DIVL)RTC计数器寄存器(RTC_CNTH / RTC_CNTL) 16.4.6 RTC闹钟寄存器(RTC_ALRH/RTC_ALRL)IWDG寄存器(独立看门狗,用以监督系统硬件的正常运行)键寄存器(IWDG_KR)预分频寄存器(IWDG_PR)重装载寄存器(IWDG_RLR)状态寄存器(IWDG_SR)窗口看门狗(WWDG)寄存器(用以监督软件的正常运行)控制寄存器(WWDG_CR)配置寄存器(WWDG_CFR)状态寄存器(WWDG_SR)FSMC寄存器(可变静态存储控制器)NOR闪存和PSRAM控制器寄存器SRAM/NOR闪存片选控制寄存器1…4 (FSMC_BCR1…4)SRAM/NOR闪存片选时序寄存器1…4 (FSMC_BTR1…4) SRAM/NOR闪存写时序寄存器1…4 (FSMC_BWTR1…4)NAND闪存和PC卡控制器寄存器PC卡/NAND闪存控制寄存器2..4 (FSMC_PCR2..4) FIFO状态和中断寄存器2..4 (FSMC_SR2..4)通用存储空间时序寄存器 2..4 (FSMC_PMEM2..4)属性存储空间时序寄存器 2..4 (FSMC_PATT2..4)I/O空间时序寄存器4 (FSMC_PIO4)ECC结果寄存器2/3 (FSMC_ECCR2/3)SDIO寄存器(数据传输控制器)SDIO电源控制寄存器(SDIO_POWER) SDIO时钟控制寄存器(SDIO_CLKCR) SDIO参数寄存器(SDIO_ARG)SDIO命令寄存器(SDIO_CMD)SDIO命令响应寄存器(SDIO_RESPCMD) SDIO响应1..4寄存器(SDIO_RESPx) SDIO数据定时器寄存器(SDIO_DTIMER) SDIO数据长度寄存器(SDIO_DLEN)SDIO数据控制寄存器(SDIO_DCTRL SDIO数据计数器寄存器(SDIO_DCOUNT) SDIO状态寄存器(SDIO_STA)SDIO清除中断寄存器(SDIO_ICR)SDIO中断屏蔽寄存器(SDIO_MASK)SDIO FIFO计数器寄存器(SDIO_FIFOCNT) SDIO数据FIFO寄存器(SDIO_FIFO)USB寄存器(usb传输控制器)通用寄存器USB控制寄存器(USB_CNTR)USB中断状态寄存器(USB_ISTR)USB帧编号寄存器(USB_FNR)USB设备地址寄存器(USB_DADDR)USB分组缓冲区描述表地址寄存器(USB_BTABLE)端点寄存器USB 端点n寄存器(USB_EPnR), n=[0..7]缓冲区寄存器发送缓冲区地址寄存器n(USB_ADDRn_TX)发送数据字节数寄存器n(USB_COUNTn_TX)接收缓冲区地址寄存器n(USB_ADDRn_RX)接收数据字节数寄存器n(USB_COUNTn_RX)CAN 寄存器(邮箱控制寄存器)CAN控制和状态寄存器CAN主控制寄存器(CAN_MCR)CAN主状态寄存器(CAN_MSR)CAN发送状态寄存器(CAN_TSR)CAN接收FIFO 0寄存器(CAN_RF0R)CAN接收FIFO 1寄存器(CAN_RF1R)CAN中断使能寄存器(CAN_IER)CAN错误状态寄存器(CAN_ESR)CAN位时序寄存器(CAN_BTR)CAN邮箱寄存器发送邮箱标识符寄存器(CAN_TIxR) (x=0..2)发送邮箱数据长度和时间戳寄存器(CAN_TDTxR) (x=0..2)发送邮箱低字节数据寄存器(CAN_TDLxR) (x=0..2)发送邮箱高字节数据寄存器(CAN_TDHxR) (x=0..2)接收FIFO邮箱标识符寄存器(CAN_RIxR) (x=0..1)接收FIFO邮箱数据长度和时间戳寄存器(CAN_RDTxR) (x=0..1)接收FIFO邮箱低字节数据寄存器(CAN_RDLxR) (x=0..1)接收FIFO邮箱高字节数据寄存器(CAN_RDHxR) (x=0..1)CAN过滤器寄存器CAN 过滤器主控寄存器(CAN_FMR)CAN 过滤器模式寄存器(CAN_FM1R)CAN 过滤器位宽寄存器(CAN_FS1R)CAN 过滤器FIFO关联寄存器(CAN_FFA1R)CAN 过滤器激活寄存器(CAN_FA1R)CAN 过滤器组i的寄存器x (CAN_FiRx) (互联产品中i=0..27,其它产品中i=0..13;x=1..2)SPI和I2S寄存器(串行外设接口控制器)SPI控制寄存器1(SPI_CR1)SPI控制寄存器2(SPI_CR2)SPI 状态寄存器(SPI_SR)SPI 数据寄存器(SPI_DR)SPI CRC多项式寄存器(SPI_CRCPR)SPI Rx CRC寄存器(SPI_RXCRCR)SPI Tx CRC寄存器(SPI_TXCRCR)SPI_I2S配置寄存器(SPI_I2S_CFGR)SPI_I2S预分频寄存器(SPI_I2SPR)I2C寄存器(数据传输寄存器)控制寄存器1(I2C_CR1)控制寄存器2(I2C_CR2)自身地址寄存器1(I2C_OAR1)自身地址寄存器2(I2C_OAR2)数据寄存器(I2C_DR)状态寄存器1(I2C_SR1)状态寄存器2 (I2C_SR2)时钟控制寄存器(I2C_CCR)TRISE寄存器(I2C_TRISE)USART寄存器(通用同步异步收发器)状态寄存器(USART_SR)数据寄存器(USART_DR)波特比率寄存器(USART_BRR)控制寄存器1(USART_CR1)控制寄存器2(USART_CR2)控制寄存器3(USART_CR3)保护时间和预分频寄存器(USART_GTPR)OTG_FS控制和状态寄存器(数据传输控制器)OTG_FS全局寄存器OTG_FS控制和状态寄存器(OTG_FS_GOTGCTL)OTG_FS中断寄存器(OTG_FS_GOTGINT)OTG_FS AHB配置寄存器(OTG_FS_GAHBCFG)OTG_FS_USB配置寄存器(OTG_FS_GUSBCFG)OTG_FS复位寄存器(OTG_FS_GRSTCTL)OTG_FS控制器中断寄存器(OTG_FS_GINTSTS)OTG_FS中断屏蔽寄存器(OTG_FS_GINTMSK)OTG_FS接收状态调试读/OTG状态读和POP寄存器(OTG_FS_GRXSTSR / OTG_FS_GRXSTSP)OTG_FS接收FIFO长度寄存器(OTG_FS_GRXFSIZ)OTG_FS非周期性TX FIFO长度寄存器(OTG_FS_GNPTXFSIZ)OTG_FS非周期性TX FIFO/请求队列状态寄存器(OTG_FS_GNPTXSTS)OTG_FS通用控制器配置寄存器(OTG_FS_GCCFG)OTG_FS控制器ID寄存器(OTG_FS_CID)OTG_FS主机周期性发送FIFO长度寄存器(OTG_FS_HPTXFSIZ)OTG_FS设备IN端点发送FIFO长度寄存器(OTG_FS_DIEPTXFx)(其中x是FIFO的编号,x=1…4)主机模式下的寄存器OTG_FS主机模式配置寄存器(OTG_FS_HCFG)OTG_FS主机帧间隔寄存器(OTG_FS_HFIR)OTG_FS主机帧号/帧时间剩余寄存器(OTG_FS_HFNUM)OTG_FS主机周期性发送FIFO/请求队列寄存器(OTG_FS_HPTXSTS)OTG_FS主机所有通道中断寄存器(OTG_FS_HAINT)OTG_FS主机所有通道中断屏蔽寄存器(OTG_FS_HAINTMSK)OTG_FS主机端口控制和状态寄存器(OTG_FS_HPRT)OTG_FS主机通道x特性寄存器(OTG_FS_HCCHARx)(此处x代码通道号,x = 0...7)OTG_FS主机通道x中断寄存器(OTG_FS_HCINTx)(其中x代表通道号,x=0...7,)OTG_FS主机通道x中断屏蔽寄存器(OTG_FS_HCINTMSKx)(其中x为通道号,x=0...7) OTG_FS主机通道x传输长度寄存器(OTG_FS_HCTSIZx)(其中x为通道号,x=0...7)设备模式下的寄存器OTG_FS设备配置寄存器(OTG_FS_DCFG)OTG_FS设备控制寄存器(OTG_FS_DCTL)OTG_FS设备状态寄存器(OTG_FS_DSTS)OTG_FS设备IN端点通用中断屏蔽寄存器(OTG_FS_DIEPMSK)OTG_FS设备OUT端点通用中断屏蔽寄存器(OTG_FS_DOEPMSK)OTG_FS设备所有端点中断寄存器(OTG_FS_DAINT)OTG_FS所有端点中断屏蔽寄存器(OTG_FS_DAINTMSK)OTG_FS设备V BUS放电时间寄存器(OTG_FS_DVBUSDIS)OTG_FS设备V BUS脉冲时间寄存器(OTG_FS_DVBUSPULSE)OTG_FS设备IN端点FIFO空中断屏蔽寄存器(OTG_FS_DIEPEMPMSK)OTG_FS设备控制IN端点0控制寄存器(OTG_FS_DIEPCTL0)OTG设备端点x控制寄存器(OTG_FS_DIEPCTLx)(其中x为端点号,x=1…3)OTG_FS设备控制OUT端点0控制寄存器(OTG_FS_DOEPCTL0)OTG_FS设备OUT端点x控制寄存器(OTG_FS_DOEPCTLx)(其中x为端点号,x=1…3) OTG_FS设备端点x中断寄存器(OTG_FS_DIEPINTx)(其中x为端点号,x=0…3)OTG_FS设备端点x中断寄存器(OTG_FS_DOEPINTx)(其中x为端点号,x=0…3)OTG_FS设备IN端点0传输长度寄存器(OTG_FS_DIEPTSIZ0)OTG_FS设备OUT端点0传输长度寄存器(OTG_FS_DOEPTSIZ0)OTG_FS设备端点x传输长度寄存器(OTG_FS_DIEPTSIZx)(其中x为端点号,x=1…3) OTG_FS设备IN端点传输FIFO状态寄存器(OTG-FS_DTXFSTSx)(其中x为端点号,x=0…3)OTG_FS设备端点x传输长度寄存器(OTG_FS_DOEPTSIZx)(其中x为端点号,x=1…3) OTG_FS电源和时钟门控寄存器(OTG_FS_PCGCCTL)以太网寄存器(通信传输控制器)MAC寄存器以太网MAC设置寄存器(ETH_MACCR)以太网MAC帧过滤器寄存器(ETH_MACFFR)以太网MAC Hash列表高寄存器(ETH_MACHTHR)以太网MAC Hash列表低寄存器(ETH_MACHTLR)以太网MAC MII地址寄存器(ETH_MACMIIAR)以太网MAC MII数据寄存器(ETH_MACMIIDR)以太网MAC流控寄存器(ETH_MACFCR)以太网MAC VLAN标签寄存器(ETH_MACVLANTR)以太网MAC远程唤醒帧过滤器寄存器(ETH_MACRWUFFR)以太网MAC PMT控制和状态寄存器(ETH_MACPMTCSR)以太网MAC中断状态寄存器(ETH_MACSR)以太网MAC中断屏蔽寄存器(ETH_MAIMR)以太网MAC地址0高寄存器(ETH_MACA0HR)以太网MAC地址0低寄存器(ETH_MACA0LR)以太网MAC地址1高寄存器(ETH_MACA1HR)以太网MAC地址1低寄存器(ETH_MACA1LR)以太网MAC地址2高寄存器(ETH_MACA2HR)以太网MAC地址2低寄存器(ETH_MACA2LR)以太网MAC地址3高寄存器(ETH_MACA3HR)以太网MAC地址3低寄存器(ETH_MACA3LR)MMC寄存器以太网MMC控制寄存器(ETH_MMCCR)以太网MMC接收中断寄存器(ETH_MMCRIR)以太网MMC发送中断寄存器(ETH_MMCTIR)以太网MMC接收中断屏蔽寄存器(ETH_MMCRIMR)以太网MMC发送中断屏蔽寄存器(ETH_MMCTIMR)以太网MMC1次冲突后发送”好”帧的计数器寄存器(ETH_MMCTGFSCCR)以太网MMC1次以上冲突后发送”好”帧的计数器寄存器(ETH_MMCTGFMSCCR)以太网MMC发送”好”帧的计数器寄存器(ETH_MMCTGFCR)以太网MMC CRC错误接收帧计数器寄存器(ETH_ MMCRFCECR)以太网MMC对齐错误接收帧计数器寄存器(ETH_ MMCRFAECR)以太网MMC接收帧”好”单播帧计数器寄存器(ETH_ MMCRGUFCR)27.8. 3。

STM32F0系列寄存器操作02RCC时钟配置

STM32F0系列寄存器操作02RCC时钟配置

STM32F0系列寄存器操作02RCC时钟配置RCC(Reset and Clock Control)模块是STM32F0系列微控制器中的一个重要模块,用于配置系统时钟。

在这里,我们将详细介绍如何通过寄存器操作来配置RCC模块。

RCC模块的寄存器位于设备的的地址空间中,通过写入特定的值来配置和控制系统时钟。

以下是与RCC模块相关的一些重要寄存器:1. RCC_CR(RCC Control Register):用于配置内部和外部时钟、使能外部时钟和使能内部时钟等。

2. RCC_CFGR(RCC Configuration Register):用于配置系统时钟源、时钟分频等。

3. RCC_AHBENR(RCC AHB Peripheral Clock Enable Register):用于使能或禁用AHB总线上的外设时钟。

4. RCC_APBENR(RCC APB Peripheral Clock Enable Register):用于使能或禁用APB总线上的外设时钟。

根据需求,我们可以按照以下步骤配置RCC模块:1.确定系统时钟源:使用RCC_CFGR寄存器来选择主时钟源,可以从内部时钟(HSI或HSI48)、外部时钟(HSE或HSE32)或PLL时钟中选择。

2.配置时钟分频:使用RCC_CFGR寄存器来设置HCLK、PCLK1和PCLK2的分频系数,以确定这些时钟频率。

3.使能外设时钟:使用RCC_AHBENR和RCC_APBENR寄存器来使能或禁用需要使用的外设时钟。

下面是一个示例代码,用于配置STM32F0系列微控制器的RCC模块:```c#include "stm32f0xx.h"void RCC_Config(void)//使能外部时钟RCC->CR,=RCC_CR_HSEON;//等待外部时钟稳定while(!(RCC->CR & RCC_CR_HSERDY));//配置PLL时钟RCC->CFGR,=RCC_CFGR_PLLSRC_HSE_PREDIV;RCC->CFGR,=RCC_CFGR_PLLMUL6;//使能PLL时钟RCC->CR,=RCC_CR_PLLON;//等待PLL时钟稳定while(!(RCC->CR & RCC_CR_PLLRDY));//配置系统时钟源为PLL时钟RCC->CFGR,=RCC_CFGR_SW_PLL;//等待系统时钟源切换完成while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL);//配置时钟分频RCC->CFGR,=RCC_CFGR_HPRE_DIV1;//AHB时钟不分频RCC->CFGR,=RCC_CFGR_PPRE_DIV2;//APB1时钟分频为2//使能外设时钟RCC->AHBENR,=RCC_AHBENR_GPIOAEN;RCC->APBENR,=RCC_APBENR_TIM2EN;```在这个示例中,首先使能外部时钟(HSE)并等待其稳定,然后配置PLL时钟和分频系数。

STM32的寄存器操作

STM32的寄存器操作

STM32的寄存器操作在STM32微控制器中,寄存器操作是一种直接访问硬件寄存器的方法,用于配置和控制微控制器的各个功能和模块。

首先,STM32微控制器的寄存器是内存中特定地址的单元。

每个寄存器都有特定的功能,如配置引脚、设置时钟、控制中断等。

寄存器通常是32位宽,但有些特殊功能的寄存器可能具有不同的宽度。

为了进行寄存器操作,首先需要包含相应的头文件,该头文件包含了寄存器的定义。

在STM32中,使用CMSIS(Cortex Microcontroller Software Interface Standard)作为中间件库,该库为开发人员提供了一组用于编程STM32的接口。

以下是使用寄存器操作的一些典型步骤:1. 引入头文件:根据所需的功能,引入相应的头文件。

例如,要访问GPIO(通用输入输出)模块的寄存器,需要包含"stm32f4xx_gpio.h"头文件。

3. 访问寄存器:使用指针访问寄存器。

通过将寄存器的基地址类型转换为指针类型,可以通过指针来访问寄存器的值。

例如,使用"(GPIO_TypeDef*)"类型转换将GPIOA_BASE转换为指向GPIO寄存器的指针。

4.配置寄存器:通过逐位或设置寄存器的相应位来配置寄存器。

寄存器的每个位都对应着不同的功能或配置选项。

可以使用逻辑或运算符(,)设置寄存器的位。

例如,要将GPIOA的第5位设置为输出模式,可以使用"(1<<5)"设置相应的位。

5.读取寄存器:通过读取寄存器的值来获取相应的状态或数据。

使用指针解引用寄存器指针来获取寄存器的当前值。

例如,可以使用"(GPIOA->IDR&(1<<5))"读取GPIOA的第5位。

6.写入寄存器:通过将要写入的值赋给寄存器来更改寄存器的状态或数据。

使用指针解引用寄存器指针并将新值赋给寄存器来写入新值。

stm32_32位寄存器_频率计算_理论说明

stm32_32位寄存器_频率计算_理论说明

stm32 32位寄存器频率计算理论说明1. 引言1.1 概述:本篇文章旨在介绍STM32 32位寄存器的使用以及频率计算原理。

作为一款广泛应用于嵌入式系统开发的微控制器,STM32系列芯片具备强大的性能和丰富的功能,其中的32位寄存器是实现各种功能和控制的关键。

同时,频率计算作为嵌入式系统开发中一个重要的问题,对于正确、精确地进行时钟配置和定时操作起着关键作用。

因此,深入了解STM32寄存器与频率计算之间的关系对于开发人员来说至关重要。

1.2 文章结构:本文分为五个主要部分:引言、STM32 32位寄存器、频率计算原理、理论说明和结论。

在引言部分,将对文章主题进行概述,并详细介绍各部分的内容安排。

接下来,在STM32 32位寄存器部分,将向读者介绍什么是寄存器以及如何使用它们进行数据读写操作。

在频率计算原理部分,将阐述频率的定义和计算公式,并介绍STM32中常用的频率计算方法。

然后,在理论说明部分,将解析STM32寄存器与频率计算之间的关系,并详细说明STM32相关定时器和时钟的配置方法。

最后,在结论部分,将对全文进行总结,并探讨未来研究的方向。

1.3 目的:本文旨在帮助读者深入理解STM32 32位寄存器的使用以及频率计算原理。

通过对寄存器的介绍和应用实例的讲解,读者将能够更加熟悉并灵活运用32位寄存器来实现各种功能和控制需求。

同时,通过频率计算原理的讲解与实例说明,读者将对如何准确地计算嵌入式系统中的频率有更深入、全面的了解。

通过本文内容的学习,读者可以提高嵌入式系统开发的效率,并避免常见错误以及优化频率计算精度。

2. STM32 32位寄存器:2.1 寄存器介绍:STM32微控制器中的寄存器是一种特殊的内部存储区域,用于存储和操作各种配置和状态信息。

STM32微控制器使用了32位寄存器,这意味着每个寄存器可以容纳32位的数据。

这些寄存器通常用于控制外设、时钟设置以及输入输出等功能。

2.2 寄存器操作方法:为了访问和设置STM32微控制器中的寄存器,我们需要使用指定的地址来读取或写入数据。

STM32手册中找不到的寄存器说明

STM32手册中找不到的寄存器说明

STM32手册中找不到的寄存器说明在STM32中用到了Cortex-M3定义的三组寄存器,有关这三组寄存器的说明不在STM32的技术手册中,需要参考ARM公司发布的Cortex-M3 Technical Reference Manual (r2p0)。

在STM32的固件库中定义了三个结构体与这三个寄存器组相对应,这三个结构体与ARM手册中寄存器的对应关系如下:一、NVIC寄存器组STM32的固件库中有如下定义:typedef struct{vu32 ISER[2];u32 RESERVED0[30];vu32 ICER[2];u32 RSERVED1[30];vu32 ISPR[2];u32 RESERVED2[30];vu32 ICPR[2];u32 RESERVED3[30];vu32 IABR[2];u32 RESERVED4[62];vu32 IPR[11];} NVIC_TypeDef;它们对应ARM手册中的名称为ISER = Interrupt Set-Enable RegistersICER = Interrupt Clear-Enable RegistersISPR = Interrupt Set-Pending RegisterICPR = Interrupt Clear-Pending RegisterIABR = Active Bit RegisterIPR = Interrupt Priority Registers每个寄存器有240位,以Interrupt Set-Enable Registers说明,ISER[0]对应中断源0~31,ISER[1]对应中断源32~63,STM32只有60个中断源,所以没有ISER[2:7]。

参考STM32技术参考手册中的中断向量表,中断源的位置为:位置0 - WWDG = Window Watchdog interrupt位置1 - PVD = PVD through EXTI Line detection interrupt位置2 - TAMPER = Tamper interrupt......位置58 - DMA2_Channel3 = DMA2 Channel3 global interrupt位置59 - DMA2_Channel4_5 = DMA2 Channel4 and DMA2 Channel5 global interrupts二、系统控制寄存器组STM32的固件库中有如下定义:typedef struct{vuc32 CPUID;vu32 ICSR;vu32 VTOR;vu32 AIRCR;vu32 SCR;vu32 CCR;vu32 SHPR[3];vu32 SHCSR;vu32 CFSR;vu32 HFSR;vu32 DFSR;vu32 MMFAR;vu32 BFAR;vu32 AFSR;} SCB_TypeDef; /* System Control Block Structure */它们对应ARM手册中的名称为CPUID = CPUID Base RegisterICSR = Interrupt Control State RegisterVTOR = Vector Table Offset RegisterAIRCR = Application Interrupt/Reset Control Register SCR = System Control RegisterCCR = Configuration Control RegisterSHPR = System Handlers Priority RegisterSHCSR = System Handler Control and State Register CFSR = Configurable Fault Status RegistersHFSR = Hard Fault Status RegisterDFSR = Debug Fault Status RegisterMMFAR = Mem Manage Address RegisterBFAR = Bus Fault Address RegisterAFSR = Auxiliary Fault Status Register三、系统时钟寄存器组STM32的固件库中有如下定义:typedef struct{vu32 CTRL;vu32 LOAD;vu32 VAL;vuc32 CALIB;} SysTick_TypeDef;它们对应ARM手册中的名称为CTRL = SysTick Control and Status Register LOAD = SysTick Reload Value Register VAL = SysTick Current Value Register CALIB = SysTick Calibration Value Register。

STM32控制器位带操作详解

STM32控制器位带操作详解

STM32控制器位带操作详解位带操作是一种通过使用特殊内存映射技术,将单个位对应的整个字节或字长的操作进行原子化的方式。

位带操作在嵌入式系统中广泛应用于对特定寄存器位进行读写、置位或清除等操作,能够提高代码可读性和可维护性,并且能够避免在多线程或中断环境下的竞争条件。

在STM32控制器中,每个外设寄存器都由32位的数据类型表示,在位带操作中我们可以将每个寄存器的每个位映射到指定的位带区域。

对于STM32F4系列的控制器,它提供了16个非连续的位带区域,每个区域包含了32个32位的位带操作寄存器。

使用位带操作,我们可以通过以下步骤来进行位带操作:1.定义位带区域的基地址:将外设寄存器的基地址加上偏移量来得到位带区域的基地址。

```c//使用位带操作的函数示例uint32_t *BIT_BAND_SRAM(uint32_t periph, uint32_t pin)return (uint32_t *)(PERIPH_BB_BASE + ((periph - PERIPH_BASE) << 5) + (pin << 2));}//使用位带操作的宏示例#define BIT_BAND_SRAM(periph, pin) \*((uint32_t *)(PERIPH_BB_BASE + ((periph - PERIPH_BASE) << 5) + (pin << 2)))```2. 定义位带操作寄存器的别名:使用`uint32_t*`来定义位带操作寄存器的别名,并将其指向位带区域的基地址。

```cuint32_t *GPIOA_BSRR_ALIAS = BIT_BAND_SRAM(GPIOA_BASE,GPIO_BSRR_OFFSET);```3.对位进行操作:使用位带别名操作寄存器时,可以直接对寄存器的位进行操作,例如置位、清除或读取。

```c//设置GPIOA的第5位为高电平*GPIOA_BSRR_ALIAS,=(1<<5);//清除GPIOA的第5位*GPIOA_BSRR_ALIAS&=~(1<<5);//读取GPIOA的第5位uint32_t bitValue = *GPIOA_BSRR_ALIAS & (1 << 5);```位带操作的好处是使代码更加清晰明了,在多任务或多线程的环境下,能够避免竞争条件和冲突,并提供原子性的操作。

STM32f103寄存器说明

STM32f103寄存器说明

CRC寄存器(一种算法,用以确认发送过程中是否出错)数据寄存器:CRC_DR可读写,复位值:0xFFFF FFFF;独立数据寄存器:CRC_IDR临时存放任何8位数据;控制寄存器:CRC_CR只零位可用,用于复位CRC,对其写1复位,由硬件清零;PWR电源控制(控制和管理电源)电源控制寄存器:PWR_CR控制选择系统的电源电源控制/状态寄存器:PWR_CSR睡眠或待机模式电源控制BKP备份寄存器(用以控制和管理备份数据)备份数据寄存器x:BKP_DRx (x = 1 … 10) 10个16位数据寄存器用以存储用户数据RTC时钟校准寄存器:BKP_RTCCR控制实时时钟的运行备份控制寄存器:BKP_CR控制选择清除备份数据的类型备份控制/状态寄存器:BKP_CSR对侵入事件的控制RCC寄存器(时钟的选择、复位、分频)时钟控制寄存器(RCC_CR)各时钟状态显示时钟配置寄存器(RCC_CFGR)时钟分频时钟中断寄存器(RCC_CIR)控制就绪中断使能与否APB2外设复位寄存器(RCC_APB2RSTR) APB1外设复位寄存器(RCC_APB1RSTR)复位APB各功能寄存器AHB外设时钟使能寄存器(RCC_AHBENR) AHB时钟使能控制APB2外设时钟使能寄存器(RCC_APB2ENR) APB1外设时钟使能寄存器(RCC_APB1ENR) APB1时钟使能控制备份域控制寄存器(RCC_BDCR)备份域时钟控制控制/状态寄存器(RCC_CSR)复位标志寄存器AHB外设时钟复位寄存器(RCC_AHBRSTR)复位以太网MAC模块时钟配置寄存器2(RCC_CFGR2)时钟选择与分频GPIO寄存器(设置端口的功能)端口配置低寄存器(GPIOx_CRL) (x=A..E)端口配置高寄存器(GPIOx_CRH) (x=A..E)端口输入数据寄存器(GPIOx_IDR) (x=A..E)只读数据,读出IO口的状态端口输出数据寄存器(GPIOx_ODR) (x=A..E)可读可写端口位设置/清除寄存器(GPIOx_BSRR) (x=A..E)端口位清除寄存器(GPIOx_BRR) (x=A..E)将某一端口清零端口配置锁定寄存器(GPIOx_LCKR) (x=A..E)用于保护端口配值AFIO寄存器(将端口重映射到其它端口用以端口的第二功能)事件控制寄存器(AFIO_EVCR)选择时间输出端口与引脚复用重映射和调试I/O配置寄存器(AFIO_MAPR)各寄存器功能引脚重映射选择外部中断配置寄存器1(AFIO_EXTICR1)外部中断配置寄存器2(AFIO_EXTICR2)外部中断配置寄存器3(AFIO_EXTICR3)外部中断配置寄存器4(AFIO_EXTICR4)外部中断引脚重映射选择EXTI 寄存器(外部中断控制器)中断屏蔽寄存器(EXTI_IMR)用于屏蔽或开放某一引脚的中断请求事件屏蔽寄存器(EXTI_EMR)用于屏蔽或开放某一引脚的事件上升沿触发选择寄存器(EXTI_RTSR)禁止或允许某一引脚的上升沿触发下降沿触发选择寄存器(EXTI_FTSR)禁止或允许某一引脚的下降沿触发软件中断事件寄存器(EXTI_SWIER)控制某引脚的软件中断挂起寄存器(EXTI_PR)显示某线的引脚有无触发请求DMA寄存器(脱离cpu的传输模式)DMA中断状态寄存器(DMA_ISR)中断情况标志器DMA中断标志清除寄存器(DMA_IFCR)手动清除标志位DMA通道x配置寄存器(DMA_CCRx)(x = 1…7)传输控制寄存器DMA通道x传输数量寄存器(DMA_CNDTRx)(x = 1…7)数据传输剩余数量存储器DMA通道x外设地址寄存器(DMA_CPARx)(x = 1…7)设置数据传输外设源或目标地址DMA通道x存储器地址寄存器(DMA_CMARx)(x = 1…7)设置存储器地址ADC寄存器(模数转换器)ADC状态寄存器(ADC_SR)AD转换标志寄存器ADC控制寄存器1(ADC_CR1)ADC控制寄存器2(ADC_CR2)设置AD转换的各种功能ADC采样时间寄存器1(ADC_SMPR1)ADC采样时间寄存器2(ADC_SMPR2)某通道选择固定的采样时间ADC注入通道数据偏移寄存器x (ADC_JOFRx)(x=1..4)设置数据偏移量ADC看门狗高阀值寄存器(ADC_HTR)设置模拟看门狗的阀值高限ADC看门狗低阀值寄存器(ADC_LRT)设置模拟看门狗的阀值低限ADC规则序列寄存器1(ADC_SQR1)ADC规则序列寄存器2(ADC_SQR2)ADC规则序列寄存器3(ADC_SQR3)设置ADC顺序ADC注入序列寄存器(ADC_JSQR)ADC 注入数据寄存器x (ADC_JDRx) (x= 1..4) ADC数据结果寄存器ADC规则数据寄存器(ADC_DR)DAC寄存器(数模转换器)DAC控制寄存器(DAC_CR)DAC软件触发寄存器(DAC_SWTRIGR)DAC通道1的12位右对齐数据保持寄存器(DAC_DHR12R1) DAC通道1的12位左对齐数据保持寄存器(DAC_DHR12L1) DAC通道1的8位右对齐数据保持寄存器(DAC_DHR8R1) DAC通道2的12位右对齐数据保持寄存器(DAC_DHR12R2) DAC通道2的12位左对齐数据保持寄存器(DAC_DHR12L2) DAC通道2的8位右对齐数据保持寄存器(DAC_DHR8R2)双DAC的12位右对齐数据保持寄存器(DAC_DHR12RD)双DAC的12位左对齐数据保持寄存器(DAC_DHR12LD)双DAC的8位右对齐数据保持寄存器(DAC_DHR8RD)DAC通道1数据输出寄存器(DAC_DOR1)DAC通道2数据输出寄存器(DAC_DOR2)TIM1和TIM8寄存器(高级的定时计数寄存器)TIM1和TIM8控制寄存器1(TIMx_CR1)TIM1和TIM8控制寄存器2(TIMx_CR2)TIM1和TIM8从模式控制寄存器(TIMx_SMCR)TIM1和TIM8 DMA/中断使能寄存器(TIMx_DIER)TIM1和TIM8状态寄存器(TIMx_SR)TIM1和TIM8事件产生寄存器(TIMx_EGR)TIM1和TIM8捕获/比较模式寄存器1(TIMx_CCMR1) TIM1和TIM8捕获/比较模式寄存器2(TIMx_CCMR2) TIM1和TIM8捕获/比较使能寄存器(TIMx_CCER) TIM1和TIM8计数器(TIMx_CNT)TIM1和TIM8预分频器(TIMx_PSC)TIM1和TIM8自动重装载寄存器(TIMx_ARR)TIM1和TIM8重复计数寄存器(TIMx_RCR)TIM1和TIM8捕获/比较寄存器1(TIMx_CCR1)TIM1和TIM8捕获/比较寄存器2(TIMx_CCR2)TIM1和TIM8捕获/比较寄存器3(TIMx_CCR3)TIM1和TIM8捕获/比较寄存器(TIMx_CCR4)TIM1和TIM8刹车和死区寄存器(TIMx_BDTR)TIM1和TIM8 DMA控制寄存器(TIMx_DCR)TIM1和TIM8连续模式的DMA地址(TIMx_DMAR)TIMx寄存器(控制定时器)控制寄存器1(TIMx_CR1)控制寄存器2(TIMx_CR2)从模式控制寄存器(TIMx_SMCR)DMA/中断使能寄存器(TIMx_DIER)状态寄存器(TIMx_SR)事件产生寄存器(TIMx_EGR)捕获/比较模式寄存器1(TIMx_CCMR1)捕获/比较模式寄存器2(TIMx_CCMR2)捕获/比较使能寄存器(TIMx_CCER)计数器(TIMx_CNT)预分频器(TIMx_PSC)自动重装载寄存器(TIMx_ARR)捕获/比较寄存器1(TIMx_CCR1)捕获/比较寄存器2(TIMx_CCR2)捕获/比较寄存器3(TIMx_CCR3)捕获/比较寄存器4(TIMx_CCR4)DMA控制寄存器(TIMx_DCR)连续模式的DMA地址(TIMx_DMAR)TIM6和TIM7寄存器(基本定时计数器)TIM6和TIM7控制寄存器1(TIMx_CR1)TIM6和TIM7控制寄存器2(TIMx_CR2)TIM6和TIM7 DMA/中断使能寄存器(TIMx_DIER)TIM6和TIM7状态寄存器(TIMx_SR)TIM6和TIM7事件产生寄存器(TIMx_EGR)TIM6和TIM7计数器(TIMx_CNT)TIM6和TIM7预分频器(TIMx_PSC)TIM6和TIM7自动重装载寄存器(TIMx_ARR)RTC寄存器(实时时钟)RTC控制寄存器高位(RTC_CRH)RTC控制寄存器低位(RTC_CRL)16.4.3 RTC预分频装载寄存器(RTC_PRLH/RTC_PRLL) 16.4.4 RTC预分频器余数寄存器(RTC_DIVH / RTC_DIVL) RTC计数器寄存器(RTC_CNTH / RTC_CNTL)16.4.6 RTC闹钟寄存器(RTC_ALRH/RTC_ALRL)IWDG寄存器(独立看门狗,用以监督系统硬件的正常运行)键寄存器(IWDG_KR)预分频寄存器(IWDG_PR)重装载寄存器(IWDG_RLR)状态寄存器(IWDG_SR)窗口看门狗(WWDG)寄存器(用以监督软件的正常运行)控制寄存器(WWDG_CR)配置寄存器(WWDG_CFR)状态寄存器(WWDG_SR)FSMC寄存器(可变静态存储控制器)NOR闪存和PSRAM控制器寄存器SRAM/NOR闪存片选控制寄存器1…4 (FSMC_BCR1…4)SRAM/NOR闪存片选时序寄存器1…4 (FSMC_BTR1…4)SRAM/NOR闪存写时序寄存器1…4 (FSMC_BWTR1…4)NAND闪存和PC卡控制器寄存器PC卡/NAND闪存控制寄存器 2..4 (FSMC_PCR2..4)FIFO状态和中断寄存器2..4 (FSMC_SR2..4)通用存储空间时序寄存器 2..4 (FSMC_PMEM2..4)属性存储空间时序寄存器 2..4 (FSMC_PATT2..4)I/O空间时序寄存器4 (FSMC_PIO4)ECC结果寄存器2/3 (FSMC_ECCR2/3)SDIO寄存器(数据传输控制器)SDIO电源控制寄存器(SDIO_POWER) SDIO时钟控制寄存器(SDIO_CLKCR) SDIO参数寄存器(SDIO_ARG)SDIO命令寄存器(SDIO_CMD)SDIO命令响应寄存器(SDIO_RESPCMD) SDIO响应1..4寄存器(SDIO_RESPx) SDIO数据定时器寄存器(SDIO_DTIMER) SDIO数据长度寄存器(SDIO_DLEN)SDIO数据控制寄存器(SDIO_DCTRLSDIO数据计数器寄存器(SDIO_DCOUNT) SDIO状态寄存器(SDIO_STA)SDIO清除中断寄存器(SDIO_ICR)SDIO中断屏蔽寄存器(SDIO_MASK)SDIO FIFO计数器寄存器(SDIO_FIFOCNT) SDIO数据FIFO寄存器(SDIO_FIFO)USB寄存器(usb传输控制器)通用寄存器USB控制寄存器(USB_CNTR)USB中断状态寄存器(USB_ISTR)USB帧编号寄存器(USB_FNR)USB设备地址寄存器(USB_DADDR)USB分组缓冲区描述表地址寄存器(USB_BTABLE)端点寄存器USB 端点n寄存器(USB_EPnR), n=[0..7]缓冲区寄存器发送缓冲区地址寄存器n(USB_ADDRn_TX)发送数据字节数寄存器n(USB_COUNTn_TX)接收缓冲区地址寄存器n(USB_ADDRn_RX)接收数据字节数寄存器n(USB_COUNTn_RX)CAN 寄存器(邮箱控制寄存器)CAN控制和状态寄存器CAN主控制寄存器(CAN_MCR)CAN主状态寄存器(CAN_MSR)CAN发送状态寄存器(CAN_TSR)CAN接收FIFO 0寄存器(CAN_RF0R)CAN接收FIFO 1寄存器(CAN_RF1R)CAN中断使能寄存器(CAN_IER)CAN错误状态寄存器(CAN_ESR)CAN位时序寄存器(CAN_BTR)CAN邮箱寄存器发送邮箱标识符寄存器(CAN_TIxR) (x=0..2)发送邮箱数据长度和时间戳寄存器(CAN_TDTxR) (x=0..2)发送邮箱低字节数据寄存器(CAN_TDLxR) (x=0..2)发送邮箱高字节数据寄存器(CAN_TDHxR) (x=0..2)接收FIFO邮箱标识符寄存器(CAN_RIxR) (x=0..1)接收FIFO邮箱数据长度和时间戳寄存器(CAN_RDTxR) (x=0..1)接收FIFO邮箱低字节数据寄存器(CAN_RDLxR) (x=0..1)接收FIFO邮箱高字节数据寄存器(CAN_RDHxR) (x=0..1)CAN过滤器寄存器CAN 过滤器主控寄存器(CAN_FMR)CAN 过滤器模式寄存器(CAN_FM1R)CAN 过滤器位宽寄存器(CAN_FS1R)CAN 过滤器FIFO关联寄存器(CAN_FFA1R)CAN 过滤器激活寄存器(CAN_FA1R)CAN 过滤器组i的寄存器x (CAN_FiRx) (互联产品中i=0..27,其它产品中i=0..13;x=1..2)SPI和I2S寄存器(串行外设接口控制器)SPI控制寄存器1(SPI_CR1)SPI控制寄存器2(SPI_CR2)SPI 状态寄存器(SPI_SR)SPI 数据寄存器(SPI_DR)SPI CRC多项式寄存器(SPI_CRCPR)SPI Rx CRC寄存器(SPI_RXCRCR)SPI Tx CRC寄存器(SPI_TXCRCR)SPI_I2S配置寄存器(SPI_I2S_CFGR)SPI_I2S预分频寄存器(SPI_I2SPR)I2C寄存器(数据传输寄存器)控制寄存器1(I2C_CR1)控制寄存器2(I2C_CR2)自身地址寄存器1(I2C_OAR1)自身地址寄存器2(I2C_OAR2)数据寄存器(I2C_DR)状态寄存器1(I2C_SR1)状态寄存器2 (I2C_SR2)时钟控制寄存器(I2C_CCR)TRISE寄存器(I2C_TRISE)USART寄存器(通用同步异步收发器)状态寄存器(USART_SR)数据寄存器(USART_DR)波特比率寄存器(USART_BRR)控制寄存器1(USART_CR1)控制寄存器2(USART_CR2)控制寄存器3(USART_CR3)保护时间和预分频寄存器(USART_GTPR)OTG_FS控制和状态寄存器(数据传输控制器)OTG_FS全局寄存器OTG_FS控制和状态寄存器(OTG_FS_GOTGCTL)OTG_FS中断寄存器(OTG_FS_GOTGINT)OTG_FS AHB配置寄存器(OTG_FS_GAHBCFG)OTG_FS_USB配置寄存器(OTG_FS_GUSBCFG)OTG_FS复位寄存器(OTG_FS_GRSTCTL)OTG_FS控制器中断寄存器(OTG_FS_GINTSTS)OTG_FS中断屏蔽寄存器(OTG_FS_GINTMSK)OTG_FS接收状态调试读/OTG状态读和POP寄存器(OTG_FS_GRXSTSR / OTG_FS_GRXSTSP) OTG_FS接收FIFO长度寄存器(OTG_FS_GRXFSIZ)OTG_FS非周期性TX FIFO长度寄存器(OTG_FS_GNPTXFSIZ)OTG_FS非周期性TX FIFO/请求队列状态寄存器(OTG_FS_GNPTXSTS)OTG_FS通用控制器配置寄存器(OTG_FS_GCCFG)OTG_FS控制器ID寄存器(OTG_FS_CID)OTG_FS主机周期性发送FIFO长度寄存器(OTG_FS_HPTXFSIZ)OTG_FS设备IN端点发送FIFO长度寄存器(OTG_FS_DIEPTXFx)(其中x是FIFO的编号,x=1…4)主机模式下的寄存器OTG_FS主机模式配置寄存器(OTG_FS_HCFG)OTG_FS主机帧间隔寄存器(OTG_FS_HFIR)OTG_FS主机帧号/帧时间剩余寄存器(OTG_FS_HFNUM)OTG_FS主机周期性发送FIFO/请求队列寄存器(OTG_FS_HPTXSTS)OTG_FS主机所有通道中断寄存器(OTG_FS_HAINT)OTG_FS主机所有通道中断屏蔽寄存器(OTG_FS_HAINTMSK)OTG_FS主机端口控制和状态寄存器(OTG_FS_HPRT)OTG_FS主机通道x特性寄存器(OTG_FS_HCCHARx)(此处x代码通道号,x = 0...7)OTG_FS主机通道x中断寄存器(OTG_FS_HCINTx)(其中x代表通道号,x=0...7,)OTG_FS主机通道x中断屏蔽寄存器(OTG_FS_HCINTMSKx)(其中x为通道号,x=0...7)OTG_FS主机通道x传输长度寄存器(OTG_FS_HCTSIZx)(其中x为通道号,x=0...7)设备模式下的寄存器OTG_FS设备配置寄存器(OTG_FS_DCFG)OTG_FS设备控制寄存器(OTG_FS_DCTL)OTG_FS设备状态寄存器(OTG_FS_DSTS)OTG_FS设备IN端点通用中断屏蔽寄存器(OTG_FS_DIEPMSK)OTG_FS设备OUT端点通用中断屏蔽寄存器(OTG_FS_DOEPMSK)OTG_FS设备所有端点中断寄存器(OTG_FS_DAINT)OTG_FS所有端点中断屏蔽寄存器(OTG_FS_DAINTMSK)OTG_FS设备V BUS放电时间寄存器(OTG_FS_DVBUSDIS)OTG_FS设备V BUS脉冲时间寄存器(OTG_FS_DVBUSPULSE)OTG_FS设备IN端点FIFO空中断屏蔽寄存器(OTG_FS_DIEPEMPMSK)OTG_FS设备控制IN端点0控制寄存器(OTG_FS_DIEPCTL0)OTG设备端点x控制寄存器(OTG_FS_DIEPCTLx)(其中x为端点号,x=1…3)OTG_FS设备控制OUT端点0控制寄存器(OTG_FS_DOEPCTL0)OTG_FS设备OUT端点x控制寄存器(OTG_FS_DOEPCTLx)(其中x为端点号,x=1…3)OTG_FS设备端点x中断寄存器(OTG_FS_DIEPINTx)(其中x为端点号,x=0…3)OTG_FS设备端点x中断寄存器(OTG_FS_DOEPINTx)(其中x为端点号,x=0…3)OTG_FS设备IN端点0传输长度寄存器(OTG_FS_DIEPTSIZ0)OTG_FS设备OUT端点0传输长度寄存器(OTG_FS_DOEPTSIZ0)OTG_FS设备端点x传输长度寄存器(OTG_FS_DIEPTSIZx)(其中x为端点号,x=1…3)OTG_FS设备IN端点传输FIFO状态寄存器(OTG-FS_DTXFSTSx)(其中x为端点号,x=0…3) OTG_FS设备端点x传输长度寄存器(OTG_FS_DOEPTSIZx)(其中x为端点号,x=1…3) OTG_FS电源和时钟门控寄存器(OTG_FS_PCGCCTL)以太网寄存器(通信传输控制器)MAC寄存器以太网MAC设置寄存器(ETH_MACCR)以太网MAC帧过滤器寄存器(ETH_MACFFR)以太网MAC Hash列表高寄存器(ETH_MACHTHR)以太网MAC Hash列表低寄存器(ETH_MACHTLR)以太网MAC MII地址寄存器(ETH_MACMIIAR)以太网MAC MII数据寄存器(ETH_MACMIIDR)以太网MAC流控寄存器(ETH_MACFCR)以太网MAC VLAN标签寄存器(ETH_MACVLANTR)以太网MAC远程唤醒帧过滤器寄存器(ETH_MACRWUFFR)以太网MAC PMT控制和状态寄存器(ETH_MACPMTCSR)以太网MAC中断状态寄存器(ETH_MACSR)以太网MAC中断屏蔽寄存器(ETH_MAIMR)以太网MAC地址0高寄存器(ETH_MACA0HR)以太网MAC地址0低寄存器(ETH_MACA0LR)以太网MAC地址1高寄存器(ETH_MACA1HR)以太网MAC地址1低寄存器(ETH_MACA1LR)以太网MAC地址2高寄存器(ETH_MACA2HR)以太网MAC地址2低寄存器(ETH_MACA2LR)以太网MAC地址3高寄存器(ETH_MACA3HR)以太网MAC地址3低寄存器(ETH_MACA3LR)MMC寄存器以太网MMC控制寄存器(ETH_MMCCR)以太网MMC接收中断寄存器(ETH_MMCRIR)以太网MMC发送中断寄存器(ETH_MMCTIR)以太网MMC接收中断屏蔽寄存器(ETH_MMCRIMR)以太网MMC发送中断屏蔽寄存器(ETH_MMCTIMR)以太网MMC1次冲突后发送”好”帧的计数器寄存器(ETH_MMCTGFSCCR)以太网MMC1次以上冲突后发送”好”帧的计数器寄存器(ETH_MMCTGFMSCCR)以太网MMC发送”好”帧的计数器寄存器(ETH_MMCTGFCR)以太网MMC CRC错误接收帧计数器寄存器(ETH_ MMCRFCECR)以太网MMC对齐错误接收帧计数器寄存器(ETH_ MMCRFAECR)以太网MMC接收帧”好”单播帧计数器寄存器(ETH_ MMCRGUFCR)。

STM32的寄存器操作

STM32的寄存器操作

STM32的寄存器操作和C51的操作有很大的不同。

要操作STM32可以通过库函数操作,也可直接操作寄存器。

下面分析一下寄存器的操作,以控制PE4脚输出高低电平为例:首先找到GPIOE的寄存器基地址,如下图:(STM32F4xx中文参考手册.pdf)找到GPIOE的基地址为:0x4002 1000我们要操作PE4脚,首先找到BSRR位操作寄存器,如下图BSRR寄存器偏移地址为:0x18由于我我们要操作PE4,即操作BSRR寄存器的第4位。

下面编写代码:首先定义一个指向uint32_t型的指针,之后将该指针指向BSRR寄存器地址:0x4002 1018 = 0x4002 1000 + 0x0000 00018此时要操作BSRR寄存器,直接向*p赋值就可以了,如下图:该代码即可实现PE4脚的高低电平输出。

假如不加延时,如下图:系统也可正常运行,但在这两行处打断点调试,会发现无法进入,分析原因是两行代码中间无延时,实际运行时几乎可以忽略该代码的操作,所以编译器在编译时自动优化了,此时我们只需要在声明变量的时候为其指明__IO类型变量(volatile)即可,如下图:上面的例子从最基本的寄存器分析操作STM32的,下面来分析下官方库函数是如何操作寄存器的。

首先定义GPIO寄存器组,通过结构体将寄存器组封包,如下图:由于以上寄存器地址是连续的,所以可以分在一个结构体中然后定义GPIOE寄存器组这里的GPIOE_BASE为GPIOE寄存器的基地址:0x4002 1000定义了GPIO_TypeDef类型指针GPIOE,并指向了GPIOE寄存器的基地址。

此时我们要操作PE4脚状态只需要操作GPIOE->BSRR就可以了,其它寄存器的操作参考上面的分析即可实现。

STM32寄存器操作举例

STM32寄存器操作举例

(*volatile unsigned long)0x40010C00 = (2<<20) | (0<<22); // 为简单起见,不管其他位了
楼主你是否能看懂这句 C 语言??volatile 什么意思什么用?指针的本质是什么?为什么能这样用? 2<<20 是什么 意思,为什么能这样用?楼主我真的不是为难你,嵌入式都这么写的,ST 的头文件也是这么定义
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;
都是有意义的名字,哪里难记了??而且名字都来自 ST 的官方 datasheet、这个程序跟你用 51 写的程 序我还真的 没看出差别有很大 .....
加入刚才的 GPIOB 寄存器,看看 ST 的官方库是怎么定义的, \Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h 用 UltraEdit 打开,搜索 GPIOB
void main(void)
{ RCC_APB2ENR |= 1<<3; GPIOB_CRL = (2<<20) | (0<<22); GPIOB_ODR = 1<<5; while (1) {
} }
RCC_APB2ENR RCC 是时钟寄存器 , APB2 是外设 2 ,ENR ,可以理解为 enable GPIOB_CRL GPIO B control 控制寄存器 GPIOB_ODR GPIO(general purpose input output) B output data register 输出数据寄存器

手把手教你STM32笔记解析

手把手教你STM32笔记解析

STM32F1031、IO口处理IO口包含7个寄存器配置寄存器两个:CRL(32),CRH(32)数据寄存器两个:IDR(32),ODR(32),但是他们只用了16位置位复位寄存器:BSRR(32)复位寄存器:BRR(16)锁存寄存器:LCKR(32)常用的有前面四个:其中前面两个是用来设置的,后面两个是用来操作的。

每个IO口占用四位进行设置(低两位是MODE,高两位是CNF),每组16个,总共需要64个位设置,分别从CRL低位开始,到CRH 的高位结束。

每个IO口四位二进制的常用配置:模拟输入模式(ADC):0x0;推挽输出模式(输出口50MHz):0x3;上/下拉输入模式(输入口用):0x8;复用输出(第二供能):0xB;STM32F407学习笔记1、系统时钟的设置:Stm32_Clock_Init(168,4,2,7);参数分别是:PLLN,PLLM,PLLP,PLLQHSE分频PLLM之后为VCO的输入,一般VCO的输入要求为1~2MHz,一般建议取为2MHz,防止PLL抖动。

VCO输出是输入的PLLN倍频,SYSCLK在去PLL输出时,SYSCLK = PLL=HSE/PLLM*PLLN/PLLP而PLLQ是为48MHz时钟配置用的,CLK48= HSE/PLLM*PLLN/PLLQ所以要设置系统时钟为168MHz时候推荐的参数取值为SYSCLK = PLL=HSE/PLLM*PLLN/PLLP =8/4*168/2=168MHzCLK48= HSE/PLLM*PLLN/PLLQ=8/4*168/7=48MHz2、延时函数设置:delay_init(168);延时函数参数为系统时钟SYSCLK初始化后就可以调用延时函数:delay_ms(ms);参数不能大于65536,因为参数是16位数delay_us(us);参数不能大于7989153、普通IO的使用a.首先是使能时钟RCC->AHB1ENR|=1<<5;在该寄存器相应的位置1即可b.IO口模式设置:GPIO_Set(GPIOF,PIN9|PIN10,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD _PU);参数分别是:GPIOx,PIN9|PIN10(具体对应的口,可以使用与的关系)因为每种占一位#define PIN01<<0#define PIN11<<1#define PIN21<<2#define PIN31<<3#define PIN41<<4#define PIN51<<5#define PIN61<<6#define PIN71<<7#define PIN81<<8#define PIN91<<9#define PIN101<<10#define PIN111<<11#define PIN121<<12#define PIN131<<13#define PIN141<<14#define PIN151<<15Mode:四种,各个模式只能设置一种#define GPIO_MODE_IN 0//普通输入模式#define GPIO_MODE_OUT 1 //普通输出模式#define GPIO_MODE_AF2//AF功能模式#define GPIO_MODE_AIN3//模拟输入模式输出推挽或者开漏选择:#define GPIO_OTYPE_PP0//推挽输出#define GPIO_OTYPE_OD1//开漏输出推挽输出可输出强的高、低电平,用于连接数字器件开漏输出相当于三极管的集电极,电流型驱动,只可以输出强的低电平,高电平需外拉。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PLLXTPRE:HSE 分频器作为 PLL 输入(HSE divider for PLL entry)。由软件
置‘1’或清‘0’来分频 HSE 后作为 PLL 输入时钟。只能在关闭 PLL 时才能
写入此位。
0:HSE 不分频; 1:HSE 2 分频
PLLSRC:PLL 输入时钟源(PLL entry clock source)。由软件置‘1’或清‘0’
保 HSI HSI
留 RDY ON
位 31:26 位 25 位 24
位 23:20 位 19 位 18
位 17
位 16
位 15:8 位 7:3
保留,始终读为 0。 PLLRDY:PLL 时钟就绪标志(PLL clock ready flag)。PLL 锁定后由硬件置‘1’。 0:PLL 未锁定; 1:PLL 锁定。 PLLON:PLL 使能(PLL enable)。由软件置‘1’或清零。当进入待机和停止 模式时,该位由硬件清零。当 PLL 时钟被用作或被选择将要作为系统时钟时, 该位不能被清零。 0:PLL 关闭; 1:PLL 使能。 保留,始终读为 0。 CSSON:时钟安全系统使能(Clock security system enable)。由软件置‘1’或 清零以使能时钟监测器。 0:时钟监测器关闭; 1:如果外部 4-16MHz 振荡器就绪,时钟监测器开启。 HSEBYP:外部高速时钟旁路(External high-speed clock bypass)。在调试模式 下由软件置‘1’或清零来旁路外部晶体振荡器。只有在外部 4-16MHz 振荡器 关闭的情况下,才能写入该位。 0:外部 4-16MHz 振荡器没有旁路; 1:外部 4-16MHz 外部晶体振荡器被旁路。 HSERDY:外部高速时钟就绪标志(External high-speed clock ready flag)。由硬 件置‘1’来指示外部 4-16MHz 振荡器已经稳定。在 HSEON 位清零后,该位 需要 6 个外部 4-16MHz 振荡器周期清零。 0:外部 4-16MHz 振荡器没有就绪; 1:外部 4-16MHz 振荡器就绪。 HSEON:外部高速时钟使能(External high-speed clock enable)。由软件置‘1’ 或清零。当进入待机和停止模式时,该位由硬件清零,关闭 4-16MHz 外部振荡 器。当外部 4-16MHz 振荡器被用作或被选择将要作为系统时钟时,该位不能被 清零。 0:HSE 振荡器关闭; 1:HSE 振荡器开启。 HSICAL[7:0]:内部高速时钟校准(Internal high-speed clock calibration)。系统 启动时,这些位被自动初始化。 HSITRIM[4:0]:内部高速时钟调整(Internal high-speed clock trimming)。由软 件写入来调整内部高速时钟,它们被叠加在 HSICAL[7:0]数值上。这些位在
位0
HSION:内部高速时钟使能(Internal high-speed clock enable)。由软件置‘1’
或清零。当从待机和停止模式返回或用作系统时钟的外部 4-16MHz 振荡器发生
故障时,该位由硬件置‘1’来启动内部 8MHz 的 RC 振荡器。当内部 8MHz
振荡器被直接或间接地用作或被选择将要作为系统时钟时,该位不能被清零。
1
《基于 ARM Cortex-M3 的 STM32 系列嵌入式微控制器应用实践》——彭刚、秦志强
HSICAL[7:0]的基础上,让用户可以输入一个调整数值,根据电压和温度的变
化调整内部 HSI RC 振荡器的频率。默认数值为 16,可以把 HSI 调整到 8MHz
±1%;每步 HSICAL 的变化调整约 40kHz。
来选择 PLL 输入时钟源。只能在关闭 PLL 时才能写入此位。
0:HSI 振荡器时钟经 2 分频后作为 PLL 输入时钟;
1:HSE 时钟作为 PLL 输入时钟。
ADCPRE[1:0]:ADC 预分频(ADC prescaler)。由软件置‘1’或清‘0’来确
定 ADC 时钟频率。
00:PCLK2 2 分频后作为 ADC 时钟; 时钟(HSE)输出; 111:PLL 时钟 2 分频后输出。
注意:该时钟输出在启动和切换 MCO 时钟源时可能会被截断。在系统时钟作
为输出至 MCO 引脚时,要保证输出时钟频率不超过 50MHz(I/O 口最高频率)。
保留
USBPRE:USB 预分频(USB prescaler)。由软件置‘1’或清‘0’来产生 48MHz
9
LSE RDYIE
8
LSI RDYIE
7
CSSF
65
保留
4
PLL RDYF
3
HSE RDYF
2
HSI RDYF
1
LSE RDYF
0
LSI RDYF
位 31:24 位 23
位 22:21 位 20
位 19
位 18
位 17
位 16
位 15:13 位 12
位 11
位 10
位9
保留,始终读为 0。 CSSC:清除时钟安全系统中断(Clock security system interrupt clear)。由软件 置‘1’来清除 CSSF 安全系统中断标志位 CSSF。 0:无作用; 1:清除 CSSF 安全系统中断标志位。 保留,始终读为 0。 PLLRDYC:清除 PLL 就绪中断(PLL ready interrupt clear)。由软件置‘1’来 清除 PLL 就绪中断标志位 PLLRDYF。 0:无作用; 1:清除 PLL 就绪中断标志位 PLLRDYF。 HSERDYC:清除 HSE 就绪中断 (HSE ready interrupt clear)。由软件置‘1’来 清除 HSE 就绪中断标志位 HSERDYF。 0:无作用; 1:清除 HSE 就绪中断标志位 HSERDYF。 HSIRDYC:清除 HSI 就绪中断(HSI ready interrupt clear)。由软件置‘1’来 清除 HSI 就绪中断标志位 HSIRDYF。 0:无作用; 1:清除 HSI 就绪中断标志位 HSIRDYF。 LSERDYC:清除 LSE 就绪中断(LSE ready interrupt clear)。由软件置‘1’来 清除 LSE 就绪中断标志位 LSERDYF。 0:无作用; 1:清除 LSE 就绪中断标志位 LSERDYF。 LSIRDYC:清除 LSI 就绪中断(LSI ready interrupt clear)。由软件置‘1’来清 除 LSI 就绪中断标志位 LSIRDYF。 0:无作用; 1:清除 LSI 就绪中断标志位 LSIRDYF。 保留,始终读为 0。 PLLRDYIE:PLL 就绪中断使能(PLL ready interrupt enable)。由软件置‘1’ 或清‘0’来使能或关闭 PLL 就绪中断。 0:PLL 就绪中断关闭; 1:PLL 就绪中断使能。 HSERDYIE:HSE 就绪中断使能(HSE ready interrupt enable)。由软件置‘1’ 或清‘0’来使能或关闭外部 4-16MHz 振荡器就绪中断。 0:HSE 就绪中断关闭; 1:HSE 就绪中断使能。 HSIRDYIE:HSI 就绪中断使能 (HSI ready interrupt enable)。由软件置‘1’或 清‘0’来使能或关闭内部 8MHz RC 振荡器就绪中断。 0:HSI 就绪中断关闭; 1:HSI 就绪中断使能。 LSERDYIE:LSE 就绪中断使能(LSE ready interrupt enable)。由软件置‘1’ 或清‘0’来使能或关闭外部 32kHz RC 振荡器就绪中断。
保留
PLL PLL
RDY ON
复位值:0x0000 XX83,X 代表未定义。
23 22 21 20 19 18 17 16
保留
CSS HSE HSE HSE
ON BYP RDY ON
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSICAL[7:0]
HSITRIM[4:0]
位2
保留,始终读为 0。
位1
HSIRDY:内部高速时钟就绪标志(Internal high-speed clock ready flag)。由硬
件置‘1’来指示内部 8MHz 振荡器已经稳定。在 HSION 位清零后,该位需要
6 个内部 8MHz 振荡器周期清零。
0:内部 8MHz 振荡器没有就绪; 1:内部 8MHz 振荡器就绪。
0:内部 8MHz 振荡器关闭; 1:内部 8MHz 振荡器开启。
(2)时钟配置寄存器(RCC_CFGR) 首地址:0x4002,1000 地址偏移:0x04 复位值:0x0000 0000。 访问:0 到 2 个等待周期,字、半字和字节访问。只有当访问发生在时钟切换时,才会插入 1 或 2 个等待周期。
32 SWS[1:0]
10 SW[1:0]
位 31:27 位 26:24
位 23 位 22
位 21:18
保留,始终读为 0。
MCO:微控制器时钟输出(Microcontroller clock output)。由软件置‘1’或清 零。
0xx:没有时钟输出;
100:系统时钟(SYSCLK)输出;
101:内部 RC 振荡器时钟(HIS)输出;
的 USB 时钟。在 RCC_APB1ENR 寄存器中使能 USB 时钟之前,必须保证该位 已经有效。如果 USB 时钟被使能,该位不能被清零。 0:PLL 时钟 1.5 倍分频作为 USB 时钟; 1:PLL 时钟直接作为 USB 时钟。
PLLMUL:PLL 倍频系数(PLL multiplication factor)。由软件设置来确定 PLL 倍频系数。只有在 PLL 关闭的情况下才可被写入。 注意:PLL 的输出频率不能超过 72MHz。 0000:PLL 2 倍频输出; 1000:PLL 10 倍频输出;
相关文档
最新文档