进阶阶段——STM32学习笔记(一)

前言

由于套件放在学校,待等假期结束后才能做实验

0 STM32简介

注意:STM32的标准工作电压为3.3V,若用5V供电,需要用(电平转换电路)稳压芯片降压至3.3V才能给STM32使用。

关键是学习stm32的外设,通过程序配置外设来实现所需的功能

STM32可以加入操作系统,如freertos,ucos

0.1 外设/片上资源

要求:必须熟悉外设名称,功能,注意事项,代码设计时如何配置(步骤)

stm32cubemx dac输出电压 stm32输出电压范围_晶振

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 命名规则(查表用)

stm32cubemx dac输出电压 stm32输出电压范围_引脚_02

0.3 系统结构

ICode 指令总线 DCode 数据总线 System系统总线

程序存放在主存储器Flash中

stm32cubemx dac输出电压 stm32输出电压范围_晶振_03

stm32cubemx dac输出电压 stm32输出电压范围_复用_04

stm32cubemx dac输出电压 stm32输出电压范围_stm32cubemx dac输出电压_05

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主存储器中的。

stm32cubemx dac输出电压 stm32输出电压范围_stm32cubemx dac输出电压_06

设置为系统存储器模式时,说明系统存储器被选为启动区域,一般用来串口下载程序,因为系统存储器中存储的是一段bootloader程序,负责接收串口数据,转存进Flash主存储器中。

0.6 最小系统电路

组成部分:控制芯片 电源 晶振(时钟电路) 调试电路 复位电路

当遇到供电引脚,要在正负极之间加上滤波电容

stm32cubemx dac输出电压 stm32输出电压范围_引脚_07

另外,如果要使用RTC功能,需要在OSC32两个引脚接32.768kHz的晶振,因为内部RTC电路经过2的15次方分频后,就能产生1秒的时钟信号。