STM32硬件基础

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:
alt 命名规则
图片转载自电子发烧友网:http://m.elecfans.com/article/597931.html



二. 部分拓展硬件

以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启动模式的详细阐述,参见下文:


STM32启动模式浅析





2. JTAG

JTAG电路
SWD 和 JTAG 接口共用,而SWD 只需要最少 2 根线 (SWCLK 和 SWDIO) 就可以下载并调试代码,跟串口下载代码差不多,而且速度更快,可调试。

推荐使用SWD下载调试(详见后期软件调试内容),摒弃JTAG

关于调试方法的区别,参见下文:


浅论各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别





3. EEPROM
  • EEPROM (Electrically Erasable Programmable read only memory),带电可擦可编程只读存储器,是一种掉电后数据不丢失的存储芯片,是用户可更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程(重写)。
  • EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。
  • 一般用于即插即用(Plug and Play,PnP),自动配置低层计算机中的板卡和其他设备,然后告诉对应设备都做了什么。
  • 区别于EPROM(Erasable Programmable ROM)芯片,EEPROM不需从计算机中取出即可修改,而EPROM一旦编程完成后,只能用强紫外线照射来擦除。

常用的24C02芯片:

24C02

  • 容量:2Kbit,256字节
  • A0-A3:器件地址线
  • WP: 写保护引脚
  • SCL/SDA:二线串行接口,服从I2C总线协议
  • VCC/GND:电源/地线

关于 Flash,RAM,ROM 存储的基本区别,参见下文:


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 接口

alt 属性文本

PS/2,一种鼠标和键盘的专用接口,是一种6针的圆型接口。PS/2接口是输入装置接口,而不是传输接口。所以PS2口没有传输速率的概念,只有扫描速率


鼠标的PS/2的接口是绿色,而键盘的PS/2接口是紫色,二者不能接反。

原理图:

PS/2

PS/2只有四个脚有意义。它们分别是 Clock、Data、VCC 和 GND

DATA接口在使用的时候需要开启内部上拉电阻





坚持写作的第二天,继续加油!

  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
电赛Altium Designer原件大全,原理图+PCB封装 AD603, AD603_2, AD8009, AD831, AD8314, AD8361, AD8367, ADF4351, ADL5536, ADS1293, ADS1293_Module, ADXL345, AH101, AMS1117, AT24C1024, Battery, Beep, BNC, Cap, Cap_Pol, CC2541-MOD, CH340G, Diode, Diode_Z, GND, Header 10, Header 10H, Header 10X2, Header 10X2A, Header 10X2H, Header 11, Header 11H, Header 11X2, Header 11X2A, Header 11X2H, Header 12, Header 12H, Header 12X2, Header 12X2A, Header 12X2H, Header 13, Header 13H, Header 13X2, Header 13X2A, Header 13X2H, Header 14, Header 14H, Header 14X2, Header 14X2A, Header 14X2H, Header 15, Header 15H, Header 15X2, Header 15X2A, Header 15X2H, Header 16, Header 16H, Header 16X2, Header 16X2A, Header 16X2H, Header 17, Header 17H, Header 17X2, Header 17X2A, Header 17X2H, Header 18, Header 18H, Header 18X2, Header 18X2H, Header 19, Header 19H, Header 19X2, Header 19X2H, Header 2, Header 20, Header 20H, Header 20X2, Header 20X2H, Header 22, Header 22H, Header 22X2, Header 22X2H, Header 24, Header 24H, Header 24X2, Header 24X2H, Header 25, Header 25H, Header 25X2, Header 25X2H, Header 2H, Header 2X2, Header 2X2H, Header 3, Header 30, Header 30X2, Header 3H, Header 3X2, Header 3X2A, Header 3X2H, Header 4, Header 4H, Header 4X2, Header 4X2A, Header 4X2H, Header 5, Header 5H, Header 5X2, Header 5X2A, Header 5X2H, Header 6, Header 6H, Header 6X2, Header 6X2A, Header 6X2H, Header 7, Header 7H, Header 7X2, Header 7X2A, Header 7X2H, Header 8, Header 8H, Header 8X2, Header 8X2A, Header 8X2H, Header 9, Header 9H, Header 9X2, Header 9X2A, Header 9X2H, HeadphoneSocket, HMC470, HMC472A, INA333, Ind, JTAG, LED, LM317, LM358, MB506, MC34063, MHDR1X10, MHDR1X11, MHDR1X12, MHDR1X13, MHDR1X14, MHDR1X15, MHDR1X16, MHDR1X17, MHDR1X18, MHDR1X19, MHDR1X2, MHDR1X20, MHDR1X3, MHDR1X4, MHDR1X5, MHDR1X6, MHDR1X7, MHDR1X8, MHDR1X9, MHDR2X10, MHDR2X11, MHDR2X12, MHDR2X13, MHDR2X14, MHDR2X15, MHDR2X16, MHDR2X17, MHDR2X18, MHDR2X19, MHDR2X2, MHDR2X20, MHDR2X3, MHDR2X4, MHDR2X5, MHDR2X6, MHDR2X7, MHDR2X8, MHDR2X9, MIC5219-3.3, MPU6050, MPU6050_module, NE5532, NPN, NPN_SOT23, nrf58122, OPA2333, OPA695, OPA847, PE4302, PNP, PNP_SOT23, PW2, PW3, PW4, Res, Res_8P4R, Res_pot, SMA, STC12C5A60S2, STC15F2K60S2, STM32F103RDT6, SW, SW_BTN, SW_DIP_4, SW_DIP_5, SW_DIP_6, SW_DIP_8, SW_PB, SX1308, Test, Test_6, THS3201, tlv3501, TP4056, TP5400, USB, USB_M, VCA810, VCA821, XC6206, XL6009, XTAL, XTAL_SMD
STM32是一款由意法半导体(STMicroelectronics)开发的32位微控制器系列。它广泛应用于各种嵌入式系统中,具有强大的处理能力和丰富的外设接口。 SPI(Serial Peripheral Interface)是一种同步串行通信接口,用于在微控制器和外部设备之间进行数据交换。STM32系列微控制器通常都配备了多个SPI接口,并且支持全双工通信。下面是STM32 SPI通信的硬件基础: 1. SPI主从模式:STM32可以配置为SPI主设备或从设备。主设备负责发起通信并控制通信的时序,而从设备被动响应主设备的请求。 2. SPI引脚:STM32上的SPI接口通常由四个引脚组成,分别是SCK(时钟线)、MISO(主设备输入从设备输出线)、MOSI(主设备输出从设备输入线)和NSS(片选线)。其中NSS可以配置为软件控制或硬件控制。 3. 数据传输格式:SPI通信可以选择不同的数据传输格式,包括数据位数、数据顺序和时钟极性。STM32支持8位或16位数据位数,可以选择先传输最高位还是最低位,以及时钟在空闲时为高电平还是低电平。 4. 时钟分频:STM32的SPI接口可以通过时钟分频来调整通信速度。可以根据外设的需求和主设备的时钟频率来选择适当的分频系数。 5. DMA传输:STM32的SPI接口还支持使用DMA(Direct Memory Access)进行数据传输,可以减少CPU的负载,提高数据传输效率。 通过配置以上硬件参数,并结合相应的SPI库函数,就可以在STM32上实现SPI通信。当然,具体的配置和编程方式会根据不同的STM32型号和开发环境有所不同,你可以参考相应的官方文档和例程来进行具体操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chorgy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值