被裁20240927 --- 嵌入式硬件开发 STM32篇

人很容易原谅别人的错误但很难原谅别人的正确

1. 文档、手册、指南、资源

2. MCU 结构

STM32系列芯片的资源包括:

  • 少量的RAM

  • 少量的ROM

  • 看门狗

  • DMA

  • ADC、DAC

  • 中断

  • 定时器

  • 内部晶振(准确度不高)

  • uart、spi、I2c、can接口(串行接口、并行接口)

    不同核心的STM32芯片具有不同的主频和储存资源:

3. MCU 和 MPU 的区别

MCU中集成了少量的RAM和ROM。

4. 一些概念

什么是看门狗 ?

在嵌入式系统中,看门狗(Watchdog)是一种重要的硬件或软件机制,用于监视系统的运行状态并在出现故障或异常情况时采取适当的恢复措施。

看门狗通常由一个独立的硬件电路实现,也可以通过软件模拟实现。它基于一个简单的概念:定期喂食。当系统正常运行时,看门狗会定期接收到来自CPU或其他监控模块的喂食信号(即重置信号)。如果看门狗在预设的时间间隔内没有接收到喂食信号,它会认为系统出现故障或异常,并采取相应的恢复措施,如系统复位。

什么是 DMA ?

DMA(Direct Memory Access)即直接存储器访问,是一种允许某些硬件子系统(如外设)直接访问系统内存的技术,而无需中央处理单元(CPU)的介入。
定义 :DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
作用 :DMA技术主要用于解决大量数据转移过度消耗CPU资源的问题,使CPU能够更专注于其他操作,如计算和控制等。

什么是晶振 ?

时钟电路

什么是片内外设?

ADC、DAC、UART、SPI、I2C、CAN、USB、以太网、摄像头接口等。

软件协议、硬件协议、数据协议、通讯协议、通信协议

待续...

uart、usart、RS232、RS485的区别

待续...

RS232、RS422、RS485是什么?

串行通信接口标准
对比

特性 RS-232 RS-422 RS-485
通信模式 点对点 单向多点 双向多点
信号类型 单端信号 差分信号 差分信号
最大传输距离 15 米 1200 米 1200 米
最大速率 115.2 kbps 10 Mbps 10 Mbps
应用场景 短距离、单设备通信 长距离、单一发送设备 长距离、多设备通信

接口定义、接线方式

PWM信号调制

待续...

5. STM32 最小系统

STM32的最小系统是指能让STM32单片机正常运行的最少且必须的硬件元件组成的系统。这个系统通常包括以下几个关键部分:

一、电源电路

STM32单片机的工作电压一般为1.8V~3.6V(不同型号可能有所不同,但3.3V是常见的供电电压)。为了确保电源的稳定性,通常会使用稳压芯片,如AMS1117-3.3,将5V电压转换为稳定的3.3V电压供给单片机。此外,电源电路中还会加入多个滤波电容,以去除电源中的杂波和干扰信号,保证单片机的稳定运行。

二、时钟电路

时钟电路是STM32单片机的"心脏",为单片机提供运行的时钟信号。STM32通常有两组晶振:

  • 高速晶振:一般为主时钟晶振,常见频率为8MHz(但可以通过内部倍频达到更高的工作频率)。这个晶振为单片机提供主时钟信号,使单片机能够高速运行各种程序和任务。
  • 低速晶振:通常为RTC(实时时钟)时钟晶振,频率一般为32.768kHz。这个晶振为实时时钟提供精确的时钟信号,保证时间的准确记录。

晶振两端通常会连接电容,以起到滤波和稳定频率的作用。

三、复位电路

复位电路是单片机的"免疫系统",当系统出现故障或混乱时,可通过复位让系统重新开始。STM32是低电平复位,通常有手动复位和上电复位两种方式:

  • 手动复位:通过按键实现,当按下按键时,复位引脚接地为低电平,松开后恢复高电平,从而实现复位操作。
  • 上电复位:利用电容的充放电特性,在上电瞬间,由于电容两端电压不能突变,复位引脚为低电平,随着电容充电完成,复位引脚变为高电平,单片机开始正常工作。

四、调试接口电路

调试接口电路是开发过程中不可或缺的部分,它方便开发者进行程序的下载和调试。STM32常用的调试下载方式有JTAG和SWD:

  • JTAG:一种国际标准测试协议,主要用于芯片内部测试。标准的JTAG接口是4线接口,包括TMS(模式选择)、TCK(时钟)、TDI(数据输入)和TDO(数据输出)。
  • SWD:一种和JTAG不同的调试模式,使用的调试协议也不一样。与JTAG相比,SWD接口简单,只需要2根线(SWDIO和SWCLK)即可实现调试和下载功能,节省I/O口和板子空间,且在高速模式下更加可靠。

五、启动电路

启动电路决定了单片机的启动方式。STM32有三种启动模式,由BOOT0和BOOT1引脚在复位时的状态决定:

  • 从主Flash启动:最常见的启动方式,BOOT0为0,BOOT1为任意值。此时,代码存储在STM32的内置Flash中。
  • 从系统存储器启动:BOOT0为1,BOOT1为0。此时,内置ROM的起始地址将被重映射到0x00000000地址,通常用于执行串口程序下载(ISP)。
  • 从嵌入式SRAM中启动:BOOT0和BOOT1都为1。此时,代码从SRAM中启动,适合调试,但掉电后数据会丢失。

综上所述,STM32的最小系统由电源电路、时钟电路、复位电路、调试接口电路和启动电路组成。这些部分相互配合,共同为单片机的稳定运行提供了保障。

6.为什么使用 MCU?

  • 廉价
  • 低功耗
  • 可复用(可编程)

7. 如何选型?

结合使用场景?

主频?

RAM和ROM的大小?

ADC、DAC数量?

UART数量?

功耗?

8. 如何使用STM32MCU芯片?

一、自己设计电路板

电路图设计?

电路设计工具?

设计步骤?

打印PCB板?

贴片?

编程、烧录?

调试测试?

二、购买官方开发板(或第三方开发板)

选择哪种板子?

9. 程序开发步骤

依次使用STM32Cube 系列软件:

STM32Cube 系列软件提供了:

  • HAL(High Abstraction Layer)
  • LL(Low Layer)
  • Examples
  • Readme files

STM32Cube 系列软件下载地址。

10. 硬件调试工具

11. STM32 H743 为例

【1】STM32H743概述

【2】STM32H743xI单片机数据手册(描述、功能概述、引脚分配和定义、电气特性、封装等)

【3】STM32 H743手册、文档

12. STM32 H743 飞控

待续...

参考文献

【1】https://www.stmcu.com.cn

【2】https://www.doubao.com/chat

相关推荐
charlie1145141911 小时前
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(协议层封装)
c语言·驱动开发·单片机·学习·教程·oled
简知圈5 小时前
【04-自己画P封装,并添加已有3D封装】
笔记·stm32·单片机·学习·pcb工艺
徐某人..5 小时前
ARM嵌入式学习--第十天(UART)
arm开发·单片机·学习·arm
Ronin-Lotus7 小时前
嵌入式硬件篇---CPU&GPU&TPU
嵌入式硬件·学习·cpu·gpu·tpu
linhhanpy8 小时前
自制虚拟机(C/C++)(二、分析引导扇区,虚拟机读二进制文件img软盘)
c语言·汇编·c++·python·stm32·操作系统
LS_learner9 小时前
42步进电机
嵌入式硬件
LS_learner9 小时前
PCA9685 一款由 NXP Semiconductors 生产的 16 通道、12 位 PWM(脉宽调制)控制器芯片
嵌入式硬件
stm32发烧友13 小时前
基于 STM32 的智能电梯控制系统
stm32·单片机·嵌入式硬件
快秃头的码农14 小时前
ESP32-c3实现获取土壤湿度(ADC模拟量)
单片机·嵌入式硬件
LS_learner15 小时前
A4988一款常用的步进电机驱动芯片
嵌入式硬件