进阶阶段——STM32学习笔记(一)
前言
由于套件放在学校,待等假期结束后才能做实验
0 STM32简介
注意:STM32的标准工作电压为3.3V,若用5V供电,需要用(电平转换电路)稳压芯片降压至3.3V才能给STM32使用。
关键是学习stm32的外设,通过程序配置外设来实现所需的功能
STM32可以加入操作系统,如freertos,ucos
0.1 外设/片上资源
要求:必须熟悉外设名称,功能,注意事项,代码设计时如何配置(步骤)
NVIC:(内核中的外设)进行中断管理,如配置中断优先级
SysTick:(内核中的外设)如果使用了操作系统,由它来提供时钟来进行任务切换的功能
RCC:配置系统时钟和使能各个模块外设的时钟(使用外设前必须配置的第一步)
GPIO: 高低电平的输出和输入,点灯,pwm,读取按键
AFIO:完成复用功能端口的重定义和中断端口的配置
EXIT:当引脚有电平变化时,可以触发中断,让CPU来处理任务
TIM:分为高级定时器 通用定时器 基本定时器 ,完成定时中断,PWM,测频率
ADC:可以直接读取IO口的模拟电压值,常配合DMA使用
DMA:搬运数据的小秘书,无需CPU参与
USART:同步/异步串口通信,平时的UART为异步串口
IIC,SPI:通信协议,可以用硬件输出其时序波形
CAN:用于汽车领域的通信协议
RTC:实时时钟,可外接电池,掉电不丢数据,任何实时时钟的核心都是晶振,晶振频率为32768Hz。它为分频计数器提供精确的与低功耗的实基信号。它可以用于产生秒、分、时、日等信息。为了确保时钟长期的准确性,晶振必须正常工作,不能够收到干扰。
PWR:可以让芯片加入睡眠模式,来达到省电的目的
BKP:断电后备份数据,由备用电源供电
IWDG,WWDG:系统死机或无限循环时,及时复位芯片,保证系统的稳定
DAC:在IO口直接输出模拟电压
USB OTG:让stm32成为主机,去读取其他外设设备
备用电池是给RTC和备用寄存器使用的
芯片有什么样的外设资源,需要看数据手册,如果操作到不存在的外设,则不会工作
0.2 命名规则(查表用)
0.3 系统结构
ICode 指令总线 DCode 数据总线 System系统总线
程序存放在主存储器Flash中
0.4 引脚定义
类型 S——电源
IO口主功能:上电后默认功能
IO口复用功能:IO口上同时连接的外设功能引脚
配置IO口的时候可以选择是通用IO口还是复用功能
重定义:如果有两个功能同时复用在一个IO口上,而确实需要用到两个功能,则可以将其中一个复用功能映射到其他端口上,前提是重定义功能的表里面有对应的端口
RTC引脚可以用来输出RTC校准时钟,RTC闹钟脉冲或秒时钟,一般接32.768KHz的晶振
系统主晶振,一般是8MHz的,芯片内有锁相环电路,可以对8MHz倍频,最后输出如72Mhz的频率,来作为系统的主时钟。
VSSA,VDDA:内部模拟部分的电源,如ADC,RC振荡器,VSSA是负极,接GND;VDDA是正极,接3.3V
WKUP功能可以用来唤醒处于待机模式的STM32
0.5 启动配置
切记:程序都是要存放在Flash主存储器中的。
设置为系统存储器模式时,说明系统存储器被选为启动区域,一般用来串口下载程序,因为系统存储器中存储的是一段bootloader程序,负责接收串口数据,转存进Flash主存储器中。
0.6 最小系统电路
组成部分:控制芯片 电源 晶振(时钟电路) 调试电路 复位电路
当遇到供电引脚,要在正负极之间加上滤波电容
另外,如果要使用RTC功能,需要在OSC32两个引脚接32.768kHz的晶振,因为内部RTC电路经过2的15次方分频后,就能产生1秒的时钟信号。