STM32F103xx_datasheet_cn
- 格式:pdf
- 大小:448.86 KB
- 文档页数:19
一、介绍stm32f103 是意法半导体(STMicroelectronics)公司推出的一款32位ARM Cortex-M3处理器的微控制器。
它采用了先进的32位处理技术,具有高性能、低功耗和丰富的外设接口,广泛应用于工业控制、家电、汽车电子等领域。
在stm32f103系列微控制器中,标准模板是一种非常常用的开发工具,本文将详细介绍stm32f103标准模板的相关内容。
二、stm32f103的标准模板在stm32f103系列微控制器中,标准模板是一种可以帮助开发者快速开发应用程序的工具。
它包含了一些常用的硬件驱动和软件库,使得开发者可以更加轻松地编写和调试程序。
stm32f103标准模板的主要特点包括:1. 硬件抽象层(HAL)驱动:标准模板提供了一套硬件抽象层的驱动程序,可以方便地操作微控制器的各种外设,如USART、SPI、I2C 等。
2. 实用工具库(Cortex Microcontroller Software Interface Standard,CMSIS):标准模板包含了CMSIS库,可以帮助开发者更好地利用ARM Cortex-M3处理器的功能和特性。
3. 例程和模板代码:标准模板中还包含了一些常用的例程和模板代码,可以作为开发者开发新项目的基础。
三、stm32f103标准模板的使用开发者可以按照以下步骤使用stm32f103标准模板进行开发:1. 创建新项目:在集成开发环境(IDE)中创建一个新的stm32f103项目,选择使用标准模板。
2. 配置工程属性:设置工程的属性,包括芯片型号、时钟配置、编译器选项等。
3. 编写应用程序:根据项目需求编写应用程序,利用标准模板提供的驱动程序和库函数操作外设。
4. 编译和调试:编译应用程序,将生成的可执行文件下载到stm32f103微控制器中进行调试。
四、stm32f103标准模板的优势使用stm32f103标准模板进行开发有以下几个优势:1. 减少开发周期:标准模板中包含了丰富的驱动程序和库函数,可以帮助开发者快速编写应用程序,从而减少开发周期。
stm32f103中文手册一、概述stm32f103是一款基于ARM Cortex-M3内核的32位微控制器,具有高性能、低功耗和高集成度等特点。
它适用于各种工业控制、消费电子、医疗设备、通信和汽车应用等领域。
stm32f103的主要特性有:主频可达72MHz的ARM Cortex-M3内核,支持Thumb-2指令集和嵌套向量中断控制器(NVIC)64KB至128KB的闪存(Flash)和20KB的静态随机存储器(SRAM)7个定时器,包括3个16位通用定时器、1个16位高级定时器、2个基本定时器和1个系统滴答定时器2个12位模数转换器(ADC),每个ADC有16个通道,可达1Msps的采样率2个数字模拟转换器(DAC),每个DAC有1个通道,可达1Msps的转换率3个通用同步异步收发器(USART),支持同步和异步模式,以及智能卡、IrDA和调制解调器接口2个串行外设接口(SPI),支持全双工和单向模式,以及多主机和多从机模式2个I2C总线接口,支持标准模式(100Kbps)、快速模式(400Kbp s)和快速模式+(1Mbps)1个USB 2.0全速设备接口,支持12Mbps的数据传输率1个CAN总线接口,支持标准帧和扩展帧格式,以及时间触发通信模式37到51个通用输入输出端口(GPIO),可配置为推挽或开漏输出,上拉或下拉输入,或者复用为其他外设功能7到12个外部中断线,可配置为上升沿、下降沿或双边沿触发3个电源管理模式,包括运行模式、睡眠模式和停止模式内部8MHz的高速内部振荡器(HSI),可作为系统时钟或PLL时钟的输入源外部4至16MHz的高速外部振荡器(HSE),可作为系统时钟或PLL 时钟的输入源内部40kHz的低速内部振荡器(LSI),可作为看门狗定时器或自动唤醒单元的时钟源外部32.768kHz的低速外部振荡器(LSE),可作为实时时钟或校准HSI的时钟源可编程电压检测器(PVD),可监测电源电压是否低于设定阈值,并产生中断或复位信号可选的温度传感器,可测量芯片内部温度,并通过ADC读取可选的备份域,包括4KB的备份SRAM和20个备份寄存器,可在断电后保持数据调试功能,包括串行线调试(SWD)接口和串行线观察(SWO)输出stm32f103有多种封装形式和引脚数目,如LQFP48、LQFP64、LQFP 100等。
STM32F103xx系列单片机介绍STM32F103xx增强型系列由意法半导体集团设计,使用高性能的ARMCortex-M332位的RISC 内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。
所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:多达2个I2C和SPI、3个USART、一个USB和一个CAN。
1、结构与功能■内核:ARM32位的Cortex™-M3CPU−72MHz,1.25DMips/MHz(Dhrystone2.1),0等待周期的存储器−支持单周期乘法和硬件除法■存储器−从32K字节至512K字节的闪存程序存储器(STM32F103xx中的第二个x表示FLASH容量,其中:“4”=16K,“6”=32K,“8”=64K,B=128K,C=256K,D=384K,E=512K)−从6K字节至64K字节的SRAM■时钟、复位和电源管理−2.0至3.6伏供电和I/O管脚−上电/断电复位(POR/PDR)、可编程电压监测器(PVD)−内嵌4至16MHz高速晶体振荡器−内嵌经出厂调校的8MHz的RC振荡器−内嵌40kHz的RC振荡器−PLL供应CPU时钟−带校准功能的32kHzRTC振荡器■低功耗−睡眠、停机和待机模式−VBAT为RTC和后备寄存器供电■2个12位模数转换器,1us转换时间(16通道)−转换范围:0至3.6V−双采样和保持功能−温度传感器■DMA−7通道DMA控制器−支持的外设:定时器、ADC、SPI、I2C和USART■多达80个快速I/O口−26/37/51/80个多功能双向5V兼容的I/O口−所有I/O口可以映像到16个外部中断■调试模式−串行线调试(SWD)和JTAG接口■多达7个定时器−多达3个16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道−16位6通道高级控制定时器−多达6路PWM输出−死区控制、边缘/中间对齐波形和紧急制动−2个看门狗定时器(独立的和窗口型的)−系统时间定时器:24位自减型■多达9个通信接口−多达2个I2C接口(SMBus/PMBus)−多达3个USART接口,支持ISO7816,LIN,IrDA接口和调制解调控制−多达2个SPI同步串行接口(18兆位/秒)−CAN接口(2.0B主动)−USB2.0全速接口■ECOPACK®封装(兼容RoHS)2、特点概述ARM®的Cortex™-M3核心ARM的Cortex-M3处理器是最新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减的管脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应。
数据手册STM32F103x6STM32F103x8 STM32F103xB 增强型,32位基于ARM核心的带闪存、USB、CAN的微控制器7个16位定时器、2个ADC 、9个通信接口功能■内核:ARM 32位的Cortex™-M3 CPU− 72MHz,1.25DMips/MHz(Dhrystone2.1),0等待周期的存储器−单周期乘法和硬件除法■存储器−从32K字节至128K字节的闪存程序存储器−从6K字节至20K字节的SRAM■时钟、复位和电源管理− 2.0至3.6伏供电和I/O管脚−上电/断电复位(POR/PDR)、可编程电压监测器(PVD)−内嵌4至16MHz高速晶体振荡器−内嵌经出厂调校的8MHz的RC振荡器−内嵌40kHz的RC振荡器− PLL供应CPU时钟−带校准功能的32kHz RTC振荡器■低功耗−睡眠、停机和待机模式−V BAT为RTC和后备寄存器供电■2个12位模数转换器,1us转换时间(16通道) −转换范围:0至3.6V−双采样和保持功能−温度传感器■DMA−7通道DMA控制器−支持的外设:定时器、ADC、SPI、I2C和USART■多达80个快速I/O口− 26/37/51/80个多功能双向5V兼容的I/O口−所有I/O口可以映像到16个外部中断■调试模式−串行线调试(SWD)和JTAG接口■多达7个定时器−多达3个16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道− 16位6通道高级控制定时器−多达6路PWM输出−死区控制、边缘/中间对齐波形和紧急制动−2个看门狗定时器(独立的和窗口型的)−系统时间定时器:24位自减型■多达9个通信接口−多达2个I2C接口(SMBus/PMBus)−多达3个USART接口,支持ISO7816,LIN,IrDA接口和调制解调控制−多达2个SPI同步串行接口(18兆位/秒)− CAN接口(2.0B 主动)− USB 2.0全速接口■ECOPACK®封装(兼容RoHS)表一 器件列表参考基本型号STM32F103x6 STM32F103C6,STM32F103R6,STM32F103T6STM32F103x8 STM32F103C8, STM32F103R8,STM32F103V8, STM32F103T8 STM32F103xB STM32F103RB, STM32F103VB,STM32F103C8数据手册1 介绍 (3)2 规格说明 (3)2.1 器件一览 (4)2.2 概述 (5)3 管脚定义 (11)4 存储器映像 (19)5 电气特性 (20)6 封装参数 (20)7 订货代码 (20)7.1 后续的产品系列 (21)8 版本历史 (21)附录A 重要提示 (22)A.1PD0和PD1在输出模式下 (22)A.2ADC自动注入通道 (22)A.3ADC的混合同步注入+交替模式 (22)A.4ADC通道0 (22)1介绍本文给出了STM32F103xx增强型的订购信息和器件的机械特性。
stm32f103中文手册概述72 MHz的最大主频,1.25 DMIPS/MHz的性能64 KB到512 KB的闪存,20 KB到64 KB的SRAM7个通道的DMA控制器2个12位模数转换器(ADC),每一个ADC最多16个通道2个数字摹拟转换器(DAC)3个高级控制定时器,4个通用定时器,2个基本定时器,1个系统定时器1个USB全速设备接口2个CAN总线接口3个I2C总线接口5个USART接口,其中3个支持同步通信2个SPI总线接口1个SDIO接口51到112个GPIO引脚,支持中断和唤醒功能7到12位的LCD驱动器(仅STM32F103x8和STM32F103xB)多种低功耗模式,包括停机、待机、睡眠和住手模式多种时钟源和时钟安全系统多种复位源和复位管理系统多种保护机制,包括闪存写保护、调试访问保护、电源电压检测等引脚分配stm32f103有多种封装形式,包括LQFP64、LQFP100、LQFP144、BG A100、BGA144等。
不同封装形式的引脚分配如下图所示:![引脚分配图]存储器映射stm32f103的存储器空间为4GB,分为两部份:代码区和系统区。
代码区占用前2GB,用于存放程序代码和数据。
系统区占用后2GB,用于存放外设寄存器和系统服务。
存储器映射如下表所示:---地址范围 ---描述 ---------------0x0000 0000 0x1FFF FFFF ---代码区 -------0x2000 0000 0x2000 FFFF ---SRAM -------0x4000 0000 0x4002 3FFF ---外设寄存器 -------0x4200 0000 0x43FF FFFF ---外设位带区 -------0xE000 0000 0xE00F FFFF ---Cortex-M3系统服务 ----外设介绍ADCstm32f103有两个12位ADC,每一个ADC最多可以配置16个输入通道。
STM32F103中文手册概述32位ARM® Cortex®-M3内核,最高运行频率72 MHz从16 KB到1 MB的闪存,从6 KB到96 KB的SRAM从36到144个引脚的不同封装,支持LQFP、BGA、TFBGA、UFBGA和V FQFPN等从1.65 V到3.6 V的宽电源电压范围,支持低功耗模式和电池供电从-40°C到+105°C的工作温度范围多达11个通信接口,包括3个USART、2个UART、2个I2C、2个SPI、1个CAN和1个USB 2.0全速多达15个定时器,包括7个16位通用定时器、2个16位基本定时器、2个16位高级定时器、2个32位定时器和2个看门狗定时器多达3个12位模数转换器(ADC),每秒可采样1.2 M次两路12位数模转换器(DAC)多达80个外部中断/事件源多达112个GPIO端口,支持5 V耐压CRC计算单元,用于检测数据传输错误实时时钟(RTC),支持日历功能和闹钟功能嵌入式内存保护单元(MPU),用于增强应用程序安全性嵌入式调试支持,包括串行线调试(SWD)和JTAG接口7层DMA控制器,支持所有外设数据传输可选的双银行闪存模式,支持实时软件更新存储器映射STM32F103系列单片机的存储器映射如下图所示:![存储器映射]代码区:包括闪存和系统存储器。
闪存用于存储用户程序代码和数据。
系统存储器用于存储引导加载程序(bootloader)和设备标识符。
SRAM区:包括SRAM1和SRAM2。
SRAM1用于存储用户程序数据和堆栈。
SRAM2用于存储备份寄存器和备份域。
外设区:包括APB1外设、APB2外设和AHB外设。
APB1外设和APB2外设是通过两个高速总线矩阵连接到内核的低速外设。
AHB外设是通过一个高速总线矩阵连接到内核的高速外设。
外部设备区:包括FSMC区域、NOR/PSRAM区域和NAND/CF区域。
stm32f103芯片手册STM32F103是一款Cortex-M3内核的32位MCU芯片,由意法半导体(STMicroelectronics)公司生产。
该芯片具有低功耗、高计算性能和丰富的外设接口的特点,被广泛应用于各种应用领域。
下面是对STM32F103芯片手册的1000字简要介绍。
首先,STM32F103芯片具有强大的计算能力和丰富的存储器资源。
它采用了ARM Cortex-M3内核,主频可高达72MHz,同时支持单周期乘法和硬件除法指令,可快速执行复杂的算法。
此外,芯片内置了128KB或256KB的闪存和20KB的静态RAM,可以存储大量的程序代码和数据。
其次,STM32F103芯片提供了丰富的外设接口,能够满足各种应用需求。
它包括多个通用输入/输出(GPIO)引脚,可用于连接外部设备和传感器。
同时,芯片还提供了多个串行通信接口,如USART、SPI和I2C,可以与其他设备进行高速数据传输。
此外,芯片还支持多个定时器/计数器,用于实现精确的计时和定时功能。
第三,STM32F103芯片具有低功耗特性和丰富的电源管理功能。
它采用了多种节能技术,如待机模式、休眠模式和停机模式,可以最大限度地降低功耗。
同时,芯片还内置了多个电源管理模块,例如低功耗时钟、电压调整器和电池备份电源,以提供稳定可靠的电源供应。
最后,STM32F103芯片还提供了完善的开发工具和支持资源。
意法半导体提供了一整套的软件开发工具,包括Keil MDK和IAR Embedded Workbench等,可简化开发流程。
此外,芯片手册还详细介绍了芯片的引脚定义、寄存器配置、时钟设置、中断管理、外设控制等内容,为开发者提供了全面的技术支持。
综上所述,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中文手册1. 概述stm32f103是一款高性能、低功耗、高集成度的32位微控制器,基于ARM Cortex-M3内核,支持Thumb-2指令集,具有72MHz的主频和64KB至512KB的闪存。
stm32f103具有丰富的外设资源,包括多种通信接口、定时器、模数转换器、DMA控制器、触摸感应控制器等,能够满足各种复杂的应用需求。
stm32f103还具有多种低功耗模式,能够实现动态电源管理,降低系统功耗。
stm32f1 03采用多种封装形式,适用于不同的应用场合。
2. 引脚定义stm32f103的引脚定义如图1所示。
stm32f103的引脚分为四类:电源引脚、复位引脚、晶振引脚和功能引脚。
电源引脚包括VDD、VSS、V DDA和VSSA,分别提供数字电源、数字地、模拟电源和模拟地。
复位引脚包括NRST和BOOT0,分别用于复位芯片和选择启动模式。
晶振引脚包括OSC_IN和OSC_OUT,分别连接外部晶振的输入和输出端。
功能引脚包括多达80个可编程的通用输入输出(GPIO)引脚,以及一些专用功能引脚,如JTAG/SWD调试接口、USB接口等。
图1 stm32f103引脚定义3. 系统架构ARM Cortex-M3内核:是stm32f103的核心部分,负责执行程序指令,处理数据和中断等。
存储器:包括闪存(Flash)、静态随机存储器(SRAM)和备份寄存器(Backupregisters),分别用于存储程序代码、数据和备份数据等。
外设总线:包括总线矩阵(Bus matrix)、总线桥(Bus bridge)和外设总线(Peripheralbus),分别用于连接内核、存储器和外设等。
时钟和复位控制:包括时钟树(Clocktree)、复位控制器(Reset controller)和电源管理单元(Power managementunit),分别用于提供时钟信号、复位信号和电源管理等。
STM32F10xxx参考手册参考手册小,中和大容量的STM32F101xx, STM32F102xx和STM32F103xxARM内核32位高性能微控制器导言本参考手册针对应用开发,提供关于如何使用小容量、中容量和大容量的STM32F101xx、STM32F102xx或者STM32F103xx微控制器的存储器和外设的详细信息。
在本参考手册中STM32F101xx、STM32F102xx和STM32F103xx被统称为STM32F10xxx。
STM32F10xxx系列拥有不同的存储器容量,封装和外设配置。
关于订货编号、电气和物理性能参数,请参考STM32F101xx、STM32F102xx和STM32F103xx 的数据手册。
关于芯片内部闪存的编程,擦除和保护操作,请参考STM32F10xxx闪存编程手册。
关于ARM Cortex™-M3内核的具体信息,请参考Cortex™-M3技术参考手册。
相关文档● Cortex™-M3技术参考手册,可按下述链接下载:/help/topic/com.arm.doc.ddi0337e/DDI0337E_cortex_m3_r1p1_trm.pdf下述文档可在ST网站下载(/mcu/):● STM32F101xx、STM32F102xx和STM32F103xx的数据手册。
● STM32F10xxx闪存编程手册。
* 感谢南京万利提供原始翻译文档目录1文中的缩写 161.1寄存器描述表中使用的缩写列表 161.2术语表161.3可用的外设16 2存储器和总线构架 172.1系统构架172.2存储器组织182.3存储器映像192.3.1嵌入式SRAM 202.3.2位段202.3.3嵌入式闪存 212.4启动配置23 3CRC计算单元(CRC) 253.1CRC简介253.2CRC主要特性253.3CRC功能描述253.4CRC寄存器263.4.1数据寄存器(CRC_DR) 263.4.2独立数据寄存器(CRC_IDR) 263.4.3控制寄存器(CRC_CR) 273.4.4CRC寄存器映像 27 4电源控制(PWR) 284.1电源284.1.1独立的A/D转换器供电和参考电压 284.1.2电池备份区域 294.1.3电压调节器 294.2电源管理器294.2.1上电复位(POR)和掉电复位(PDR) 294.2.2可编程电压监测器(PVD) 304.3低功耗模式304.3.1降低系统时钟 314.3.2外部时钟的控制 314.3.3睡眠模式 314.3.4停止模式 324.3.5待机模式 334.3.6低功耗模式下的自动唤醒(AWU) 344.4电源控制寄存器 354.4.1电源控制寄存器(PWR_CR) 354.4.2电源控制/状态寄存器 364.4.3PWR寄存器地址映像 37 5备份寄存器(BKP) 385.1BKP简介385.2BKP特性385.3BKP功能描述385.3.1侵入检测 385.3.2RTC校准 395.4BKP寄存器描述 395.4.1备份数据寄存器x(BKP_DRx) (x = 1 … 10) 395.4.2RTC时钟校准寄存器(BKP_RTCCR) 395.4.3备份控制寄存器(BKP_CR) 405.4.4备份控制/状态寄存器(BKP_CSR) 405.4.5BKP寄存器映像 42 6复位和时钟控制(RCC) 456.1复位456.1.1系统复位 456.1.2电源复位 456.1.3备份域复位 466.2时钟466.2.1HSE时钟 486.2.2HSI时钟 486.2.3PLL 496.2.4LSE时钟 496.2.5LSI时钟496.2.6系统时钟(SYSCLK)选择 506.2.7时钟安全系统(CSS) 506.2.8RTC时钟 506.2.9看门狗时钟 506.2.10时钟输出 506.3RCC寄存器描述 516.3.1时钟控制寄存器(RCC_CR) 516.3.2时钟配置寄存器(RCC_CFGR) 526.3.3时钟中断寄存器 (RCC_CIR) 546.3.4APB2外设复位寄存器 (RCC_APB2RSTR) 566.3.5APB1外设复位寄存器 (RCC_APB1RSTR) 586.3.6AHB外设时钟使能寄存器 (RCC_AHBENR) 606.3.7APB2外设时钟使能寄存器(RCC_APB2ENR) 616.3.8APB1外设时钟使能寄存器(RCC_APB1ENR) 626.3.9备份域控制寄存器 (RCC_BDCR) 656.3.10控制/状态寄存器 (RCC_CSR) 666.3.11RCC寄存器地址映像 68 7通用和复用功能I/O(GPIO和AFIO) 697.1GPIO功能描述697.1.1通用I/O(GPIO) 707.1.2单独的位设置或位清除 717.1.3外部中断/唤醒线 717.1.4复用功能(AF) 717.1.5软件重新映射I/O复用功能 717.1.6GPIO锁定机制 717.1.7输入配置 717.1.8输出配置 727.1.9复用功能配置 737.1.10模拟输入配置 737.2GPIO寄存器描述 757.2.1端口配置低寄存器(GPIOx_CRL) (x=A..E) 757.2.2端口配置高寄存器(GPIOx_CRH) (x=A..E) 757.2.3端口输入数据寄存器(GPIOx_IDR) (x=A..E) 767.2.4端口输出数据寄存器(GPIOx_ODR) (x=A..E) 767.2.5端口位设置/清除寄存器(GPIOx_BSRR) (x=A..E) 777.2.6端口位清除寄存器(GPIOx_BRR) (x=A..E) 777.2.7端口配置锁定寄存器(GPIOx_LCKR) (x=A..E) 777.3复用功能I/O和调试配置(AFIO) 787.3.1把OSC32_IN/OSC32_OUT作为GPIO 端口PC14/PC15 787.3.2把OSC_IN/OSC_OUT引脚作为GPIO端口PD0/PD1 787.3.3CAN复用功能重映射 797.3.4JTAG/SWD复用功能重映射 797.3.5ADC复用功能重映射 807.3.6定时器复用功能重映射 807.3.7USART复用功能重映射 817.3.8I2C 1 复用功能重映射 827.3.9SPI 1复用功能重映射 827.4AFIO寄存器描述 837.4.1事件控制寄存器(AFIO_EVCR) 837.4.2复用重映射和调试I/O配置寄存器(AFIO_MAPR) 837.4.3外部中断配置寄存器1(AFIO_EXTICR1) 867.4.4外部中断配置寄存器2(AFIO_EXTICR2) 867.4.5外部中断配置寄存器3(AFIO_EXTICR3) 877.4.6外部中断配置寄存器4(AFIO_EXTICR4) 877.5GPIO 和AFIO寄存器地址映象 88 8中断和事件 898.1嵌套向量中断控制器 898.1.1系统嘀嗒(SysTick)校准值寄存器 898.1.2中断和异常向量 898.2外部中断/事件控制器(EXTI) 918.2.1主要特性 918.2.2框图928.2.3唤醒事件管理 928.2.4功能说明 928.2.5外部中断/事件线路映像 948.3EXTI 寄存器描述 958.3.1中断屏蔽寄存器(EXTI_IMR) 958.3.2事件屏蔽寄存器(EXTI_EMR) 958.3.3上升沿触发选择寄存器(EXTI_RTSR) 968.3.4下降沿触发选择寄存器(EXTI_FTSR) 968.3.5软件中断事件寄存器(EXTI_SWIER) 978.3.6挂起寄存器(EXTI_PR) 978.3.7外部中断/事件寄存器映像 98 9DMA 控制器(DMA) 999.1DMA简介999.2DMA主要特性999.3功能描述1009.3.1DMA处理 1009.3.2仲裁器1009.3.3DMA 通道 1019.3.4可编程的数据传输宽度,对齐方式和数据大小端 1029.3.5错误管理 1039.3.6中断1039.3.7DMA请求映像 1049.4DMA寄存器1079.4.1DMA中断状态寄存器(DMA_ISR) 1079.4.2DMA中断标志清除寄存器(DMA_IFCR) 1089.4.3DMA通道x配置寄存器(DMA_CCRx)(x = 1…7) 1089.4.4DMA通道x传输数量寄存器(DMA_CNDTRx)(x = 1…7) 1109.4.5DMA通道x外设地址寄存器(DMA_CPARx)(x = 1…7) 1109.4.6DMA通道x存储器地址寄存器(DMA_CPARx)(x = 1…7) 1109.4.7DMA寄存器映像 111 10模拟/数字转换(ADC) 11310.1ADC介绍11310.2ADC主要特征11310.3ADC功能描述11410.3.1ADC开关控制 11510.3.2ADC时钟 11510.3.3通道选择 11510.3.4单次转换模式 11510.3.5连续转换模式 11610.3.6时序图11610.3.7模拟看门狗 11610.3.8扫描模式 11710.3.9注入通道管理 11710.3.10间断模式 11810.4校准11910.5数据对齐11910.6可编程的通道采样时间 12010.7外部触发转换12010.8DMA请求12110.9双ADC模式12110.9.1同步注入模式 12210.9.2同步规则模式 12310.9.3快速交替模式 12310.9.4慢速交替模式 12410.9.5交替触发模式 12410.9.6独立模式 12510.9.7混合的规则/注入同步模式 12510.9.8混合的同步规则+交替触发模式 12510.9.9混合同步注入+交替模式 12610.10温度传感器12610.11ADC中断12710.12ADC寄存器描述 12810.12.1ADC状态寄存器(ADC_SR) 12810.12.2ADC控制寄存器1(ADC_CR1) 12910.12.3ADC控制寄存器2(ADC_CR2) 13110.12.4ADC采样时间寄存器1(ADC_SMPR1) 13310.12.5ADC采样时间寄存器2(ADC_SMPR2) 13310.12.6ADC注入通道数据偏移寄存器x (ADC_JOFRx)(x=1..4) 13410.12.7ADC看门狗高阀值寄存器(ADC_HTR) 13410.12.8ADC看门狗低阀值寄存器(ADC_LRT) 13410.12.9ADC规则序列寄存器1(ADC_SQR1) 13510.12.10ADC规则序列寄存器2(ADC_SQR2) 13510.12.11ADC规则序列寄存器3(ADC_SQR3) 13610.12.12ADC注入序列寄存器(ADC_JSQR) 13610.12.13ADC 注入数据寄存器x (ADC_JDRx) (x= 1..4) 13710.12.14ADC规则数据寄存器(ADC_DR) 13710.12.15ADC寄存器地址映像 138 11数字/模拟转换(DAC) 14011.1DAC简介14011.2DAC主要特征14011.3DAC功能描述14111.3.1使能DAC通道 14111.3.2使能DAC输出缓存 14111.3.3DAC数据格式 14211.3.4DAC转换 14211.3.5DAC输出电压 14311.3.6选择DAC触发 14311.3.7DMA请求 14411.3.8噪声生成 14411.3.9三角波生成 14511.4双DAC通道转换 14511.4.1无波形生成的独立触发 14511.4.2带相同LFSR生成的独立触发 14611.4.3带不同LFSR生成的独立触发 14611.4.4带相同三角波生成的独立触发 14611.4.5带不同三角波生成的独立触发 14611.4.6同时软件启动 14711.4.7不带波形生成的同时触发 14711.4.8带相同LFSR生成的同时触发 14711.4.9带不同LFSR生成的同时触发 14711.4.10带相同三角波生成的同时触发 14711.4.11带不同三角波生成的同时触发 14811.5DAC寄存器14911.5.1DAC控制寄存器(DAC_CR) 14911.5.2DAC软件触发寄存器(DAC_SWTRIGR) 15111.5.3DAC通道1的12位右对齐数据保持寄存器(DAC_DHR12R1) 15211.5.4DAC通道1的12位左对齐数据保持寄存器(DAC_DHR12L1) 15211.5.5DAC通道1的8位右对齐数据保持寄存器(DAC_DHR8R1) 15211.5.6DAC通道2的12位右对齐数据保持寄存器(DAC_DHR12R2) 15311.5.7DAC通道2的12位左对齐数据保持寄存器(DAC_DHR12L2) 15311.5.8DAC通道2的8位右对齐数据保持寄存器(DAC_DHR8R2) 15311.5.9双DAC的12位右对齐数据保持寄存器(DAC_DHR12RD) 15411.5.10双DAC的12位左对齐数据保持寄存器(DAC_DHR12LD) 15411.5.11双DAC的8位右对齐数据保持寄存器(DAC_DHR8RD) 15411.5.12DAC通道1数据输出寄存器(DAC_DOR1) 15511.5.13DAC通道2数据输出寄存器(DAC_DOR2) 15511.5.14DAC寄存器映像 156 12高级控制定时器(TIM1和TIM8) 15712.1TIM1和TIM8简介 15712.2TIM1和TIM8主要特性 15712.3TIM1和TIM8功能描述 15812.3.1时基单元 15812.3.2计数器模式 16012.3.3重复计数器 16712.3.4时钟选择 16812.3.5捕获/比较通道 17112.3.6输入捕获模式 17312.3.7PWM输入模式 17412.3.8强置输出模式 17412.3.9输出比较模式 17512.3.10PWM模式 17612.3.11互补输出和死区插入 17812.3.12使用刹车功能 17912.3.13在外部事件时清除OCxREF信号 18012.3.14产生六步PWM输出 18112.3.15单脉冲模式 18212.3.16编码器接口模式 18312.3.17定时器输入异或功能 18512.3.18与霍尔传感器的接口 18512.3.19TIMx定时器和外部触发的同步 18712.3.20定时器同步 19012.3.21调试模式 19012.4TIM1和TIM8寄存器描述 19112.4.1控制寄存器1(TIMx_CR1) 19112.4.2控制寄存器2(TIMx_CR2) 19212.4.3从模式控制寄存器(TIMx_SMCR) 19312.4.4DMA/中断使能寄存器(TIMx_DIER) 19512.4.5状态寄存器(TIMx_SR) 19612.4.6事件产生寄存器(TIMx_EGR) 19712.4.7捕获/比较模式寄存器1(TIMx_CCMR1) 19812.4.8捕获/比较模式寄存器2(TIMx_CCMR2) 20012.4.9捕获/比较使能寄存器(TIMx_CCER) 20212.4.10计数器(TIMx_CNT) 20312.4.11预分频器(TIMx_PSC) 20412.4.12自动重装载寄存器(TIMx_ARR) 20412.4.13重复计数寄存器(TIMx_RCR) 20412.4.14捕获/比较寄存器1(TIMx_CCR1) 20512.4.15捕获/比较寄存器2(TIMx_CCR2) 20512.4.16捕获/比较寄存器3(TIMx_CCR3) 20512.4.17捕获/比较寄存器(TIMx_CCR4) 20612.4.18刹车和死区寄存器(TIMx_BDTR) 20612.4.19DMA控制寄存器(TIMx_DCR) 20812.4.20连续模式的DMA地址(TIMx_DMAR) 20812.4.21TIM1和TIM8寄存器图 209 13通用定时器(TIMx) 21113.1TIMx简介21113.2TIMx主要功能21113.3TIMx功能描述21213.3.1时基单元 21213.3.2计数器模式 21313.3.3时钟选择 22113.3.4捕获/比较通道 22313.3.5输入捕获模式 22513.3.6PWM输入模式 22513.3.7强置输出模式 22613.3.8输出比较模式 22613.3.9PWM 模式 22713.3.10单脉冲模式 22913.3.11在外部事件时清除OCxREF信号 23113.3.12编码器接口模式 23113.3.13定时器输入异或功能 23313.3.14定时器和外部触发的同步 23313.3.15定时器同步 23513.3.16调试模式 23913.4TIMx寄存器描述 24013.4.1控制寄存器1(TIMx_CR1) 24013.4.2控制寄存器2(TIMx_CR2) 24113.4.3从模式控制寄存器(TIMx_SMCR) 24213.4.4DMA/中断使能寄存器(TIMx_DIER) 24313.4.5状态寄存器(TIMx_SR) 24413.4.6事件产生寄存器(TIMx_EGR) 24513.4.7捕获/比较模式寄存器1(TIMx_CCMR1) 24613.4.8捕获/比较模式寄存器2(TIMx_CCMR2) 24913.4.9捕获/比较使能寄存器(TIMx_CCER) 25113.4.10计数器(TIMx_CNT) 25213.4.11预分频器(TIMx_PSC) 25213.4.12自动重装载寄存器(TIMx_ARR) 25213.4.13捕获/比较寄存器1(TIMx_CCR1) 25213.4.14捕获/比较寄存器2(TIMx_CCR2) 25313.4.15捕获/比较寄存器3(TIMx_CCR3) 25313.4.16捕获/比较寄存器4(TIMx_CCR4) 25313.4.17DMA控制寄存器(TIMx_DCR) 25413.4.18连续模式的DMA地址(TIMx_DMAR) 25413.4.19TIMx寄存器图 255 14基本定时器(TIM6和TIM7) 25714.1TIM6和TIM7简介 25714.2TIM6和TIM7的主要特性 25714.3TIM6和TIM7的功能 25814.3.1时基单元 25814.3.2计数模式 25914.3.3时钟源26114.3.4调试模式 26214.4TIM6和TIM7寄存器 26214.4.1控制寄存器1(TIMx_CR1) 26214.4.2控制寄存器2(TIMx_CR2) 26314.4.3DMA/中断使能寄存器(TIMx_DIER) 26314.4.4状态寄存器(TIMx_SR) 26414.4.5事件产生寄存器(TIMx_EGR) 26414.4.6计数器(TIMx_CNT) 26414.4.7预分频器(TIMx_PSC) 26514.4.8自动重装载寄存器(TIMx_ARR) 26514.4.9TIM6和TIM7寄存器图 266 15实时时钟(RTC) 26715.1RTC简介26715.2主要特性26715.3功能描述26715.3.1概述26715.3.2复位过程 26815.3.3读RTC寄存器 26815.3.4配置RTC寄存器 26915.3.5RTC标志的设置 26915.4RTC寄存器描述 27015.4.1RTC控制寄存器高位(RTC_CRH) 27015.4.2RTC控制寄存器低位(RTC_CRL) 27015.4.3RTC预分频装载寄存器(RTC_PRLH/RTC_PRLL) 27115.4.4RTC预分频器余数寄存器(RTC_DIVH / RTC_DIVL) 27215.4.5RTC计数器寄存器 (RTC_CNTH / RTC_CNTL) 27215.4.6RTC闹钟寄存器(RTC_ALRH/RTC_ALRL) 27315.4.7RTC寄存器映像 275 16独立看门狗(IWDG) 27616.1简介27616.2IWDG主要性能27616.3IWDG功能描述27616.3.1硬件看门狗 27616.3.2寄存器访问保护 27616.3.3调试模式 27616.4IWDG寄存器描述 27716.4.1键寄存器(IWDG_KR) 27716.4.2预分频寄存器(IWDG_PR) 27816.4.3重装载寄存器(IWDG_RLR) 27816.4.4状态寄存器(IWDG_SR) 27916.4.5IWDG寄存器映像 279 17窗口看门狗(WWDG) 28017.1WWDG简介28017.2WWDG主要特性 28017.3WWDG功能描述 28017.4如何编写看门狗超时程序 28117.5调试模式28217.6寄存器描述28217.6.1控制寄存器(WWDG_CR) 28217.6.2配置寄存器(WWDG_CFR) 28317.6.3状态寄存器(WWDG_SR) 28317.6.4WWDG寄存器映像 284 18灵活的静态存储器控制器(FSMC) 28518.1FSMC功能描述28518.2框图28518.3AHB接口28618.3.1支持的存储器和操作 28618.4外部设备地址映像 28718.4.1NOR和PSRAM地址映像 28818.4.2NAND和PC卡地址映像 28818.5NOR闪存和PSRAM控制器 28918.5.1外部存储器接口信号 29018.5.2支持的存储器及其操作 29118.5.3时序规则 29118.5.4NOR闪存和PSRAM时序图 29118.5.5同步的成组读 30418.5.6NOR闪存和PSRAM控制器寄存器 30818.6NAND闪存和PC卡控制器 31318.6.1外部存储器接口信号 31318.6.2NAND闪存/PC卡支持的存储器及其操作 31418.6.3NAND闪存、ATA和PC卡时序图 31418.6.4NAND闪存操作 31518.6.5NAND闪存预等待功能 31618.6.6NAND闪存的纠错码ECC计算(NAND闪存) 31718.6.7NAND闪存和PC卡控制器寄存器 31718.7FSMC寄存器地址映象 324 19SDIO接口(SDIO) 32519.1SDIO主要功能32519.2SDIO总线拓扑32519.3SDIO功能描述32819.3.1SDIO适配器 32919.3.2SDIO AHB接口 33619.4卡功能描述33619.4.1卡识别模式 33619.4.2卡复位33619.4.3操作电压范围确认 33719.4.4卡识别过程 33719.4.5写数据块 33819.4.6读数据块 33819.4.7数据流操作,数据流写入和数据流读出(只适用于多媒体卡) 33819.4.8擦除:成组擦除和扇区擦除 33919.4.9宽总线选择和解除选择 34019.4.10保护管理 34019.4.11卡状态寄存器 34219.4.12SD状态寄存器 34419.4.13SD I/O模式 34719.4.14命令与响应 34819.5响应格式35019.5.1R1(普通响应命令) 35119.5.2R1b 35119.5.3R2(CID、CSD寄存器) 35119.5.4R3(OCR寄存器) 35119.5.5R4(快速I/O) 35219.5.6R4b 35219.5.7R5(中断请求) 35219.5.8R6(中断请求) 35319.6SDIO I/O卡特定的操作 35319.6.1使用SDIO_D2信号线的SDIO I/O读等待操作 35319.6.2使用停止SDIO_CK的SDIO读等待操作 35319.6.3SDIO暂停/恢复操作 35419.6.4SDIO中断 35419.7CE-ATA特定操作 35419.7.1命令完成指示关闭 35419.7.2命令完成指示使能 35419.7.3CE-ATA中断 35419.7.4中止CMD61 35419.8硬件流控制35419.9SDIO寄存器35519.9.1SDIO电源控制寄存器(SDIO_POWER) 35519.9.2SDIO时钟控制寄存器(SDIO_CLKCR) 35519.9.3SDIO参数寄存器(SDIO_ARG) 35619.9.4SDIO命令寄存器(SDIO_CMD) 35619.9.5SDIO命令响应寄存器(SDIO_RESPCMD) 35719.9.6SDIO响应1..4寄存器(SDIO_RESPx) 35719.9.7SDIO数据定时器寄存器(SDIO_DTIMER) 35819.9.8SDIO数据长度寄存器(SDIO_DLEN) 35819.9.9SDIO数据控制寄存器(SDIO_DCTRL) 35819.9.10SDIO数据计数器寄存器(SDIO_DCOUNT) 36019.9.11SDIO状态寄存器(SDIO_STA) 36019.9.12SDIO清除中断寄存器(SDIO_ICR) 36119.9.13SDIO中断屏蔽寄存器(SDIO_MASK) 36219.9.14SDIO FIFO计数器寄存器(SDIO_FIFOCNT) 36419.9.15SDIO数据FIFO寄存器(SDIO_FIFO) 36419.9.16SDIO寄存器映像 365 20USB全速设备接口(USB) 36620.1USB简介36620.2USB主要特征36620.3USB功能描述36720.3.1USB功能模块描述 36820.4编程中需要考虑的问题 36920.4.1通用USB设备编程 36920.4.2系统复位和上电复位 36920.4.3双缓冲端点 37220.4.4同步传输 37320.4.5挂起/恢复事件 37420.5USB寄存器描述 37520.5.1通用寄存器 37520.5.2端点寄存器 38020.5.3缓冲区描述表 38220.5.4USB寄存器映像 385 21控制器局域网(bxCAN) 38721.1bxCAN简介38721.2bxCAN主要特点 38721.2.1总体描述 38821.3bxCAN工作模式 38921.3.1初始化模式 39021.3.2正常模式 39021.3.3睡眠模式(低功耗) 39021.3.4测试模式 39021.3.5静默模式 39021.3.6环回模式 39121.3.7环回静默模式 39121.4bxCAN功能描述 39221.4.1发送处理 39221.4.2时间触发通信模式 39321.4.3接收管理 39321.4.4标识符过滤 39521.4.5报文存储 39821.4.6出错管理 39921.4.7位时间特性 40021.5bxCAN中断40221.6CAN 寄存器描述 40321.6.1寄存器访问保护 40321.6.2控制和状态寄存器 40321.6.3邮箱寄存器 41121.6.4CAN过滤器寄存器 41521.6.5bxCAN寄存器列表 419 22串行外设接口(SPI) 42222.1SPI简介42222.2SPI和I2S主要特征 42222.2.1SPI特征42222.2.2I2S功能42322.3SPI功能描述42422.3.1概述42422.3.2SPI从模式 42622.3.3SPI主模式 42722.3.4单工通信 42822.3.5状态标志 42822.3.6CRC计算 42922.3.7利用DMA的SPI通信 42922.3.8错误标志 43022.3.9关闭SPI 43022.3.10SPI中断43022.4I2S功能描述43122.4.1I2S功能描述 43122.4.2支持的音频协议 43222.4.3时钟发生器 43722.4.4I2S主模式 43822.4.5I2S从模式 43922.4.6状态标志位 44022.4.7错误标志位 44122.4.8I2S中断44122.4.9DMA功能 44122.5SPI和I2S寄存器描述 44222.5.1SPI控制寄存器1(SPI_CR1)(I2S模式下不使用) 44222.5.2SPI控制寄存器2(SPI_CR2) 44322.5.3SPI 状态寄存器(SPI_SR) 44422.5.4SPI 数据寄存器(SPI_DR) 44522.5.5SPI CRC多项式寄存器(SPI_CRCPR) 44622.5.6SPI Rx CRC寄存器(SPI_RXCRCR) 44622.5.7SPI Tx CRC寄存器(SPI_TXCRCR) 44622.5.8SPI_I2S配置寄存器(SPI_I2S_CFGR) 44722.5.9SPI_I2S预分频寄存器(SPI_I2SPR) 44822.5.10SPI 寄存器地址映象 449 23I2C接口45023.1I2C简介45023.2I2C主要特点45023.3I2C功能描述45123.3.1模式选择 45123.3.2I2C从模式 45223.3.3I2C主模式 45423.3.4错误条件 45623.3.5SDA/SCL线控制 45723.3.6SMBus 45723.3.7DMA请求 45923.3.8包错误校验(PEC) 46023.4I2C中断请求46123.5I2C调试模式46223.6I2C寄存器描述46223.6.1控制寄存器1(I2C_CR1) 46223.6.2控制寄存器2(I2C_CR2) 46423.6.3自身地址寄存器1(I2C_OAR1) 46523.6.4自身地址寄存器2(I2C_OAR2) 46523.6.5数据寄存器(I2C_DR) 46523.6.6状态寄存器1(I2C_SR1) 46623.6.7状态寄存器2 (I2C_SR2) 46823.6.8时钟控制寄存器(I2C_CCR) 46923.6.9TRISE寄存器(I2C_TRISE) 47023.6.10I2C寄存器地址映象 471 24通用同步异步收发器(USART) 47224.1USART介绍47224.2USART主要特性 47224.3USART功能概述 47324.3.1USART 特性描述 47424.3.2发送器47524.3.3接收器47724.3.4分数波特率的产生 48024.3.5多处理器通信 48124.3.6校验控制 48224.3.7LIN(局域互联网)模式 48324.3.8USART 同步模式 48524.3.9单线半双工通信 48724.3.10智能卡48724.3.11IrDA SIR ENDEC 功能块 48824.3.12利用DMA连续通信 49024.3.13硬件流控制 49124.4USART中断请求 49224.5USART模式配置 49324.6USART寄存器描述 49424.6.1状态寄存器(USART_SR) 49424.6.2数据寄存器(USART_DR) 49524.6.3波特比率寄存器(USART_BRR) 49624.6.4控制寄存器1(USART_CR1) 49624.6.5控制寄存器2(USART_CR2) 49824.6.6控制寄存器3(USART_CR3) 49924.6.7保护时间和预分频寄存器(USART_GTPR) 50124.6.8USART寄存器地址映象 502 25器件电子签名 50325.1存储器容量寄存器 50325.1.1闪存容量寄存器 50325.2产品唯一身份标识寄存器(96位) 503 26调试支持(DBG) 50526.1概况50526.2ARM参考文献50626.3SWJ调试端口(serial wire and JTAG) 50626.3.1JTAG-DP和SW-DP切换的机制 50726.4引脚分布和调试端口脚 50726.4.1SWJ调试端口脚 50726.4.2灵活的SWJ-DP脚分配 50726.4.3JTAG脚上的内部上拉和下拉 50826.4.4利用串行接口并释放不用的调试脚作为普通I/O口 50826.5STM32F10xxx JTAG TAP 连接 50926.6ID 代码和锁定机制 50926.6.1微控制器设备ID编码 50926.6.2边界扫描TAP 51026.6.3Cortex-M3 TAP 51026.6.4Cortex-M3 JEDEC-106 ID代码 51126.7JTAG调试端口51126.8SW调试端口51226.8.1SW协议介绍 51226.8.2SW协议序列 51226.8.3SW-DP状态机(Reset, idle states, ID code) 51326.8.4DP和AP读/写访问 51326.8.5SW-DP寄存器 51326.8.6SW-AP寄存器 514 26.9对于JTAG-DP或SWDP都有效的AHB-AP (AHB 访问端口) 514 26.10内核调试515 26.11调试器主机在系统复位下的连接能力 515 26.12FPB (Flash patch breakpoint) 515 26.13DWT(data watchpoint trigger) 516 26.14ITM (instrumentation trace macrocell) 51626.14.1概述51626.14.2时间戳包,同步和溢出包 516 26.15MCU调试模块(MCUDBG) 51726.15.1低功耗模式的调试支持 51726.15.2支持定时器、看门狗、bxCAN和I2C的调试 51826.15.3调试MCU配置寄存器 518 26.16TPIU (trace port interface unit) 52026.16.1导言52026.16.2跟踪引脚分配 52026.16.3TPUI格式器 52226.16.4TPUI帧异步包 52226.16.5同步帧包的发送 52226.16.6同步模式 52226.16.7异步模式 52326.16.8TRACECLKIN在STM32F10xxx内部的连接 52326.16.9TPIU寄存器 52326.16.10配置的例子 524 26.17DBG寄存器地址映象 5241 文中的缩写1.1 寄存器描述表中使用的缩写列表在对寄存器的描述中使用了下列缩写:read / write (rw) 软件能读写此位。
stm32f103中文手册第一章综述1.1 STM32F103系列微控制器概述1.2 STM32F103系列微控制器特性1.3 STM32F103系列微控制器产品线第二章存储器2.1 存储器映射2.2 Flash存储器2.3 系统存储器2.4 备份寄存器2.5 静态随机存取存储器(SRAM)第三章外设3.1 复位和时钟控制(RCC)3.2 独立看门狗(IWDG)3.3 窗口看门狗(WWDG)3.4 嵌套向量中断控制器(NVIC)3.5 系统定时器(SysTick)...第一章综述1.1 STM32F103系列微控制器概述STM32F103系列微控制器是基于ARM® Cortex®-M3内核的高性能、低功耗、增强型单片机。
它们提供了从64KB到512KB Flash存储器和从20KB到64KBSRAM存储器的不同容量选择。
它们还集成了丰富的外设资源,包括USB 、CAN、11个定时器、3个ADC、13个通讯接口等。
STM32F103系列微控制器采用了先进的90nmNVM工艺技术,具有出色的电源效率。
它们支持多种低功耗模式,包括停机模式、待机模式、睡眠模式和停止模式。
它们还支持动态电压调节和动态频率调节,以进一步降低功耗。
STM32F103系列微控制器具有高度灵活性和可扩展性。
它们支持多种封装类型,从36引脚到144引脚不等。
它们还支持多种内部和外部时钟源,包括高速内部振荡器(HSI)、低速内部振荡器(LSI)、高速外部振荡器(HSE)、低速外部振荡器(LSE)和相位锁定环(PLL)。
它们还支持多种外部存储器接口,包括NOR Flash、SRAM、NAND Flash、SDIO等。
1.2 STM32F103系列微控制器特性---特性 ---描述 -------:-----:---------内核 ---ARM® 32位 Cortex®-M3CPU,最高72MHz运行频率,单周期乘法和硬件除法,嵌套向量中断控制器(NVIC)和系统定时器(SysTick) -------存储器 ---64KB到512KB Flash存储器,20KB到64KBSRAM存储器,512字节备份寄存器,可选的2KB系统存储器 -------电源管理 ---1.65V到3.6V电源电压范围,7uA待机模式,36uA停机模式,动态电压调节和动态频率调节 -------外设 ---USB 2.0全速设备接口,CAN2.0B接口,11个通用定时器,3个高级定时器,3个12位ADC,2个DAC,13个通讯接口(3个USART、4个UART、2个I2C、3个SPI、1个I2S),CR C计算单元,96位唯一ID -------调试和编程 ---SWD和JTAG接口,支持串行线调试(SWD)和串行线跟踪(SWO),支持Flash编程和调试 -------封装 ---36引脚到144引脚不同封装类型 ----1.3 STM32F103系列微控制器产品线STM32F103x8/xB:中等容量增强型单片机,具有64KB或128KB Flash存储器和20KBSRAM存储器。
stm32f103 标准例程标准库STM32F103是一款由意法半导体(STMicroelectronics)公司出品的32位Cortex-M3内核的微控制器。
它是一款广泛应用于工业控制、汽车电子、医疗设备等领域的微控制器,具有高性能、低功耗和良好的可扩展性。
STM32F103系列微控制器采用了ARM Cortex-M3内核,工作频率为72MHz,具有优秀的运算能力和低功耗特性。
它们还具有多种外设接口,包括SPI、I2C、USART等,以满足不同应用的需求。
此外,STM32F103系列还集成了丰富的模拟和数字外设,如模拟到数字转换器(ADC)、定时器和PWM输出等。
此外,STM32F103还内置了大容量的闪存和RAM,以提供充足的存储空间。
为了方便开发者使用STM32F103微控制器,STMicroelectronics提供了一套标准例程(Standard Peripheral Library),这是一种软件库,提供了丰富的函数和驱动程序,用于简化开发过程。
标准库包括了各种常用功能的函数,如GPIO控制、定时器配置、中断处理、串口通信等。
开发者可以根据自己的需求调用这些函数,快速搭建应用程序。
标准例程的使用非常简单,只需要将相应的函数调用插入到代码中即可。
标准库提供了详细的文档和示例代码,开发者可以根据文档了解每个函数的功能和使用方法。
使用标准例程可以大大简化开发过程,同时提高开发效率。
对于使用STM32F103微控制器的开发者来说,标准库的一个重要优势是其可移植性。
标准库提供了与硬件无关的函数接口,可以在不同的芯片和开发板上使用。
这意味着,开发者可以轻松地将应用程序从一个STM32F103微控制器移植到另一个微控制器,而无需重新编写代码。
这为开发者带来了极大的便利,减少了开发时间和工作量。
除了标准库,STMicroelectronics还提供了其他开发工具和资源,以帮助开发者更好地使用STM32F103微控制器。
stm32f103核心板工作原理STM32F103核心板工作原理1. 概述STM32F103核心板是一款基于ARM Cortex-M3内核的单片机开发板,广泛应用于嵌入式系统开发领域。
本篇文章将从表面开始,逐步深入解释STM32F103核心板的工作原理。
2. 单片机基础在了解STM32F103核心板之前,我们先来了解一些单片机基础知识。
单片机是一种集成电路,具有处理器核心、内存、输入输出和外围设备接口等功能。
它通过编程控制来实现各种任务,如数据处理、控制和通信等。
3. ARM Cortex-M3内核STM32F103核心板使用了ARM Cortex-M3内核,这是一种32位处理器内核。
它具有高性能、低功耗和丰富的外设接口,能够满足复杂的嵌入式系统需求。
4. 引脚和外设STM32F103核心板上的引脚和外设非常丰富,包括通用输入输出口(GPIO)、通用定时器(General-purpose Timer)、USART(串行通信接口)等等。
这些外设可以通过编程控制实现各种功能,如数据输入输出、定时和通信等。
5. 时钟系统STM32F103核心板的时钟系统非常重要,它提供了系统时钟、外设时钟和各种时钟源。
时钟系统的稳定性和准确性对于单片机的正常工作至关重要。
6. 中断和中断向量表中断是一种重要的事件处理机制,能够在特定条件下打断正常程序的执行,以响应特定事件。
STM32F103核心板使用中断向量表来管理中断,通过设置中断优先级和中断处理函数,实现对各种事件的快速响应。
7. 存储器管理STM32F103核心板的存储器管理包括内部FLASH存储器和SRAM存储器的读写操作,以及存储器的分配和释放。
合理使用存储器可以提高程序的效率和响应速度。
8. 程序开发和调试程序开发和调试是嵌入式系统开发的重要环节。
STM32F103核心板支持多种开发工具和环境,如Keil MDK、GNU工具链和STM32CubeIDE等,开发者可以根据自己的需求选择适合的工具进行开发和调试。
2007年10月 第三版 第1页STM32F103x6STM32F103x8 STM32F103xB增强型,32位基于ARM 核心的带闪存、USB 、CAN 的微控制器7个定时器、2个ADC 、9个通信接口功能■ 核心− ARM 32位的Cortex™-M3CPU− 72MHz ,高达90DMips ,1.25DMips/MHz − 单周期硬件乘法和除法——加快计算 ■存储器− 从32K 字节至128K 字节闪存程序存储器 − 从6K 字节至20K 字节SRAM − 多重自举功能■时钟、复位和供电管理− 2.0至3.6伏供电和I/O 管脚− 上电/断电复位(POR/PDR)、可编程电压监测器(PVD)、掉电监测器− 内嵌4至16MHz 高速晶体振荡器− 内嵌经出厂调校的8MHz 的RC 振荡器 − 内嵌40kHz 的RC 振荡器 − 内嵌PLL 供应CPU 时钟− 内嵌使用外部32kHz 晶体的RTC 振荡器 ■低功耗− 3种省电模式:睡眠、停机和待机模式 − VBAT 为RTC 和后备寄存器供电■2个12位模数转换器,1us 转换时间(16通道) − 转换范围是0至3.6V − 双采样和保持功能 − 温度传感器 ■ 调试模式− 串行线调试(SWD)和JTAG 接口 ■DMA− 7通道DMA 控制器− 支持的外设:定时器、ADC 、SPI 、I2C 和USART■多达80个快速I/O 口− 26/36/51/80个多功能双向5V 兼容的I/O 口 − 所有I/O 口可以映像到16个外部中断■ 多达7个定时器− 多达3个同步的16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM 或脉冲计数的通道− 16位6通道高级控制定时器− 多达6路PWM 输出 − 死区控制、边缘/中间对齐波形和紧急制动− 2个看门狗定时器(独立的和窗口型的) − 系统时间定时器:24位的、带自动加载功能的■ 多达9个通信接口− 多达2个I2C 接口(SMBus/PMBus)− 多达3个USART 接口,支持ISO7816,LIN ,IrDA 接口和调制解调控制− 多达2个SPI 同步串行接口(18兆位/秒) − CAN 接口(2.0B 主动) − USB 2.0全速接口 ■ ECOPACK ®封装(兼容RoHS )表一 器件列表 参 考基本型号STM32F103x6 STM32F103C6, STM32F103R6,STM32F103T6STM32F103x8 STM32F103C8, STM32F103R8,STM32F103V8, STM32F103T8STM32F103xB STM32F103RB, STM32F103VB,STM32F103C8初步信息1介绍本文给出了STM32F103xx增强型的订购信息和器件的机械特性。
stm32f103中文手册1. 概述72 MHz的主频,可达90 DMIPS的性能64 KB至512 KB的闪存,20 KB至64 KB的SRAM7个定时器,包括3个高级定时器和4个通用定时器2个12位模数转换器,每秒1 MSPS2个I2C接口,3个USART接口,2个SPI接口1个USB 2.0全速接口1个CAN 2.0B接口37至80个GPIO引脚,支持中断和唤醒功能3个12位数字摹拟转换器实时时钟,支持日历和闹钟功能4至16 MHz的晶振振荡器,内部8 MHz的RC振荡器,内部40 kHz的RC振荡器7种低功耗模式,包括待机模式、住手模式和睡眠模式单电源3.0 V至3.6 V或者双电源1.8 V至3.6 V工作电压工作温度范围为-40°C至+85°C或者-40°C至+105°C2. 引脚定义stm32f103有多种封装形式,包括LQFP64、LQFP100、LQFP144、BG A100等²。
不同封装形式的引脚数量和罗列方式不同,但引脚功能基本相同。
下表列出了stm32f103的引脚功能和描述:---引脚名称 ---引脚功能 ---引脚描述 -------:------: ---:------: ---:------: -------VSS ---接地 ---连接到电源地 -------VDD ---电源 ---连接到正电源 -------VDDA ---摹拟电源 ---连接到正电源 -------VSSA ---摹拟接地 ---连接到电源地 -------NRST ---复位 ---复位输入,低电平有效 -------BOOT0 ---引导模式选择 ---引导模式选择输入,高电平或者低电平 -------BOOT1 ---引导模式选择 ---引导模式选择输入,高电平或者低电平 -------OSC_IN ---晶振输入 ---连接到外部晶振或者时钟信号的输入端-------OSC_OUT ---晶振输出 ---连接到外部晶振或者时钟信号的输出端 -------PA0~PA15 ---端口A引脚 ---可编程I/O引脚,具有多种功能和特性 -------PB0~PB15 ---端口B引脚 ---可编程I/O引脚,具有多种功能和特性 -------PC0~PC15 ---端口C引脚 ---可编程I/O引脚,具有多种功能和特性 -------PD0~PD15 ---端口D引脚 ---可编程I/O引脚,具有多种功能和特性 -------PE0~PE15 ---端口E引脚 ---可编程I/O引脚,具有多种功能和特性 -------JTAG_TMS ---JTAG测试模式选择 ---JTAG接口的测试模式选择信号 -------JTAG_TCK ---JTAG测试时钟 ---JTAG接口的测试时钟信号 -------JTAG_TDI ---JTAG测试数据输入 ---JTAG接口的测试数据输入信号 -------JTAG_TDO ---JTAG测试数据输出 ---JTAG接口的测试数据输出信号 -------JTAG_TRST ---JTAG测试复位 ---JTAG接口的测试复位信号 ----3. 系统架构stm32f103的系统架构如下图所示³:32位RISC架构,支持Thumb-2指令集3级流水线,支持分支预测和异常处理13个通用寄存器和1个程序计数器1个嵌套向量中断控制器(NVIC),支持多达60个中断源1个系统控制块(SCB),包含系统配置、控制和状态寄存器1个系统定时器(SysTick),提供一个24位递减计数器,可用于操作系统的节拍计时1个调试接入端口(DAP),支持JTAG和SWD两种调试协议闪存:是stm32f103的非易失性存储器,用于存储程序代码和数据。
stm32f103工作原理摘要:1.简介2.STM32F103 核心特性3.工作原理3.1 处理器内核3.2 存储器3.3 时钟和复位3.4 输入输出端口3.5 中断系统3.6 定时器3.7 通信接口4.应用领域5.结论正文:STM32F103 是意法半导体(ST)公司推出的一款基于ARM Cortex-M3 内核的微控制器(MCU)。
它具有高性能、低功耗、丰富的外设接口等特点,广泛应用于各种嵌入式系统中。
1.简介STM32F103 是基于ARM Cortex-M3 内核的32 位Flash 微控制器,适用于各种嵌入式应用。
它具有多种封装类型,工作电压范围广泛,可满足不同应用场景的需求。
2.STM32F103 核心特性STM32F103 的核心特性包括:- 基于ARM Cortex-M3 内核,最高工作频率可达72MHz- 64KB 至200KB 的Flash 存储器- 最高可达16KB 的SRAM- 12 位ADC,2 个通道- 2 个USART、2 个SPI、1 个I2C 通信接口- 最多可达112 个GPIO 端口3.工作原理3.1 处理器内核STM32F103 采用ARM Cortex-M3 内核,具有高性能、低功耗的特点。
它支持单周期指令,可以提高代码执行效率。
同时,Cortex-M3 内核还具有丰富的指令集,便于开发人员实现各种功能。
3.2 存储器STM32F103 具有较大的Flash 存储器和SRAM,为系统提供了充足的存储空间。
Flash 存储器用于存储程序代码,SRAM 用于存储运行时的数据。
3.3 时钟和复位STM32F103 内嵌了多种时钟源,如HSE、LSE、HSI、LSI 等,为系统提供了多样化的时钟选择。
同时,它还支持手动复位和自动复位功能,确保系统运行稳定可靠。
3.4 输入输出端口STM32F103 提供了丰富的GPIO 端口,最多可达112 个。
GPIO 端口可以配置为输入、输出、复用等多种功能,方便开发人员根据实际需求进行设计。
2007年10月 第三版 第1页STM32F103x6STM32F103x8 STM32F103xB增强型,32位基于ARM 核心的带闪存、USB 、CAN 的微控制器7个定时器、2个ADC 、9个通信接口功能■ 核心− ARM 32位的Cortex™-M3CPU− 72MHz ,高达90DMips ,1.25DMips/MHz − 单周期硬件乘法和除法——加快计算 ■存储器− 从32K 字节至128K 字节闪存程序存储器 − 从6K 字节至20K 字节SRAM − 多重自举功能■时钟、复位和供电管理− 2.0至3.6伏供电和I/O 管脚− 上电/断电复位(POR/PDR)、可编程电压监测器(PVD)、掉电监测器− 内嵌4至16MHz 高速晶体振荡器− 内嵌经出厂调校的8MHz 的RC 振荡器 − 内嵌40kHz 的RC 振荡器 − 内嵌PLL 供应CPU 时钟− 内嵌使用外部32kHz 晶体的RTC 振荡器 ■低功耗− 3种省电模式:睡眠、停机和待机模式 − VBAT 为RTC 和后备寄存器供电■2个12位模数转换器,1us 转换时间(16通道) − 转换范围是0至3.6V − 双采样和保持功能 − 温度传感器 ■ 调试模式− 串行线调试(SWD)和JTAG 接口 ■DMA− 7通道DMA 控制器− 支持的外设:定时器、ADC 、SPI 、I2C 和USART■多达80个快速I/O 口− 26/36/51/80个多功能双向5V 兼容的I/O 口 − 所有I/O 口可以映像到16个外部中断■ 多达7个定时器− 多达3个同步的16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM 或脉冲计数的通道− 16位6通道高级控制定时器− 多达6路PWM 输出 − 死区控制、边缘/中间对齐波形和紧急制动− 2个看门狗定时器(独立的和窗口型的) − 系统时间定时器:24位的、带自动加载功能的■ 多达9个通信接口− 多达2个I2C 接口(SMBus/PMBus)− 多达3个USART 接口,支持ISO7816,LIN ,IrDA 接口和调制解调控制− 多达2个SPI 同步串行接口(18兆位/秒) − CAN 接口(2.0B 主动) − USB 2.0全速接口 ■ ECOPACK ®封装(兼容RoHS )表一 器件列表 参 考基本型号STM32F103x6 STM32F103C6, STM32F103R6,STM32F103T6STM32F103x8 STM32F103C8, STM32F103R8,STM32F103V8, STM32F103T8STM32F103xB STM32F103RB, STM32F103VB,STM32F103C8初步信息1介绍本文给出了STM32F103xx增强型的订购信息和器件的机械特性。
有关闪存存储器的编程、擦除和保护等信息,请参考《STM32F10x闪存编程参考手册》。
有关Cortex-M3的信息,请参考《Cortex-M3技术参考手册》2规格说明STM32F103xx增强型系列使用高性能的ARM Cortex-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。
所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:多达2个I2C和SPI、3个USART、一个USB和一个CAN。
STM32F103xx增强型系列工作于-40°C至+105°C的温度范围,供电电压2.0V至3.6V,一系列的省电模式保证低功耗应用的要求。
完整的STM32F103xx增强型系列产品包括从36脚至100脚的五种不同封装形式;根据不同的封装形式,器件中的外设配置不尽相同。
下面给出了该系列产品中所有外设的基本介绍。
这些丰富的外设配置,使得STM32F103xx增强型微控制器适合于多种应用场合:● 电机驱动和应用控制● 医疗和手持设备● PC外设和GPS平台● 工业应用:可编程控制器、变频器、打印机和扫描仪● 警报系统,视频对讲,和暖气通风空调系统图一给出了该产品系列的框图。
2.1 器件一览表二:器件功能和配置(STM32F103xx增强型)2.2 概述ARM®的Cortex™-M3核心并内嵌闪存和SRAMARM的Cortex-M3处理器是最新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减的管脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应。
ARM的Cortex-M3是32位的RISC处理器,提供额外的代码效率,在通常8和16位系统的存储空间上得到了ARM核心的高性能。
STM32F103xx增强型系列拥有内置的ARM核心,因此它与所有的ARM工具和软件兼容。
图一是该系列产品的功能框图。
内置闪存存储器● 高达128K字节的内置闪存存储器,用于存放程序和数据。
内置SRAM多达20K字节的内置SRAM,CPU能以0等待周期访问(读/写)。
嵌套的向量式中断控制器(NVIC)STM32F103xx增强型内置嵌套的向量式中断控制器,能够处理多达43个可屏蔽中断通道(不包括16个Cortex-M3的中断线)和16个优先级。
● 紧耦合的NVIC能够达到低延迟的中断响应处理● 中断向量入口地址直接进入核心● 紧耦合的NVIC接口● 允许中断的早期处理● 处理晚到的较高优先级中断● 支持中断尾部链接功能● 自动保存处理器状态● 中断返回时自动恢复,无需额外指令开销该模块以最小的中断延迟提供灵活的中断管理功能。
外部中断/事件控制器(EXTI)外部中断/事件控制器包含19个边沿检测器,用于产生中断/事件请求。
每个中断线都可以独立地配置它的触发事件(上升沿或下降沿或双边沿),能够单独地被屏蔽;有一个挂起寄存器维持所有中断请求的状态。
EXTI可以检测到脉冲宽度小于内部APB2的时钟周期。
多达80个通用I/O口连接到16个外部中断线。
时钟和启动系统时钟的选择是在启动时进行,复位时内部8MHz的RC振荡器被选为默认的CPU时钟,随后可以选择外部的、具失效监控的4~16MHz时钟;当外部时钟失效时,它将被隔离,同时会产生相应的中断。
同样,在需要时可以采取对PLL时钟完全的中断管理(如当一个外接的振荡器失效时)。
具有多个预分频器用于配置AHB的频率、高速APB(APB2)和低速APB(APB1)区域。
AHB和高速APB 的最高频率是72MHz,低速APB的最高频率为36MHz。
自举模式在启动时,自举管脚被用于选择三种自举模式中的一种:● 从用户闪存自举● 从系统存储器自举● 从SRAM自举自举加载器存放于系统存储器中,可以通过USART对闪存重新编程。
供电方案● V DD = 2.0至3.6V:V DD管脚提供I/O管脚和内部调压器的供电。
● V SSA,V DDA = 2.0至3.6V:为ADC、复位模块、RC振荡器和PLL的模拟部分提供供电。
使用ADC时,V DD不得小于2.4V。
● V BAT = 1.8至3.6V:当(通过电源开关)关闭VDD时,为RTC、外部32kHz振荡器和后备寄存器供电。
供电监控器本产品内部集成了上电复位(POR)/掉电复位(PDR)电路,该电路始终处于工作状态,保证系统在供电超过2V时工作;当VDD低于设定的阀值(VPOR/PDR)时,置器件于复位状态,而不必使用外部复位电路。
器件中还有一个可编程电压监测器(PVD),它监视VDD供电并与阀值VPVD比较,当VDD低于或高于阀值VPVD时将产生中断,中断处理程序可以发出警告信息或将微控制器转入安全模式。
需要通过程序开启PVD。
有关VPOR/PDR和VPVD数值,请参考表九“内置复位和电源控制模块特性”。
电压调压器调压器有三个操作模式:主模式(MR)、低功耗模式(LPR)和关断模式● 主模式(MR)用于正常的运行操作● 低功耗模式(LPR)用于CPU的停机模式● 关断模式用于CPU的待机模式:调压器的输出为高阻状态,内核电路的供电切断,调压器处于零消耗状态(但寄存器和SRAM的内容将丢失)该调压器在复位后始终处于工作状态,在待机模式下关闭处于高阻输出。
低功耗模式STM32F103xx增强型支持三种低功耗模式,可以在要求低功耗、短启动时间和多种唤醒事件之间达到最佳的平衡。
● 睡眠模式在睡眠模式,只有CPU停止,所有外设处于工作状态并可在发生中断/事件时唤醒CPU。
● 停机模式在保持SRAM和寄存器内容不丢失的情况下,停机模式可以达到最低的电能消耗。
在停机模式下,停止所有内部1.8V部分的供电,PLL、HSI和HSE的RC振荡器被关闭,调压器可以被置于普通模式或低功耗模式。
可以通过任一配置成EXTI的信号把微控制器从停机模式中唤醒,EXTI信号可以是16个外部I/O 口之一、PVD的输出、RTC闹钟或USB的唤醒信号。
● 待机模式在待机模式下可以达到最低的电能消耗。
内部的电压调压器被关闭,因此所有内部1.8V部分的供电被切断;PLL、HSI和HSE的RC振荡器也被关闭;进入待机模式后,SRAM和寄存器的内容将消失,但后备寄存器的内容仍然保留,待机电路仍工作。
从待机模式退出的条件是:NRST上的外部复位信号、IWDG复位、WKUP管脚上的一个上升边沿或RTC的闹钟到时。
注:在进入停机或待机模式时,RTC、IWDG和对应的时钟不会被停止。
DMA灵活的7路通用DMA可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输;DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。
每个通道都有专门的硬件DMA请求逻辑,同时可以由软件触发每个通道;传输的长度、传输的源地址和目标地址都可以通过软件单独设置。
DMA可以用于主要的外设:SPI、I2C、USART、通用和高级定时器TIMx和ADC。
RTC(实时时钟)和后备寄存器RTC和后备寄存器通过一个开关供电,在VDD有效时该开关选择VDD供电,否则由VBAT管脚供电。
后备寄存器(10个16位的寄存器)可以用于在VDD消失时保存数据。
实时时钟具有一组连续运行的计数器,可以通过适当的软件提供日历时钟功能,还具有闹钟中断和阶段性中断功能。
RTC的驱动时钟可以是一个使用外部晶体的32.768kHz的振荡器、内部低功耗RC 振荡器或高速的外部时钟经128分频。
内部低功耗RC振荡器的典型频率为32kHz。
为补偿天然晶体的偏差,RTC的校准是通过输出一个512Hz的信号进行。
RTC具有一个32位的可编程计数器,使用比较寄存器可以产生闹钟信号。