本帖最后由 hah1 于 2022-7-12 15:21 编辑
#申请原创# @21小跑堂
本篇基于STM32F103ZET6
第一篇 认识STM32
STM32开发板的资源
64KB SRAM、512KB FLASH、2 个基本定时器、4 个通用定时器、2 个高级定时器、2 个 DMA 控制器(共 12 个通道)、3 个 SPI、 2 个 IIC、5 个串口、1 个 USB、1 个 CAN、3 个 12 位 ADC、1 个 12 位 DAC、1 个 SDIO 接口、1 个 FSMC 接口以及 112 个通用 IO 口。该芯片的配置十分强悍,并且还带外部总线(FSMC)可以用来外扩 SRAM 和连接 LCD 等,通过 FSMC 驱动 LCD,可以显著提高 LCD 的刷屏速度。
MCU部分芯片原理图
1.IO口
STM32F103ZET6的主IO口有两组为P1和P2,这两组共有106个IO口,ZET6的总IO口有112个,RTC晶振占用了其中两个IO口,其余4个口分别由P3和P5两组引出
2.USB 串口/串口1选择接口
STM32F103板载的USB 串口和STM32F103ZET6的串口是通过P3 连接起来的,与CH340G的连接是TXD/RXD,也就是串口通信的接、发引脚;USART1_RX和USART_TX是和ZET6相连的,通过相连就可以实现USB和ZET6的串口通信,同时PA9和PA10也是IO口
3.JTAG/SWD
STM32有两个接口JTAG和SWD,一般情况我们会选SWD模式,在SWD模式下只需要一根线就可以把代码下载调试,这和我们平时使用的串口下载一样,且速度很快,SWD和JTAG的接口是共用,所以接上JTAG也可以使用SWD模式,JTAG 有几个信号线用来接其他外设了,但是 SWD 是完全没有接任何其他外设的,所以在使用的时候,最好选择SWD模式
4.LCD模块
TFT_LCD 是一个通用的液晶模块接口,LCD 接口连接在 STM32F103ZET6的 FSMC 总线上面,可以显著提高 LCD 的刷屏速度。T_MISO/T_MOSI/T_PEN/T_SCK/T_CS 连接在 MCU 的 PB2/PF9/PF10/PB1/PF11 上,这些信号用来实现对液晶触摸屏的控制(支持电阻屏和电容屏)。LCD_BL 连接在 MCU 的 PB0上,用于控制 LCD 的背光。液晶复位信号 RESET 则是直接连接在开发板的复位按钮上,和MCU 共用一个复位电路。
5.复位电路
因为 STM32 是低电平复位的,所以ZET6的电路也是低电平复位的,这里的 R2 和 C10构成了上电复位电路。同时,开发板把 TFT_LCD 的复位引脚也接在 RESET 上,这样这个复位按钮不仅可以用来复位 MCU,还可以复位 LCD。
6.光敏传感器
图中的 LS1 就是光敏传感器,其实就是一个光敏二极管,周围环境越亮,电流越大,反之电流越小,即可等效为一个电阻,环境越亮阻值越小,反之越大,从而通过读取 LIGHT_SENSOR的电压,即可知道周围环境光线强弱。LIGHT_SENSOR 连接在 MCU 的 ADC3_IN6上面,即 PF8 引脚。
7.温湿度传感器接口
U4接口支持 DS18B20/DS1820/DHT11 等单总线数字温湿度传感器。1WIRE_DQ 是传感器的数据线,该信号连接在 MCU 的 PG11 上。
8.LED
其中 PWR 是系统电源指示灯,为蓝色。LED0和 LED1分别接在 PB5 和 PE5 上。
9.按键
KEY0 和 KEY1 用作普通按键输入,分别连接在 PE4 和 PE3 上,这里并没有使用外部上拉电阻,但是 STM32 的 IO 作为输入的时候,可以设置上下拉电阻,可以使用 STM32 的内部上拉电阻来为按键提供上拉。KEY_UP 按键连接到 PA0,它除了可以用作普通输入按键外,还可以用作 STM32 的唤醒输入。注意:这个按键是高电平触发的。
10.蜂鸣器
STM32F103里使用的是有源蜂鸣器,它指自带了震荡电路的蜂鸣器,这种蜂鸣器一接上电就会自己震荡发声。Q1 是用来扩流,R33 则是一个下拉电阻,避免 MCU 复位的时候,蜂鸣器可能发声的现象。BEEP 信号直接连接在 MCU 的 PB8 上面,PB8 可以做 PWM 输出,所以如果想要控制蜂鸣器“唱歌”,就可以使用 PWM 来控制蜂鸣器。
以上几个模块是刚学习STM32会常用的几个模块的介绍,对于学习32来说,其实并不算难,如果学习过51单片机的人来学习32会更容易上手一些。
|