被裁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

相关推荐
伟大的前程14 分钟前
unsigned int 定义的变量 在 电脑的 64 位系统中 和 32 位 cortex-m0 和 8 位的 51 单片机
单片机·嵌入式硬件
小渔村的拉线工32 分钟前
1.HPM6E80 解析芯片整体工作原理和存储架构
单片机·嵌入式硬件·mcu·架构·hpm6e80
熙芯XiChip1 小时前
CAN与CANopen的本质区别
单片机
lilihewo2 小时前
Altium Designer 封装库的创建(分享pcb 3D封装库)
嵌入式硬件·51单片机
神罚天下ET3 小时前
典型arm位单片机启动流程(从上电到main.c)
c语言·arm开发·单片机
碧海银沙音频科技研究院4 小时前
蓝牙耳机使用WSDF5361锂保芯片进入船运模式实现方法
嵌入式硬件·算法
Zevalin爱灰灰4 小时前
模拟信号链电路——基于TL431的电压基准电路
单片机·嵌入式硬件
csdn杰哥5 小时前
瑞萨单片机开发教程[二十七] DTC 外部中断触发传输实验
单片机·嵌入式硬件·mongodb·瑞萨·ra6m5
zcmodeltech5 小时前
农业教学实训沙盘物联网控制系统设计:基于STM32与Modbus RTU的“感知-控制-实训”一体化方案
分布式·stm32·嵌入式硬件·物联网
Hello_Damon_Nikola6 小时前
LIS3DH从入门到精通_三轴加速度计实战指南
单片机·嵌入式硬件·3d