0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >基础知识 > stm32f103c8t6中文参考手册

stm32f103c8t6中文参考手册

来源:
2025-08-06
类别:基础知识
eye 1
文章创建人 拍明芯城

STM32F103C8T6 中文参考手册

第一章:概述


本参考手册旨在为使用 STM32F103C8T6 微控制器的工程师和开发者提供全面、详细的技术指导。STM32F103C8T6 是 STMicroelectronics(意法半导体)公司基于 ARM Cortex-M3 内核的一款高性能、低功耗、高集成度的 32 位微控制器。它属于 STM32F103 系列,因其优越的性能和丰富的片上资源,被广泛应用于工业控制、消费电子、医疗设备、物联网(IoT)设备等多个领域。本手册将深入剖析该芯片的架构、外设、寄存器配置以及编程方法,帮助您充分利用其强大的功能。


image.png

第二章:内核与系统架构


ARM Cortex-M3 内核


STM32F103C8T6 的核心是 ARM Cortex-M3 内核,这是一款专为嵌入式应用设计的 32 位处理器。Cortex-M3 内核的特点在于其高效的指令集、强大的中断处理能力和低功耗设计。它支持 Thumb-2 指令集,该指令集结合了 16 位和 32 位指令,在保持代码紧凑性的同时,提高了执行效率。内核内部集成了嵌套向量中断控制器(NVIC),可以管理多达 240 个中断源,支持可编程的优先级,确保了系统对实时事件的快速响应。此外,Cortex-M3 还提供了多个调试接口,如 JTAGSWD,方便开发者进行程序调试和故障排查。内核还集成了内存保护单元(MPU),可以对内存区域进行权限管理,增强了系统的安全性和稳定性。Cortex-M3 的架构设计使其在功耗和性能之间取得了完美的平衡,非常适合电池供电的嵌入式应用。


时钟系统


时钟是微控制器的“心脏”,决定了所有操作的同步和速度。STM32F103C8T6 提供了多种时钟源,包括高速外部时钟(HSE)、高速内部时钟(HSI)、低速外部时钟(LSE)和低速内部时钟(LSI)。HSE 通常由外部晶体振荡器提供,频率范围为 4MHz 至 16MHz,精度高,是系统主时钟的首选。HSI 是一个 8MHz 的内部 RC 振荡器,可作为备份或在没有外部晶振时使用。LSE 是一个 32.768kHz 的外部晶振,常用于实时时钟(RTC)。LSI 是一个 40kHz 的内部 RC 振荡器,用于独立看门狗(IWDG)。系统通过时钟控制器(RCC)对这些时钟源进行管理和分频,生成不同的总线时钟(AHBAPB1APB2),以供各个外设使用。AHB 总线通常连接到高性能外设,如 DMA、SRAM 等,而 APB1 和 APB2 总线则连接到其他通用外设。灵活的时钟配置能力使得开发者可以根据应用需求,在功耗和性能之间进行权衡。


电源管理


STM32F103C8T6 提供了多种电源管理模式,以满足不同应用场景下的功耗需求。正常运行模式下,微控制器所有功能都处于激活状态。当需要降低功耗时,可以进入低功耗模式,包括睡眠模式(Sleep)、停止模式(Stop)和待机模式(Standby)。在睡眠模式下,Cortex-M3 内核停止运行,但所有外设和 SRAM 依然保持供电,可被任何中断唤醒,唤醒时间极短。停止模式下,主时钟停止,所有高速时钟域都被关闭,但 SRAM 和寄存器内容得以保留。可以通过外部中断或 RTC 事件唤醒。待机模式是功耗最低的模式,此时整个 1.8V 域都被断电,只有备份域(RTCBKPR)保持供电,唤醒后需要进行完整的系统复位。通过合理选择低功耗模式,可以大大延长电池供电产品的续航时间。


第三章:存储器组织与管理


闪存(Flash)存储器


STM32F103C8T6 内置了 64KB 的闪存存储器,用于存储程序代码和常量数据。闪存被划分为多个扇区,支持在系统复位后直接执行程序。闪存控制器(FMC)负责管理对闪存的读、写和擦除操作。写操作和擦除操作需要特定的编程序列,并且每次写操作必须以半字(16 位)或字(32 位)为单位进行。由于闪存的擦除次数有限,通常在几万次到几十万次之间,因此在设计需要频繁写入数据的应用时,需要谨慎规划存储策略,例如使用磨损平衡(wear leveling)算法。STM32F103C8T6 还支持在应用内编程(IAP)和在系统内编程(ISP),使得开发者可以在不使用外部编程器的情况下,通过串口等方式更新固件。


静态随机存取存储器(SRAM)


芯片内部集成了 20KB 的 SRAM,用于存储程序运行时所需的变量、堆栈和堆。SRAM 是一种易失性存储器,在断电后数据会丢失,但其读写速度非常快,能够与 Cortex-M3 内核以全速运行,而不需要额外的等待周期。SRAM 的地址空间被映射到内核的数据总线上,可以直接通过 C 语言中的指针进行访问。高效的 SRAM 使得程序在执行复杂算法或处理大量数据时能够获得最佳性能。


备份寄存器(Backup Registers)


STM32F103C8T6 提供了 10 个 16 位的备份寄存器,它们位于备份域内,由 V_BAT 供电。即使在待机模式下,当主电源 VDD 被切断后,这些寄存器的数据仍然可以被保留。备份寄存器通常用于存储一些关键的系统配置参数、校准数据或应用程序状态信息,例如 RTC 的配置。当系统从待机模式唤醒后,可以从备份寄存器中恢复这些信息,从而实现快速启动或状态恢复。


第四章:通用输入/输出(GPIO)


GPIO 端口


STM32F103C8T6 提供了多个 GPIO 端口,每个端口最多有 16 个引脚。每个 GPIO 引脚都可以独立配置为 输入输出复用功能模拟 模式。在输入模式下,引脚可以配置为浮空输入、上拉输入或下拉输入,用于读取外部信号电平。在输出模式下,引脚可以配置为推挽输出或开漏输出,并且可以设置输出速度(2MHz, 10MHz, 50MHz),以满足不同驱动能力和功耗的需求。复用功能模式允许 GPIO 引脚连接到芯片内部的其他外设,例如 UART、SPI、I2C 等。模拟模式则用于连接 ADC 或 DAC 外设。每个 GPIO 端口都有相应的控制寄存器,包括 模式寄存器(CRL/CRH)输出类型寄存器(OTYPER)输出速度寄存器(OSPEEDR)上拉/下拉寄存器(PUPDR)输入数据寄存器(IDR)输出数据寄存器(ODR),通过对这些寄存器进行编程,可以灵活控制每个引脚的行为。


外部中断/事件控制器(EXTI)


EXTI 控制器是 STM32F103C8T6 的一个重要功能,它允许 GPIO 引脚上的电平变化触发外部中断或事件。EXTI 控制器有 19 个独立的中断/事件线,其中 16 条线连接到 GPIO 引脚,另外 3 条线连接到其他内部事件,如 RTC 唤醒事件。每条 EXTI 线都可以独立配置为上升沿触发、下降沿触发或双边沿触发。当触发条件满足时,EXTI 控制器会向 NVIC 发送中断请求,从而使系统能够对外部事件做出快速响应,例如按键按下、传感器信号变化等。EXTI 的存在使得微控制器无需持续轮询输入状态,大大节省了 CPU 资源,特别是在低功耗应用中至关重要。


第五章:定时器与PWM



通用定时器


STM32F103C8T6 提供了多个通用定时器,如 TIM2、TIM3 和 TIM4,每个都是一个 16 位定时器。这些定时器可以工作在多种模式下,包括基本定时器、输入捕获、输出比较和 PWM 模式。作为基本定时器,它们可以生成周期性的中断,常用于任务调度、延时和系统时基。在输入捕获模式下,定时器可以捕捉外部信号的边沿,并记录当前定时器的计数值,可用于测量脉冲宽度或频率。在输出比较模式下,当定时器计数值与预设值相等时,可以触发中断或改变引脚电平,常用于生成精确的延时或控制外部设备。


高级控制定时器


除了通用定时器,STM32F103C8T6 还包含一个高级控制定时器 TIM1。TIM1 是一个 16 位定时器,具有更强大的功能,特别适用于电机控制应用。它支持三对互补 PWM 输出,并且可以配置死区时间以防止上下桥臂同时导通。此外,TIM1 还集成了刹车(Break)功能,当发生故障时,可以立即关闭所有 PWM 输出,保护电机和驱动电路。TIM1 的输入捕获功能也支持多个通道同时捕获,并且可以配置为编码器接口模式,用于读取光电编码器的信号。


PWM (脉宽调制)


PWM 是定时器的重要应用之一,通过改变输出信号的占空比,可以实现对电机速度、LED 亮度等模拟量的精确控制。STM32F103C8T6 的定时器可以在 PWM 模式下工作,每个定时器有多个独立的通道,可以生成不同占空比的 PWM 信号。开发者可以通过配置定时器的预分频器(PSC)、自动重装载寄存器(ARR)和捕获/比较寄存器(CCR)来控制 PWM 信号的频率和占空比。高分辨率的 PWM 输出使得 STM32F103C8T6 在伺服电机控制、电源管理等领域具有显著优势。


第六章:通信接口


通用同步异步收发器(USART)


STM32F103C8T6 内置了多个 USART 接口,如 USART1、USART2 和 USART3,支持异步(UART)和同步通信。USART 是一种非常灵活的串行通信接口,支持全双工、半双工和单线通信。在异步模式下,它常用于与 PC、其他微控制器或蓝牙模块等设备进行通信。开发者可以通过配置波特率、数据位、停止位和奇偶校验位来匹配不同的通信协议。USART 还集成了 DMA 控制器,可以在不占用 CPU 资源的情况下,自动收发数据,大大提高了通信效率。此外,USART 支持硬件流控制(RTS/CTS),可用于需要可靠数据传输的场合。


串行外设接口(SPI)


SPI 是一种高速、全双工的同步串行通信协议,STM32F103C8T6 提供了两个 SPI 接口(SPI1, SPI2)。SPI 接口通常用于连接闪存芯片、ADC/DAC、液晶显示器等高速外设。它采用主从架构,由主设备提供时钟信号(SCK)、片选信号(NSS)和数据线(MOSI/MISO)。SPI 接口支持多种工作模式,包括时钟极性(CPOL)和时钟相位(CPHA),以适应不同的从设备。SPI 的高速度和硬件支持使其成为连接需要高吞吐量数据传输的外设的首选。


集成电路总线(I2C)


I2C 是一种双线制(SCLSDA)的半双工串行通信协议,支持多主多从模式。STM32F103C8T6 提供了两个 I2C 接口(I2C1, I2C2),常用于连接 EEPROM、传感器、实时时钟芯片等外设。I2C 协议基于地址寻址,每个设备都有一个唯一的地址,主设备通过发送地址来选择从设备进行通信。I2C 接口还支持快速模式(最高 400kHz)和标准模式(最高 100kHz)。其简单的两线接口和多主从架构使其在系统集成中非常方便。


第七章:模数转换(ADC)与DMA



模数转换器(ADC)


STM32F103C8T6 内置了一个 12 位 的多通道模数转换器(ADC)。ADC 可以将模拟电压信号转换为数字值,广泛应用于传感器数据采集、电压监测等领域。该 ADC 支持多达 16 个外部通道和两个内部通道(温度传感器和 V_REFINT),并且可以工作在单次转换或连续转换模式。它还支持扫描模式,可以自动按顺序转换多个通道。DMA(直接内存访问)控制器可以与 ADC 协同工作,将转换结果自动传输到内存中,无需 CPU 参与,极大地提高了数据采集的效率。ADC 的采样时间可以编程,以适应不同阻抗的模拟信号源。


直接内存访问(DMA)控制器


DMA 控制器是 STM32F103C8T6 的核心功能之一,它可以实现在不占用 CPU 资源的情况下,在内存、外设和内存之间进行数据传输。该芯片提供了两个 DMA 控制器,每个控制器有多个通道,可以配置为不同的传输方向和传输模式。例如,DMA 可以用于将 ADC 的转换结果传输到 SRAM 中,或者将 SRAM 中的数据传输到 USART/SPI 等外设进行发送。DMA 的使用极大地减轻了 CPU 的负担,使得 CPU 能够专注于处理更重要的任务,提高了整个系统的吞吐量和实时性。


第八章:调试与编程


JTAG 与 SWD 调试接口


JTAG(Joint Test Action Group)和 SWD(Serial Wire Debug)是两种常用的调试接口,用于连接外部调试器,如 ST-Link、J-Link 等。JTAG 接口需要 4-5 个引脚,支持边界扫描和程序调试。SWD 接口是一种两线制调试接口,只占用两个引脚(SWDIOSWCLK),在节省引脚资源的同时,提供了与 JTAG 几乎相同的调试功能。SWD 接口特别适用于引脚受限的小型封装芯片。通过这些接口,开发者可以对程序进行单步执行、断点调试、查看寄存器和内存内容等操作,极大地简化了软件开发和故障排查过程。


固件编程


STM32F103C8T6 的固件可以通过多种方式进行编程。最常见的方式是使用 JTAG 或 SWD 调试器,将编译好的程序镜像文件直接下载到闪存中。另一种方式是在系统内编程(ISP),通过 USART 接口使用 bootloader 协议进行固件下载。当芯片上电时,BOOT0 和 BOOT1 引脚的电平状态决定了从哪个地址启动程序。当 BOOT0 和 BOOT1 引脚配置为从系统引导程序启动时,开发者可以通过 USART1 将固件下载到闪存中。此外,STM32F103C8T6 也支持在应用内编程(IAP),即在程序运行时,通过特定的代码序列对闪存进行擦除和写入操作,从而实现固件的自更新。


第九章:其他外设



实时时钟(RTC)


STM32F103C8T6 内置了一个 RTC,它由低速外部时钟(LSE)或低速内部时钟(LSI)供电,即使在主电源断电后,只要有备用电池 V_BAT 供电,RTC 仍然可以保持运行,提供精确的时间和日期信息。RTC 可以配置为生成闹钟事件或周期性唤醒事件,常用于需要时间戳、定时唤醒等功能的设备。


看门狗(Watchdog)


STM32F103C8T6 提供了两个看门狗定时器:独立看门狗(IWDG)窗口看门狗(WWDG)。IWDG 由独立的 LSI 时钟供电,即使主时钟出现故障,它也能正常工作。当程序在规定时间内没有“喂狗”(即没有刷新看门狗计数器),看门狗就会溢出,并触发系统复位,防止程序陷入死循环。WWDG 则提供了一个更强大的功能,它要求程序在规定的时间窗口内进行“喂狗”,如果喂狗太早或太晚,都会触发系统复位,确保程序的运行状态正常。


第十章:封装与引脚


STM32F103C8T6 采用 LQFP48 封装,共有 48 个引脚。每个引脚都具有多种复用功能,开发者需要根据实际应用需求,通过编程配置来选择每个引脚的功能。LQFP48 封装尺寸小,适合空间有限的应用。每个引脚都有其特定的功能,例如 VDD/VSS 是电源引脚,PC13-PC15 是可用于备份域的引脚,PA0-PA15、PB0-PB15 等是通用 GPIO 引脚。开发者在设计硬件时,必须参考芯片手册中的引脚定义,正确连接电源、晶振和外设。


第十一章:编程实践与技巧



寄存器编程与库函数


对于 STM32F103C8T6 的编程,开发者可以选择直接操作寄存器,或者使用 STMicroelectronics 提供的 HAL(Hardware Abstraction Layer) 库或 LL(Low Layer) 库。直接操作寄存器可以最大程度地发挥芯片的性能,但编程难度较大,需要深入理解每个寄存器的功能。而使用库函数则可以简化编程,提高开发效率,特别适合初学者或快速原型开发。HAL 库提供了更高层次的抽象,而 LL 库则更接近寄存器操作,两者各有优缺点,开发者可以根据项目需求进行选择。


中断服务函数


中断是嵌入式系统中的核心概念,中断服务函数(ISR)是用来处理中断事件的特殊函数。在 STM32F103C8T6 中,每个中断源都有一个对应的中断向量,中断向量表中存储着 ISR 的地址。当中断发生时,内核会根据中断向量表的地址跳转到相应的 ISR 中执行。在编写 ISR 时,需要注意以下几点:ISR 应尽可能短小精悍,避免在其中执行耗时操作;ISR 中需要清除中断标志位,以防止重复进入中断;ISR 中应避免使用会引起上下文切换的函数,如延迟函数。


DMA 使用技巧


在使用 DMA 时,需要注意以下几点:首先,确保 DMA 传输的源地址和目的地址在正确的存储器类型中;其次,正确配置 DMA 通道,包括传输方向、数据宽度、传输模式等;最后,在 DMA 传输完成后,要清除相应的 DMA 中断标志位。DMA 的使用可以大大提升系统的性能,例如,可以通过 DMA 将 ADC 转换结果自动存储到数组中,而无需 CPU 持续查询 ADC 状态。


第十二章:系统复位与启动


STM32F103C8T6 支持多种复位源,包括上电复位(POR/PDR)、外部复位、看门狗复位、软件复位等。当系统复位后,程序会从闪存的复位向量地址(通常是 0x08000004)开始执行。在启动过程中,系统会根据 BOOT0 和 BOOT1 引脚的电平状态来选择启动模式,可以是闪存、系统存储器或 SRAM。开发者需要根据自己的应用需求,正确配置这些启动引脚,以确保程序能够正常启动。


第十三章:总结


STM32F103C8T6 是一款功能强大、应用广泛的微控制器。本手册详细介绍了其 ARM Cortex-M3 内核、时钟系统、存储器、GPIO、定时器、通信接口、ADC、DMA 等核心功能,并提供了调试、编程和系统复位等方面的指导。通过深入学习本手册,开发者将能够充分理解和掌握该芯片的各项功能,为嵌入式系统的设计和开发打下坚实的基础。

责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: stm32f103c8t6

相关资讯

资讯推荐
云母电容公司_云母电容生产厂商

云母电容公司_云母电容生产厂商

开关三极管13007的规格参数、引脚图、开关电源电路图?三极管13007可以用什么型号替代?

开关三极管13007的规格参数、引脚图、开关电源电路图?三极管13007可以用什么型号替代?

74ls74中文资料汇总(74ls74引脚图及功能_内部结构及应用电路)

74ls74中文资料汇总(74ls74引脚图及功能_内部结构及应用电路)

芯片lm2596s开关电压调节器的中文资料_引脚图及功能_内部结构及原理图_电路图及封装

芯片lm2596s开关电压调节器的中文资料_引脚图及功能_内部结构及原理图_电路图及封装

芯片UA741运算放大器的资料及参数_引脚图及功能_电路原理图?ua741运算放大器的替代型号有哪些?

芯片UA741运算放大器的资料及参数_引脚图及功能_电路原理图?ua741运算放大器的替代型号有哪些?

28nm光刻机卡住“02专项”——对于督工部分观点的批判(睡前消息353期)

28nm光刻机卡住“02专项”——对于督工部分观点的批判(睡前消息353期)

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告