1.ARM是指ARM公司,也指ARM内核,A系列是适用于高端场景,如手机,电脑等,性能高,发展快。R系列主要是面临实时性的场景,比如硬盘控制器。M系列主要是使用在单片机领域上,有M0,M1,M3,M4,不同的型号的类型也是不同的。(stm32f1是使用M3的内核)。
2.stm32F103c8t6:
内核是M3内核,主频为72MHz,RAM(就是运行内存,实际存储介质为SRAM)20K,ROM(就是程序存储器,实际存储介质就是Flash闪存)64K。供电为2~3.6V(标准为3.3V),封装为LQFP48,总共有48个引脚。
3.STM32F1片上外设:
NVIC:管理中断,配置中断优先级的。
SysTick:系统滴答定时器,是系统内核的一个定时器,主要是用来给操作系统提供定时服用的,(FreeRTOS,UCOS,用操作系统,就需要使用SysTick提供定时来进行任务切换功能)。
RCC:对系统的时钟进行配置,使能各个模块的时钟,(在stm32中,其他的外设在上电的情况下是没有时钟的,不给时钟操作外设是无效的,外设也不会工作,目的是降低功耗)
AFIO:是复用IO口,可以完成复用功能端口的重定义,还有中断端口的配置。
EXITI:外部中断,当引脚有电平变化时,就可以触发中断,让CPU来处理任务
TIM: 分为高级定时器,通用定时器,基本定时器,高级定时器最为复杂,最常用的是通用定时器,不仅可以完成定时中断的任务, 还可以测频率,生成PWM波形,配置专用的编码器接口等功能。
ADC:模数转化器,这个stm32内置12位的转化器,可以直接读取IO口的模拟电压值,无需外部连接AD芯片,使用方便,
DMA:是直接内存访问,这个可以帮助CPU完成搬运大量数据这样的繁杂任务。(主要干简单且要重复去干的事情,释放CPU,提高程序的运行速度,DMA通过DMA总线连到总线矩阵上,可以拥有和cpu的一个总线控制权,用于访问外设小弟)
UART:异步串口, CAN:通常用于汽车领域的通信协议
RTC:实时时钟,在stm32内部完成年月日,时分秒计时功能,可接外部备用电池,掉电也可以正常运行
CRC:用于数据校验,用来判断数据的正确性,有这个外设,进行CRC校验就会更加方便一些。
PWR:电源控制,可以让芯片进入睡眠模式,来达到省电的目的
BKP:这是一个存储器, 当系统掉电时,仍可以由备用电池保持数据。
看门狗:当程序由于电磁干扰或者程序进入死循环,看门狗可以及时复位芯片,保证系统的稳定性。
DAC:数模转换器,可以直接在IO口,输出模拟电压
系统结构图:
1.当外设需要DAM搬运数据时,通过DMA请求然后DAM就会获得总线控制权,访问外设并转运数据。(整个过程不需要CPU的参与,cpu可以去干其他的事情)
2.由内核引出3条数据总线,ICode指令总线,DCode数据总线,SYstem系统总线,
3.ICode指令总线和DCode数据总线主要是连接Flash闪存的,Flash里面主要存储的是我们的编写的程序。.ICode指令总线用来加载指令的。DCode数据总线是用来加载数据的,比如常量和调试数据这些。
4.SYstem系统总线,连接到其他东西,比如SRAM,用于存储程序运行时变量的数据,连接FSMC,连接AHB系统总线(就是用于挂载主要外设)。
5.AHB:先进高性能总线,挂载的一般都是最基本的或者性能比较高的外设,比如复位和时钟控制,还有SDIO(SD卡的接口)。
6.再2个桥接,连接APB2和APB1外设总线上,(因为AHB和APB的总线协议和总线速度,还有数据的传送格式的差异,所以需要桥接,来完成数据的转换和缓存)。
7.APB2的性能比APB1高,APB2一般为72MHz(连接外设重要部分,如ADC,TIM1和TIM8高级定时器等),APB1为36Mhz
stm32c8t6引脚定义表
1.stm内部采用分区供电原则,所以有好几个主电源供电端口。
2.一般情况下,程序都是在Flash程序存储器开始执行,某些情况下也可以让程序从其他地方开始执行,用于执行特殊的功能。
启动配置:
1.系统存储器: 存放Bootloader程序,程序的作用:接受串口的数据,然后刷新到主闪存中,这样就是串口下载程序
2.内置SRMA:这个就是用于程序调试的
最小系统电路:
1.在STM32供电图中,在3.3V和GND中连接一个电容(0.1u),可以保证供电电压的稳定性。
2.外部晶振为8Mhz,通过锁相环进行倍频,得到72Mhz的主频。电路中接电容,为起震电容(20PF)