目录
- STM32f1库函数开发学习
- 硬件基础
- 一. 硬件资源
- 二. 部分拓展硬件
- 1. 启动方式
- 2. JTAG
- 3. EEPROM
- 4. 液晶显示
- 5. PS/2 接口
STM32f1库函数开发学习
硬件基础
一. 硬件资源
可能用到的硬件资源:
- HS0038 红外接收
- DS18B20 数字温度传感器
- 24C02 EEPROM
- JTAG/SWD
- CH340G
- AMS1117-3.3 电源稳压芯片
- PS/2 接头
- SD卡
- W25Q64 64M FLASH 芯片
- NRF24L01 无线通信
芯片命名规则
- ST代表意法半导体
- STM32代表ST品牌Cortex-Mx系列内核(ARM)的32位MCU
- 下一个字母( F/L/W )
- F:通用快闪(FlashMemory)
- F0xx和F1xx系列为2.0~3.6V
- F2xx和F4xx系列为1.8~3.6V
- L:低电压(1.65~3.6V)
- W:无线系统芯片,开发版
- 103代表是增强型系列(101是基本型)
- Z是引脚数,(Z-144脚、E-100脚…)
- 接下来的字母代表Flash容量(E-512K、D-348K、C-256K…)
- 封装:
T:LQFP
H:BGA
U:VFQFPN
Y:WLCSP/WLCSP64- 温度范围:
6:-40℃-85℃ (工业级)
7:-40℃-105℃(工业级)
例如STM32F103RBT6:
二. 部分拓展硬件
以STM32F103RCT6为例,并讲解一部分外设应用:
STM32F103RCT6
———————资源———————
48KB SRAM
256KB FLASH
2 个基本定时器
4 个通用定时器
2 个高级定时器
2 个 DMA 控制器,共 12 个通道
3 个 SPI、2 个 IIC
5 个串口、1 个 USB、1 个 CAN
3 个 12位 ADC、1 个 12 位 DAC
1 个 SDIO 接口及 51 个通用 IO 口
1. 启动方式
处理器基本原理都相似,简单理解都是取指令、执行指令。从哪里取指令就涉及到存储介质了,ROM和RAM其实就是两种不同的存储介质(一个可以掉电保存,一个掉电不保存),他们都可以做为存储指令的介质。
关于ROM,RAM,FLASH等存储介质有关内的介绍,参见下文:
ROM,RAM,FLASH等存储介质的区别介绍
所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。
STM32有3种启动方式,我们可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。
- 用户闪存存储器启动模式(Main Flash memory)
正常的用户工作模式,通过jtag和swd模式进行下载程序,重启后也直接从这启动程序。 - 系统存储器启动模式(system memory)
从系统存储器启动,这种模式启动的程序功能是由厂家设置的。 - SRAM启动(Embedded Memory)
SRAM,没有程序存储的能力,这个模式一般用于程序调试。
假如我只修改了代码中一个小小的地方,然后就需要重新擦除整个Flash,比较的费时,可以考虑从这个模式启动代码(也就是STM32的内存中),用于快速的程序调试,等程序调试完成后,在将程序下载到SRAM中。
查看BOOT所在位置的原理图:
Header 3X2 表示这是一个3X2的排针,那么我们只需要手动调整跳线帽就可以改变BOOT脚的高低电平,从而选择启动方式。
ISP下载,即In-System Programming,在线编程下载
选择ISP下载模式的时候,需要:
BOOT0 = 1,BOOT1 = 0
启动系统存储器用于串口下载,然后复位,下载,下载结束还需要将BOOT0接GND,手动复位,这样STM32才可以从Flash中启动。关于STM32启动模式的详细阐述,参见下文:
2. JTAG
SWD 和 JTAG 接口共用,而SWD 只需要最少 2 根线 (SWCLK 和 SWDIO) 就可以下载并调试代码,跟串口下载代码差不多,而且速度更快,可调试。
推荐使用SWD下载调试(详见后期软件调试内容),摒弃JTAG
关于调试方法的区别,参见下文:
3. EEPROM
- EEPROM (Electrically Erasable Programmable read only memory),带电可擦可编程只读存储器,是一种掉电后数据不丢失的存储芯片,是用户可更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程(重写)。
- EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。
- 一般用于即插即用(Plug and Play,PnP),自动配置低层计算机中的板卡和其他设备,然后告诉对应设备都做了什么。
- 区别于EPROM(Erasable Programmable ROM)芯片,EEPROM不需从计算机中取出即可修改,而EPROM一旦编程完成后,只能用强紫外线照射来擦除。
常用的24C02芯片:
- 容量:2Kbit,256字节
- A0-A3:器件地址线
- WP: 写保护引脚
- SCL/SDA:二线串行接口,服从I2C总线协议
- VCC/GND:电源/地线
关于 Flash,RAM,ROM 存储的基本区别,参见下文:
4. 液晶显示
通用液晶接口TFT_LCD
- 使用TFTLCD时
- LCD_LED 对应 PC10
- LCD_CS 对应 PC9
- LCD _RS 对应 PC8
- LCD _WR 对应 PC7
- LCD _RD 对应 PC6
- LCD _D[17:1]对应 PB[15:0]
- 使用OLED时:
- OLED_CS 对应 PC9;
- OLED_RS 对应 PC8;
- OLED_WR 对应 PC7;
- OLED_RD 对应 PC6;
- OLED_D[7:0]对应 PB[7:0];
- 引脚注解:
- CS:片选信号
- RST(RES):硬复位
- DC:命令/数据标志 (0读写命令;1读写数据)
- SCLK:串行时钟线,在 4 线串行模式下,D0 信号线作为串行时钟线 SCLK
- SDIN:串行数据线,在 4 线串行模式下,D1 信号线作为串行数据线 SDIN
5. PS/2 接口
PS/2,一种鼠标和键盘的专用接口,是一种6针的圆型接口。PS/2接口是输入装置接口,而不是传输接口。所以PS2口没有传输速率的概念,只有扫描速率
鼠标的PS/2的接口是绿色,而键盘的PS/2接口是紫色,二者不能接反。
原理图:
PS/2只有四个脚有意义。它们分别是 Clock、Data、VCC 和 GND
DATA接口在使用的时候需要开启内部上拉电阻
坚持写作的第二天,继续加油!