一、STM32简介
STM32是一种高性能、低成本、低功耗的32位微控制器单元(MCU),由意法半导体(STMicroelectronics)公司开发,基于ARM Cortex-M系列内核。
由于其出色的性能和灵活的配置,STM32被广泛应用于工业控制、消费电子、通信设备、汽车电子等多个领域,是嵌入式系统设计中非常重要的一个组成部分
STM32功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器
二、ARM
ARM是一种广泛使用的处理器架构,以其低功耗和成本效益而闻名。
ARM(Advanced RISC Machine)起源于英国的Acorn公司,它是一种基于RISC(Reduced Instruction Set Computing,精简指令集计算)原则的微处理器设计。这种设计旨在降低复杂性,从而减少功耗和制造成本,同时保持处理效率。
与x86架构相比,ARM采用了精简指令集,这意味着其每个指令的执行更为简单,有助于降低功耗和提高处理速度。而x86架构则使用复杂指令集,这使得它在执行单一指令时能完成更多的操作,但通常伴随着更高的功耗。
三、STM32F103C8T6
系列:主流系列STM32F1
内核:ARM Cortex-M3
主频:72MHz
RAM:20K(SRAM)RAM是运行内存,SRAM是实际内存介质
ROM:64K(Flash)ROM是程序存储器,实际存储介质是Flash'闪存
供电:2.0~3.6V(标准3.3V)
封装:LQFP48(48引脚)
四、片上资源/外设(主要)
1.NVIC(嵌套向量中断控制器):内核内用于管理中断的设备
2.SysTick(系统滴答定时器):主要用来给操作系统提供定时服务
3.RCC(复位和时钟控制):对系统的时钟进行配置,使能各模块的时钟
4.GPIO(通用IO口)
5.AFIO(复用IO口):复用功能端的重定义,还有中断端口的配置
6.EXTI(外部中断):配置好后,引脚发生电平变化可触发中断,让CPU来处理任务
7.TIM(定时器):分为通用定时器、高级定时器、基本定时器三种类型
8.ADC(模数转换器):STM32内置了12位的AD转换器
9.DMA(直接内存访问):帮助CPU完成搬运大量数据这样的繁杂任务
10.USART(同步/异步串口通信)
11.I2C(I2C通信)
12.SPI(SPI通信)
13.CAN(CAN通信)
14.USB(USB通信)
15.RTC(实时时钟):在STM32内部完成年月日计时功能,具有掉电保护、掉电不消失
16.CRC(CRC校验):数据的校验方式,同于判断数据的正确性
17.PWR(电源控制):可以让芯片进入休眠模式(省电)
18.BKP(备份寄存器):系统掉电时,可用备用电池保持数据
19.IWDG(独立看门狗)
20.WWDG(窗口看门狗)
19.20:当单片机因为电磁干扰死机或程序设计不合理出现死循环时,看门狗会及时的复位芯片,保持系统的稳定。(通俗的讲就是处理CPU任务时要定时去喂狗,程序死了狗就没人喂了,就会触发复位)
21.DAC(数模转换器):在IO口直接输出模拟电压,与ADC模数转换相反
五、芯片命名规则
一般来说引脚越多可使用的外设就会越多
六、stm32f103c8t6引脚定义
(1)大致说明
0.红色标记:电源相关引脚 蓝色最小系统相关引脚 绿色IO口功能口引脚
外设建议优先使用加粗的引脚
1.类型:S------电源 I------输入 O------输出 I/O输入输出
2.I/O电平:指IO口所能容忍电压
3.主功能:上电默认功能
4.默认复用功能:IO口上同时连接的外设功能引脚
(2)引脚说明
1.一号引脚VBAT:备用电池供电的引脚,只能接3.3V以下的电池,断电时可给内部RTC时钟和备份寄存器供电
2.二号引脚PC13-TAMPER-RTC(PC13IO口或引入检测或RTC):IO口输入输出高低电平,引入检测保障安全,RTC用来说出RTC实时时钟或闹钟脉冲
3.三四号引脚PC14-OSC32_IN、PC15-OSC32_OUT:IO口或接37.768KHzRTC晶振
4.五六号引脚PD0-OSC_IN、PD1-OSC_OUT:IO口或接系统时钟的主晶振
5.七号引脚NRST:低电平复位引脚
6.八九号引脚VSSA、VSSD:内部模拟部分电源VDD正极、VSS负极
7.十号引脚到十九号引脚、二十一和二十二引脚、二十五到三十三引脚、四十一到四十三引脚、四十五和四十六引脚:都是IO口引脚,PA0具有唤醒功能、可唤醒在休眠状态的STM32
8.二十号引脚PB2:作为IO口或BOOT1引脚,可配置启动模式
9.二十三和二十四引脚VSS_1和VDD_1以及三十五三十六引脚VSS_2 VDD_2、四十七四十八引脚VSS_3 VDD_3:采取了分区供电都作为系统的主电源口
10.三十四号和三十七号到四十号引脚:作为IO口或调试端口,用来调试程序和下载程序,STM32支持SWD和JTAG两种调试方式
11.四十四号引脚BOOT0:和BOOT1相同,作为启动配置