第九部分 :1.STM32之通信接口《精讲》(USART,I2C,SPI,CAN,USB)

本芯片使用的是STM32F103C8T6型号

STM32F103C8T6是STM32F1系列中的一种较常用的低成本ARM Cortex-M3内核MCU,具有丰富的通信接口,包括USART、SPI、I2C等。下面是该芯片上通信接口的管脚分布、每个接口的工作模式、常用应用场景和注意事项。

1. USART (通用同步/异步收发器)

管脚分布
  • USART1:TX (PA9), RX (PA10)
  • USART2:TX (PA2), RX (PA3)
工作模式
  • 异步模式:标准UART,用于点对点通信,常用于串口调试、与传感器通信。
  • 同步模式:较少使用,支持同步数据传输。
  • 多处理器模式:可用于连接多个设备的主从通信。
时钟与电平
  • 时钟:PCLK2 (USART1) 或 PCLK1 (USART2)
  • 电平:3.3V TTL电平
应用场景和注意事项
  • 应用场景:常用于串口调试、蓝牙模块通信(如HC-05)、GPS模块通信(如Ublox)、WIFI模块(如ESP8266)。
  • 注意事项:确保波特率一致。接收和发送的数据量大时,建议使用DMA减少CPU占用;同时,需要注意线缆长度和接收缓冲区溢出问题。
应用示例
  • 串口调试:将开发板的USART1连接到PC的串口(通过USB转串口模块)进行调试。
  • 蓝牙通信:通过USART2连接蓝牙模块进行无线数据传输。

2. SPI (串行外设接口)

管脚分布
  • SPI1:SCK (PA5), MISO (PA6), MOSI (PA7), NSS (PA4)
工作模式
  • 主模式:MCU作为主设备控制从设备的数据传输,支持点对多的通信。
  • 从模式:MCU作为从设备接收主设备的指令,常用于与MCU、DSP等其他主机通信。
时钟与电平
  • 时钟:PCLK2 (SPI1)
  • 电平:3.3V TTL电平
应用场景和注意事项
  • 应用场景:常用于连接Flash存储器、传感器(如MPU6050加速度计)、显示屏(如OLED)等。
  • 注意事项:SPI总线支持点对多通信,但需要用片选(NSS)信号选择从设备,注意信号线的干扰,尤其在高频率下。此外,SPI通信没有确认机制,需处理好数据错误或丢失问题。
应用示例
  • 外部Flash:通过SPI连接W25Qxx等Flash存储器进行数据读写。
  • 显示屏驱动:驱动OLED或TFT屏幕来显示内容。

3. I2C (集成电路间接口)

管脚分布
  • I2C1:SCL (PB6), SDA (PB7)
工作模式
  • 主模式:MCU作为主设备发起数据传输,支持点对多通信。
  • 从模式:MCU作为从设备响应主设备的请求,常用于从属设备设计。
时钟与电平
  • 时钟:PCLK1
  • 电平:3.3V TTL电平,需要上拉电阻
应用场景和注意事项
  • 应用场景:广泛用于传感器(如BMP280气压传感器、DS3231 RTC芯片)、LCD显示屏(如1602 LCD)等设备。
  • 注意事项:I2C是半双工通信,支持多个设备共用总线,因此需要设置唯一地址。电平转换器可以用于跨电压I2C通信。需要注意上拉电阻的选择,一般3.3k-10kΩ。
应用示例
  • RTC时钟模块:通过I2C读取DS3231等时钟芯片的数据。
  • 环境传感器:连接BMP280、DHT12等传感器采集环境数据。

4. CAN (控制器局域网)

STM32F103C8T6并没有内置CAN控制器,因此通常不支持CAN总线通信。如果需要使用CAN通信,可以选择带有CAN模块的STM32F103系列,如STM32F103CBT6(其硬件和引脚分布稍有不同)。

5. USB

管脚分布
  • USB:DM (PA11), DP (PA12)
工作模式
  • 设备模式:支持USB Device模式,可以作为USB从设备连接到计算机。
时钟与电平
  • 时钟:USB时钟
  • 电平:3.3V差分信号
应用场景和注意事项
  • 应用场景:常用于USB通信,包括USB串口、USB HID(如键盘鼠标)、USB音频、USB存储器等。
  • 注意事项:USB需要正确配置端点和描述符,且电路设计上注意信号的抗干扰处理。外部时钟需要满足48MHz的时钟精度要求。
应用示例
  • USB串口:使用USB CDC类将STM32板识别为USB串口,便于调试和通信。
  • USB键盘:将STM32板模拟为USB HID设备,实现键盘或鼠标的控制。

总结

STM32F103C8T6具有丰富的通信接口,能够满足不同的应用需求:

  • USART:适合点对点通信,适用于调试和低速无线模块通信。
  • SPI:适合高速点对多通信,广泛应用于传感器、存储、显示等场景。
  • I2C:适合中低速点对多通信,常用于传感器和LCD等模块。
  • USB:支持将MCU作为USB从设备连接到PC,便于通信和调试。

在设计中需要根据具体应用场景选择合适的接口,并关注各接口的电平、速率、抗干扰等设计要求。

USART和UART区别?

USART(Universal Synchronous/Asynchronous Receiver Transmitter)和UART(Universal Asynchronous Receiver Transmitter)都是串行通信接口,用于设备间的串行数据传输。它们的区别主要在于通信模式的支持:

1. 通信模式

  • USART:支持同步异步两种通信模式。
    • 异步模式下,USART和UART几乎一样,不需要时钟线,仅通过数据线传输数据,使用波特率来同步传输速率。
    • 同步模式下,USART会使用一个时钟信号(通常是主设备提供的)同步数据的发送和接收,这种模式下需要三条线路(TX、RX、时钟线)。同步模式通常用于需要更高传输速率的场景。
  • UART:仅支持异步通信模式。它不支持同步时钟信号,即无同步时钟线,主要通过设定一致的波特率来确保通信双方的同步。

2. 传输速率

  • USART同步模式可以更高效地传输数据,传输速率可达到主机时钟频率的一半甚至更高(比如在SPI模式下可以达到几兆比特每秒的传输速率)。
  • UART由于只能异步工作,速率通常受到波特率限制,通常在9600到115200之间,更高的波特率会增加数据丢失的风险。

3. 硬件支持

  • USARTUART接口在硬件上非常相似,许多微控制器中的USART模块都可以通过配置成异步模式,以兼容UART设备。
  • 在很多微控制器中,比如STM32,USART模块可以灵活配置为UART兼容模式,但UART接口无法配置为支持同步模式的USART。

4. 应用场景

  • USART适合用于需要同步通信的场景,例如与SPI设备通信,数据通信速率要求较高时的场合。
  • UART更常用于标准的异步串口通信,如与PC通信、蓝牙模块通信、GPS模块通信等,不依赖时钟信号,连接简单,应用广泛。

总结

  • USART支持同步和异步两种通信模式的接口,兼具更灵活的应用场景。
  • UART 只支持异步通信,应用上更为简单广泛。

对于大多数应用场景,如果只是进行普通串口通信(如调试),USART和UART在异步模式下没有本质差别,因此可以通用。而在同步数据传输需求较高的场景下(如与SPI设备进行高速数据传输),USART的同步模式优势会更明显。

 

STM32F103C8T6(48引脚封装)具有以下通信接口和方式:

通信接口数量

  1. USART/UART:3个接口

    • USART1:TX (PA9), RX (PA10)
    • USART2:TX (PA2), RX (PA3)
    • USART3:TX (PB10), RX (PB11)
  2. SPI:2个接口

    • SPI1:SCK (PA5), MISO (PA6), MOSI (PA7), NSS (PA4)
    • SPI2:SCK (PB13), MISO (PB14), MOSI (PB15), NSS (PB12)
  3. I2C:2个接口

    • I2C1:SCL (PB6), SDA (PB7)
    • I2C2:SCL (PB10), SDA (PB11)
  4. USB:1个接口

    • USB:DM (PA11), DP (PA12)

STM32F103C8T6的CAN接口信息

  1. CAN1接口管脚:
    • RX:PA11
    • TX:PA12

因此,STM32F103C8T6(48引脚)具备以下通信接口:

  1. USART/UART:3个
  2. SPI:2个
  3. I2C:2个
  4. USB:1个
  5. CAN:1个

总结

  • 通信接口总数量:9个
  • 支持的通信方式数量:5种(USART/UART、SPI、I2C、USB、CAN)

实验编程和实例 请看下一节!!!!!!!!!!!!!!!!!!!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/886142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ODOO学习笔记(8):模块化架构的优势

灵活性与可定制性 业务流程适配:企业的业务流程往往因行业、规模和管理方式等因素而各不相同。Odoo的模块化架构允许企业根据自身的具体业务流程,选择和组合不同的模块。例如,一家制造企业可以启用采购、库存、生产和销售模块,并通…

MATLAB课程:AI工具辅助编程——MATLAB+LLMs

给出一些可能有用的方法辅助大家写代码。 方法一:MATLAB软件LLM (不太懂配置的同学们为了省事可以主要用这个方法) 方法一特别针对本门MATLAB教学课程,给出一种辅助ai工具的操作指南。MATLAB中可以安装MatGPT插件,该插件通过调用ChatGPT的API…

C++二叉平衡搜索树:AVL树的插入、删除与平衡

目录 引言 AVL树的概念 AVL树节点的定义 AVL树的插入 AVL树的基本结构 AVL树的插入 第一步:按搜索树的规则进行插入 第二步:更新平衡因子 1、父节点的平衡因子为 parent->bf 0 2、更新完 parent 的 bf,如果 parent->bf 1…

机器学习(1)

一、机器学习 机器学习(Machine Learning, ML)是人工智能(Artificial Intelligence, AI)的一个分支,它致力于开发能够从数据中学习并改进性能的算法和模型。机器学习的核心思想是通过数据和经验自动优化算法&#xff…

【Kafka】集成案例:与Spark大数据组件的协同应用

🐇明明跟你说过:个人主页 🏅个人专栏:《大数据前沿:技术与应用并进》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、什么是kafka 2、Kafka 的主要特性 3、Kafka 的…

【卡尔曼滤波】递归算法Recursive的应用 C语言、Python实现(Kalman Filter)

【卡尔曼滤波】递归算法Recursive的应用 C语言、Python实现(Kalman Filter) 更新以gitee为准: gitee地址 文章目录 递归算法算术平均的递归算法例子卡尔曼滤波递归Python实现C语言实现与普通卡尔曼滤波的比较附录:压缩字符串、大…

python+pptx:(二)添加图片、表格、形状、模版渲染

目录 图片 表格 合并单元格 填充色、边距 写入数据 形状 模版渲染 上一篇:pythonpptx:(一)占位符、文本框、段落操作_python输出ppt母版占位符标号-CSDN博客 from pptx import Presentation from pptx.util import Cm, In…

【Windows】CMD命令学习——系统命令

CMD(命令提示符)是Windows操作系统中的一个命令行解释器,允许用户通过输入命令来执行各种系统操作。 系统命令 systeminfo - 显示计算机的详细配置信息。 tasklist - 显示当前正在运行的进程列表。 taskkill - 终止正在运行的进程。例如&am…

Java的栈与队列以及代码实现

Java栈和队列 栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组实现)用队列实现栈用栈来实现队列总结 栈的概念(Stack) 栈是常见的线性数据结构&…

Node.js is Web Scale

点击“打开/下载题目”进去看看情况: 为了方便查看翻译成中文简体来看: emmm,看不懂什么意思,查看源代码,js表示是一段JavaScript代码,丢给AI分析一下: // server.js const express require(&…

缓冲区溢出,数据被踩的案例学习

继续在ubuntu上学习GDB,今天要学习的是缓冲区溢出。 程序的地址: GitHub - gedulab/gebypass: bypass password by heap buffer overflow 编译的方法: gcc -g -O2 -o gebypass gebypass.c 照例设置一下科学shangwang代理: e…

数字人直播骗局大曝光!真假源码厂商搭部署的源码有何差异?

随着数字人直播技术的不断发展成熟,它所蕴含着的市场前景和收益潜力开始逐渐显化,使得有意向入局的人数持续增多的同时,也让不少骗子看到了可乘之机,从而炮制出了一个又一个的数字人直播骗局。 其中,最为经典的便是dai…

#渗透测试#SRC漏洞挖掘#云技术基础03之容器相关

目录 一、Podman相关 (一)Podman简介 (二)Pod相关操作 二、容器相关 (一)容器概念 (二)容器的历史发展 (三)Capabilities相关 三、Kubernetes&#x…

前端搭建低代码平台,微前端如何选型?

目录 背景 一、微前端是什么? 二、三大特性 三、现有微前端解决方案 1、iframe 2、Web Components 3、ESM 4、EMP 5、Fronts 6、无界(文档) 7、qiankun 四、我们选择的方案 引入qiankun并使用(src外层作为主应用) 主应…

Windows VSCode .NET CORE WebAPI Debug配置

1.安装C#插件 全名C# for Visual Studio Code,选择微软的 2. 安装C# Dev Kit插件 全名C# Dev Kit for Visual Studio Code,同样是选择微软的 3.安装Debugger for Unity 4.配置launch.json 文件 {"version": "0.2.0","config…

Linux——GPIO输入输出裸机实验

学习了正点原子Linux环境下的GPIO的输入输出的裸机实验学习,现在进行一下小结: 启动文件start.S的编写 .global _start .global _bss_start _bss_start:.word __bss_start.global _bss_end _bss_end:.word __bss_end_start:/*设置处理器进入SVC模式*/m…

Cyberchef配合Wireshark提取并解析TCP/FTP流量数据包中的文件

前一篇文章中讲述了如何使用cyberchef提取HTTP/TLS数据包中的文件,详见《Cyberchef配合Wireshark提取并解析HTTP/TLS流量数据包中的文件》,链接这里,本文讲述下如何使用cyberchef提取FTP/TCP数据包中的文件。 FTP 是最为常见的文件传输协议,和HTTP协议不同的是FTP协议传输…

51c大模型~合集42

我自己的原文哦~ https://blog.51cto.com/whaosoft/11859244 #猎户座 「草莓」即将上线,OpenAI新旗舰大模型曝光,代号「猎户座」 ChatGPT 要进化了? 本月初,OpenAI 创始人、CEO 山姆・奥特曼突然在 X 上发了一张照片&#xff0…

【NOIP提高组】潜伏者

【NOIP提高组】潜伏者 💐The Begin💐点点关注,收藏不迷路💐 R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动。 历尽艰险后,潜伏于 S 国的R 国间谍小C 终于摸清了S 国…

安培环路定理

回忆 静电场中的回路定理:→静电场是保守场 安培环路定理 1、圆形回路包围无限长载流直导线 (1)回路逆时针 (2)回路顺时针 规定: 回路正向由右手螺旋定则判断(根据回路绕行方向,…