当前位置: 首页 > news >正文

CubeMax配置串口通讯

串口基础知识

问:什么是串口通讯?

答:
串口通讯(Serial Communication)是一种按位(bit)逐次发送和接收数据的通信方式,仅需少量信号线(如 TX、RX、GND)即可实现设备间数据传输。

特点:

  • 异步传输:无需共享时钟信号(CLK),依靠波特率(Baud Rate)同步。

  • 数据帧结构:由起始位(Start Bit)数据位(5-9 bit)校验位(可选)停止位(Stop Bit)组成。

  • 简单可靠:适合低速、长距离通信(如工业控制、传感器数据采集)。


问:串口通讯协议有哪些?

答:
串口通信协议可分为物理层标准(硬件接口+电平规范)协议层规范(数据帧格式+校验规则)两类。

1. 物理层标准(硬件接口+电平规范)
标准电平特性传输方式传输距离典型应用
TTL0V(逻辑0) / 3.3V或5V(逻辑1)单端信号<1m单片机、嵌入式设备
RS-232±3V~±15V(逻辑1:-3V~-15V,逻辑0:+3V~+15V)单端信号<15m旧电脑串口、工业设备
RS-485差分信号(A/B线电压差表示逻辑)差分信号≤1200m工业自动化(Modbus)
CAN差分信号(CAN_H/CAN_L)差分信号≤40m(1Mbps)汽车电子、工业控制
2. 协议层规范(数据帧格式+校验规则)
协议传输方式特点典型应用
UART异步无时钟信号,需约定波特率单片机调试、传感器
USART同步/异步比UART多同步模式(如SPI)高速通信(如STM32)
Modbus基于UART/RS-485主从架构,支持多设备工业自动化
CAN协议同步(带位仲裁)多主机、错误检测、高可靠汽车电子

问:RS232、USART、UART、CAN、RS485的区别?

答:

特性UARTUSARTRS-232RS-485CAN
传输方式异步同步/异步异步异步/同步同步
电平标准TTL(0V/3.3V/5V)TTL±3V~±15V差分(±1.5V~±5V)差分(±2V)
通信距离<1m(TTL)<1m(TTL)<15m≤1200m≤40m(1Mbps)
抗干扰极强
拓扑结构点对点点对点点对点多点(总线)多点(总线)
典型应用调试接口高速通信旧电脑外设工业Modbus汽车电子

总结:

  • UART/USART:协议层,定义数据格式(USART支持同步)。

  • RS-232/RS-485:物理层,定义电平与接口(RS-485更先进)。

  • CAN:高可靠总线协议,适用于复杂环境。


补充关键点

  1. 波特率(Baud Rate):每秒传输的符号数(如9600、115200bps),需收发双方一致。

  2. 校验方式:奇校验、偶校验、无校验,用于检测数据错误。

  3. 全双工 vs 半双工

    • 全双工(如UART):TX、RX可同时收发。

    • 半双工(如RS-485):同一时间只能发送或接收。

       

以STM32F103VGT6为例,用STM32CubeMX配置串口

基础配置:

       1. 高速时钟配置成外部晶振

        2.Debug模式选择Serial Wire

       3.时基资源选择 TIM5(如果使用Free RTOS,否则默认Systick即可)

其中RCC的三个操作的含义是

1. Master Clock Output 1/2 的含义

作用
Master Clock Output(MCO)引脚允许微控制器将内部时钟信号(如HSE、HSI、PLL等)输出到外部设备,例如:

                1.为其他芯片(如传感器、通信模块、音频编解码器)提供同步时钟。

                2.调试时监测内部时钟频率

2. Audio Clock Input (I2S_CKIN) 的含义

作用:这是用于音频接口(I2S协议)的外部时钟输入引脚,允许外部音频设备(如CODEC)提供主时钟信号,确保音频数据传输的同步性。

2. 何时选择 Master Clock Output?

需要选择的情况

        1.外部设备需要时钟同步:例如,连接外部ADC、DAC、FPGA或其他需要精确时钟的器件。

        2.多设备时钟共享:避免为每个设备单独设计时钟电路,简化硬件设计。

        3.调试或测试:通过输出内部时钟到示波器,验证时钟频率是否正确。

无需选择的情况

        1.外部设备自带振荡器(如晶振)或不需要主时钟同步。

        2.系统无时钟共享需求,或仅使用内部时钟。

4.何时选择 Audio Clock Input (I2S_CKIN)

        1.使用外部音频设备(如数字麦克风、音频编解码器)且需由外部提供时钟时启用。

        2.内部时钟无法满足音频精度要求(如高保真音频需低抖动时钟)

串口配置

UART和USART有区别,所以在CubeMX上配置时,UART相较USART的模式选项,少了一个SmartCard,同时少了一个RS232硬件协议的选择.

通信模式(Mode)选项介绍:

1、Asynchronous(异步模式)

        含义:数据以不定时的方式传输,依赖起始位和停止位同步,无需共享时钟信号(如UART)。

        作用:简化硬件设计,适应不同速率的设备通信。

        何时使用:

                常见的串口通信(如调试日志、传感器数据读取)。

                设备间时钟不同步或距离较远(如GPS模块与MCU)。

2、Synchronous(同步模式)

        含义:数据通过共享时钟信号(如SCLK)严格同步传输(如SPI、I2C)。

        作用:提高传输速率和可靠性。

        何时使用:

                高速或实时性要求高的场景(如显示屏刷新、高速ADC采样)。

                主从设备需严格同步(如EEPROM读写)。

3、Single Wire (Half-Duplex)(单线半双工)

        含义:单根线分时双向传输数据,同一时间只能发送或接收。

        作用:节省引脚资源。

        何时使用:

                引脚有限的场景(如单总线协议DS18B20温度传感器)。

4、Multiprocessor Communication(多处理器通信)

        含义:支持多个设备共享总线,通过地址识别目标设备。

        作用:实现一主多从的通信架构。

        何时使用:

                多个MCU或外设需共用同一总线(如工业控制网络)。

5、IrDA(红外通信)

        含义:通过红外光传输数据,需编解码模块。

        作用:无线短距离通信。

        何时使用:

                红外遥控、医疗设备(如血氧仪)。

6、LIN(局域互联网络)

        含义:低成本车载通信协议,单线传输。

        作用:替代复杂CAN总线用于简单控制。

        何时使用:

                汽车电子中的次级网络(如车窗控制、座椅调节)。

7、SmartCard(智能卡模式)

        含义:支持ISO7816标准的智能卡接口。

        作用:安全身份验证或支付。

        何时使用:

                SIM卡、银行卡读卡器。

硬件流控(Hardware Flow Control)

1、Disable(禁用流控)

        含义:不启用硬件流控信号(CTS/RTS)。

        作用:简化接线,适用于低速率或可靠环境。

        何时使用:

                短距离通信或波特率较低(如9600bps以下)。

                设备间缓存足够(如MCU与PC串口调试)。

2、CTS Only(仅清除发送)

        含义:仅使用CTS信号,接收方控制发送方数据流。

        作用:防止接收方缓冲区溢出。

        何时使用:

                单向大数据量传输(如GPS模块持续输出数据)。

3、RTS Only(仅请求发送)

        含义:仅使用RTS信号,发送方请求接收方准备。

        作用:确保接收方就绪后再发送数据。

        何时使用:

                接收方处理能力有限(如低速MCU接收高速数据)。

4、CTS/RTS(全硬件流控)

        含义:同时启用CTS和RTS信号,双向控制数据流。

        作用:避免数据丢失,提高高波特率下的可靠性。

        何时使用:

                高速通信(如115200bps以上)或噪声环境(如工业现场)。

                设备间处理速度差异大(如MCU与4G模块通信)。

总结

①通信模式选择:

        根据协议要求(如UART/SPI)、设备数量(单设备/多设备)、传输方向(全双工/半双工)决定。

②硬件流控选择:

        根据波特率、传输距离、设备缓存能力决定是否启用CTS/RTS。

典型场景:

        异步+禁用流控:普通串口调试。

        同步+全流控:高速SPI连接ADC。

        LIN模式:汽车电子控制。

选择USART3的Asynchronous(异步模式)模式

一、参数配置

1.波特率的数值是自己输入

2.字长是选择的,8字长或9字长

3.奇偶校验处可以选择 无 、Even(奇)、Odd(偶)

4.停止位可以选择1、2位停止位

5.数据方向则是三个选项:收发、仅收、仅发

6.过样率(采样率):16 Samples 或者 8 Samples。其功能是选择每bit的采样次数,8就是每bit采样8次,16同理。高采样则数据准,但是传输数据会慢。

        在CubeMX中,选择 16x Oversampling 可显著降低115200bps下的误码率。

用户常量则是自定义宏

添加常量

        在界面点击 add → 输入 NAME 和 VALUE(如 PWM_FREQUENCY 1000)。

生成代码

工具会在 main.h 或 stm32xxxx_hal_conf.h 中生成:

        #define PWM_FREQUENCY 1000

NVIC设置(嵌套 向量 中断 控制 设置)

勾选上Enabled,也就是使能中断,而具体参数需要看到System Core中的NVIC进行配置抢占优先级(Preemption Priority)和响应优先级(Sub Priority)

http://www.xdnf.cn/news/1058131.html

相关文章:

  • Flask设计网页截屏远程电脑桌面及切换运行程序界面
  • VS和VS Code 对比和区别
  • YOLO进化史:从v1到v12的注意力革命 —— 实时检测的“快”与“准”如何兼得?
  • MySQL 中 DISTINCT 去重的核心注意事项详解
  • element ui el-table嵌套el-table,实现checkbox联动效果
  • Uniapp设备API全面指南:从位置获取到扫码功能的实现
  • 电阻、电容、电感
  • 华为云二级、多级域名配置
  • Android实例项目【智能家居系统】实现数据库登录注册+动画效果+网页跳转+短信发送!!!
  • 项目的难点
  • 内测分发平台应用的异地容灾和负载均衡处理和实现思路?
  • 路由器压测实战:从负载均衡到DDoS防御,5步定位性能瓶颈(附脚本工具包)
  • **RAM**、**SAM** 和 **DAM**
  • NLP学习路线图(五十四): Kaggle/NLP竞赛
  • Socket编程udp
  • 学习 Protobuf:序列化、反序列化及与 JSON 的对比
  • Java中间件使用方式与实战应用
  • Oracle 的 TCP.SEND_TIMEOUT 参数
  • 【沉浸式解决问题】优化MySQL中多表union速度慢的问题
  • 【MATLAB去噪算法】基于VMD联合小波阈值去噪算法(第六期)
  • VS2022 C++动态库制作和使用指南
  • 【深度学习】TensorFlow全面指南:从核心概念到工业级应用
  • 【C++】vector的模拟实现(详解)
  • 记一次用飞算JavaAI助力项目部分重构的过程
  • 从C++编程入手设计模式——外观模式
  • 0616---0617C#实训课总结摘要
  • 【前端基础】摩天之建的艺术:html(上)
  • MIT 6.S081 2020 Lab8 locks 个人全流程
  • <script setup> 和在 <script> 中使用 setup() 函数有什么区别
  • vite的分包