首页 > 其他分享 >STM32通讯方式总结

STM32通讯方式总结

时间:2024-07-16 21:31:14浏览次数:18  
标签:总结 DMA 定时器 存储器 STM32 通讯 串口 PWM

STM32通讯方式总结

1.SPI通信 (Serial Peripheral interface,串行外围设备接口)

是一种高速的,全双工,同步的串行通信总线

  • 功能:SPI接口主要应用于EEPROM,FLASH,各种传感器,AD转换器等

W25Q32(芯片)是一种使用SPI通讯协议的NOR FLASH存储器

——案例:SPI外设读写Flash

2.串口通信

——通信对象:计算机和串口通讯

(STM32提供了USART通用同步异步收发器,是一个串行通信设备;

电脑已经没有串口接口,为了使用串口,用STLink2.1的USB转串口的功能)

3.I2C通讯

是一种简单的双向两线制总线协议标准,支持同步串行半双工通讯。

  • 使用对象:

    EEPROM芯片最常用的通讯方式就是I2C协议 (使用的芯片是M24C02)

——————————————————————————————————————

相关概念

  1. DMA直接存储访问

    用来提供在外设和存储器之间 或者 存储器和存储器之间的高速数据传输。

    无须CPU干预,数据可以通过DMA快速地移动

  2. ADC模数转换

    模拟数字转换器

  3. FMSC控制器(Flexible static memory controller,灵活的静态存储器控制器)

    用来扩展一个FLASH或者SRAM

    STM32可以通过FSMC与SRAM、ROM、PSRAM、Nor Flash和NandFlash存储器的引脚相连,从而进行数据的交换。要注意的是,FSMC 只能扩展静态的内存(S:static)

  4. LCD显示

————————————————————————————————————————

定时器

系统定时器(SysTick系统)是属于CM3内核

​ 一个24bit的向下递减的计数器,计数器每计数一次的时间为1 / SYSCLK

​ (可以产生中断,一般一秒中断一次)

  • 功能:系统定时器一般用于操作系统,用于产生时基,维持操作系统的心跳。

​ 作为一个闹铃,用于测量时间等。

​ ——案例:LED灯闪烁

STM32F103系列提供了8个定时器:2个基本定时器(TIM6,7),4个通用定时器(TIM2-5),2个高级定时器(TIM1和TIM8)。

1、基本定时器(TIM6和TIM7)

​ 这2个定时器是互相独立的,不共享任何资源。

​ 只能向上计数,由于没有外部IO,所以只能计时,不能对外部脉冲进行计数。

  • 功能:定时中断,主模式,触发DAC。

    ——案例:LED灯闪烁

2、通用定时器(TIM2、TIM3、TIM4、TIM5)

​ 拥有基本定时器所有功能。并增加如下功能:

  • (1)多种时钟源。

  • (2)向上计数(加),向下计数(减),向上/向下(先加后减)。一般使用向上计数

  • (3)输入捕获。

  • (4)输出比较。

  • (5)PWM生成。

    支持针对定位的增量(正交)编码器和霍尔传感器电路。

    ——案例:LED呼吸灯——PWM脉冲(生成PWM方波)

    ​ 测量PWM的频率/周期 和 占空比

3、高级定时器(TIM1、TIM8)

​ 高级定时器除了拥有通用定时器的所有功能外,还具有以下功能:

  • (1)死区时间可编程的互补输出。

  • (2)断路输入信号(刹车输入信号)。

  • (3)重复计数器。

    ——案例:输出有限个周期的PWM波

DMA 直接存储器存取(direct memory access)

用来提供在外设和存储器之间或者存储器和存储器(ROM和RAM)之间的高速数据传输。

ROM(flash)

无须CPU干预,数据通过DMA快速地移动,这就节省了CPU的资源来做其他操作。

特点:

DMA有DMA1和DMA2两个控制器,DMA1有7个通道,DMA2有5个通道,不同DMA控制器的通道对应着不同的外设请求

  • 先给DMA控制器发送DMA请求 ——> 通道 ——> 仲裁器 ——> 传输方向

    ——案例:ROM到RAM

    ​ RAM到外设(串口)

ADC(模数转换)

模拟数字转化

——案例:独立模式单通道采集(采集可变电阻器的电压,并通过串口把电压数据发送到电脑端。)

​ 独立模式多通道采集

标签:总结,DMA,定时器,存储器,STM32,通讯,串口,PWM
From: https://www.cnblogs.com/petard/p/18306155

相关文章

  • 前端面试必修--面试八股文(根据本人面试经验总结,持续更新)
    前端八股目录前端铜九铁十面试必备八股文——HTML&CSS-掘金(juejin.cn)webpack和vite之间的区别优点:缺点:1、前端工程化解决的问题1.为什么需要前端工程化?2.前端工程化流程常见请求头前端用户验证方案HTTP基本认证Session-Cookie认证Token认证JWT认证单点登录L......
  • stm32用spi开发W25Q128(Flash闪存芯片)
    前提提要spi概念目录stm32用spi开发W25Q128(Flash闪存芯片)开发流程W25Q128(Flash闪存芯片)介绍内存分布引脚说明指令介绍(1) 写使能指令0x06(2) 读状态寄存器0x35(3) 写失能指令0x04(4) 擦除扇区指令0x20(5) 读取厂商和设备ID0x90代码stm32用spi开发W25Q128(Flash闪存芯片)开发......
  • Java SE 总结
    目录1初始Java2数据类型与变量3运算符4程序逻辑控制5方法的使用6数组的定义与使用7 Java类和对象8继承和多态9抽象类和接口10Java中String类11Java异常1初始JavaJDK,JRE,JVMJava代码书写注释标识符关键字标识符:在程序中由用户给类名......
  • 暑假Java自学每日进度总结1
    今日所学:一.常用的cmd命令:1>盘符:2>dir(显示当前文件所有目录)3>cd目录(打开该目录)4>cd..(回到上一目录)5>cd(回到当前盘符初始态)6>cls(清屏)7>exit(退出cmd命令界面)8>cd目录1\目录2...(打开多级目录)二.创建用cmd打开软件的快捷方式:使用环境变量:1>电脑2>属性3>高......
  • JavaSE的整体总结
    JavaSE(JavaStandardEdition)是Java编程语言的基础,广泛应用于各种开发场景。本文将详细介绍JavaSE的基本概念和核心功能,包括初识Java、数据类型和变量、运算符、程序逻辑控制、方法的使用、数组的定义与使用、类和对象、继承和多态、抽象类和接口、String类以及异常处理。1.......
  • STM32入门教程:智能洗衣机控制
    智能洗衣机是目前流行的智能家居设备之一,它能够自动完成洗衣过程,并且能够根据衣物的种类和数量进行智能调整。在本教程中,我们将使用STM32微控制器来实现一个简单的智能洗衣机控制系统。硬件准备首先,我们需要准备以下硬件材料:STM32开发板(如STM32F407Discovery)液晶显示器(LCD)......
  • 使用STM32实现智能电子秤
    智能电子秤是一种基于微控制器的测量仪器,能够通过传感器测量物体的重量,并将结果显示在液晶屏上。本文将详细介绍如何使用STM32微控制器实现一个简单的智能电子秤。首先,我们需要准备的硬件设备有:STM32开发板(例如STM32F103C8T6)HX711模块(AD转换芯片)串行LCD模块或OLED模块(用于显......
  • C语言网络编程(一对多通讯)
    使用C语言实现一个服务器对多个客户端主要技术除了网络编程几个函数的使用外,还用到了线程,实现方式是一个客户端对应一个新的线程Server:#include<pthread.h>//包含线程库的头文件#include<stdio.h>#include<sys/types.h>#include<sys/socket.h>#include<arpa/inet.h......
  • Redis实战篇之秒杀优化(基于黑马程序员Redis讲解视频总结)
    1.秒杀优化-异步秒杀思路我们来回顾一下下单流程当用户发起请求,此时会请求nginx,nginx会访问到tomcat,而tomcat中的程序,会进行串行操作,分成如下几个步骤1、查询优惠卷2、判断秒杀库存是否足够3、查询订单4、校验是否是一人一单5、扣减库存6、创建订单在这六步操作中,又......
  • JS进阶总结
    JS进阶作用域作用域规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问;分为局部作用域和全局作用域局部作用域局部作用域分为函数作用域和块作用域1)函数作用域:函数内部声明的变量,在函数外部无法被访问函数执行完毕后,函数内部的变量实际被清空<sc......