STM32的标准工作电压为3.3V,若用5V供电,需要用(电平转换电路)稳压芯片降压至3.3V才能给STM32 使用。 重点是学习stm32的外设,通过程序配置外设来实现所需的功能。
STM32可以加入操作系统,如freertos,ucos
一、外设/片上资源
要求:必须熟悉外设名称,功能,注意事项,代码设计时如何配置(步骤)
NVIC:(内核中的外设)进行中断管理,如配置中断优先级;
SysTick:(内核中的外设)如果使用了操作系统,由它来提供时钟来进行任务切换的功能;
RCC:配置系统时钟和使能各个模块外设的时钟(使用外设前必须配置的第一步);
GPIO: 高低电平的输出和输入,点灯,pwm,读取按键;
AFIO:完成复用功能端口的重定义和中断端口的配置;
EXIT:当引脚有电平变化时,可以触发中断,让CPU来处理任务;
ADC:可以直接读取IO口的模拟电压值,常配合DMA使用;
DMA:搬运数据的小秘书,无需CPU参与;
USART:同步/异步串口通信,平时的UART为异步串口;
IIC,SPI:通信协议,可以用硬件输出其时序波形;
CAN:用于汽车领域的通信协议;
RTC:实时时钟,可外接电池,掉电不丢数据,任何实时时钟的核心都是晶振,晶振频率为32768Hz。它为分频计 数器提供精确的与低功耗的实基信号。它可以用于产生秒、分、时、日等信息。为了确保时钟长期的准确性,晶振 必须正常工作,不能够收到干扰。
PWR:可以让芯片加入睡眠模式,来达到省电的目的;
BKP:断电后备份数据,由备用电源供电;
IWDG,WWDG:系统死机或无限循环时,及时复位芯片,保证系统的稳定;
DAC:在IO口直接输出模拟电压;
USB OTG:让stm32成为主机,去读取其他外设设备;
备用电池是给RTC和备用寄存器使用的;
芯片有什么样的外设资源,需要看数据手册,如果操作到不存在的外设,则不会工作。
二、系统结构
ICode 指令总线 DCode 数据总线 System系统总线
程序存放在主存储器Flash中
三、引脚定义
类型 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
四、启动配置
切记:程序都是要存放在Flash主存储器中的。
在stm32f10xxx里,可以通过BOOT[1:0]引脚选择三种不同的启动模式。
在系统复位后,sysclk的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。
设置为系统存储器模式时,说明系统存储器被选为启动区域,一般用来串口下载程序,因为系统存储器中存储的是一段bootloader程序,负责接收串口数据,转存进Flash主存储器中。
五、 最小系统电路
组成部分:控制芯片、电源、 晶振(时钟电路)、 调试电路、 复位电路。
当遇到供电引脚,要在正负极之间加上滤波电容。
另外,如果要使用RTC功能,需要在OSC32两个引脚接32.768kHz的晶振,因为内部RTC电路经过2的15次方分频 后,就能产生1秒的时钟信号。