新闻详情

新闻详情

首页 / 资讯中心 / 详情

【嵌入式学习】嵌入式原理知识-串口(二)

发布时间:2026/9/27 21:53:06来源:尧图网络
【嵌入式学习】嵌入式原理知识-串口(二)
1. 串口通信协议1.1 基本介绍串口是一种通信方式其通信协议为通过高低电平代表1-0信息一帧数据示意图如下1.2 示例例1通过串口发送十进制数字27这是小头也就是先发低位例2发送字符串”hello“选择的协议是8位数据位无校验位。1.3 协议类型主要包括数据位的数量是否包含校验位是否包含停止位等等。因为我们通常习惯于传输一个字节的数据所以通常选择第一个和第四个类型。校验位如果前面的数据位不满足对应的校验标准那么就通过校验位来调整使得满足标准。2. 串口外设的使用方法2.1 串口内部结构图将要发送的数据放置在发送数据寄存器。串口会自动按照对应的协议标准将数据发送。对于接受的数据。串口会进行协议解析将数据存在接受数据寄存器中。2.2 串口具体的工作原理将发送数据寄存器的数据移至移位寄存器通过移位将数据发送出去。相同的数据接收也是将移位寄存器的值存储至接受数据寄存器。所有的数据接受完毕后一并至接受数据寄存器。上述的过程也就是发送-并到串的过程。接受-串到并的过程。只需要处理接受寄存器中的值即可。2.3 数据帧格式可以选择数据帧的长度是否选择把最后一位作为校验位奇校验还是偶校验停止位的长度2.4 波特率的设置波特率每秒钟最多传输多少位-比特常用波特率9600’115200921600波特率的设置对应结构图的左上角所示其中只有波特率寄存器的值可以自己设置。通过如下操作可以实现波特率为115200的设置2.5 串口的模式全双工半双工同步硬件流控全双工-数据传输完全双向可以同时双向传输半双工-只能单向的发送数据同步- 添加一个时钟线进行同步硬件流控-相比于TX,RX引脚增加CTS与RTS3. 串口发送数据3.1 发送标志位1. TXETransmit Data Register Empty- 发送数据寄存器空.当TXE1时表示发送数据寄存器空。当TXE0时表示发送数据寄存器非空。通常在发送数据时要判断发送数据寄存器是否为空。否则会将发送数据寄存器覆盖掉。2. TCTransmiy Complete- 发送完成当发送数据寄存器和移位寄存器均为空时TC1;否则为0。一般通过TXE来判断是否可以写入数据至发送数据寄存器通过TC来判断是否发送完成了。3.2 串口使能开关HAL库函数__HAL_UART_ENABLE(huart1);// 使能串口__HAL_UART_DISABLE(huart1);// 关闭串口对应下图的总开关3.3 串口获取标志位函数查询标志位函数前面的函数表示 此函数带有返回值。作用 查询串口标志位的值返回值RESET-0;SET-1;// 1. 读硬件标志位SR 寄存器FlagStatus__HAL_UART_GET_FLAG(UART_HandleTypeDef*huart,uint32_tFlag);// 2. 读中断是否使能同时查标志位 中断开关ITStatus__HAL_UART_GET_IT_SOURCE(UART_HandleTypeDef*huart,uint32_tIT);4. 格式化串口发送参照https://blog.csdn.net/2301_81230001/article/details/157473800重定向串口即可实现格式化串口发送在usart.h中更改函数#includestdio.hstruct__FILE{inthandle;};FILE __stdout;void_sys_exit(intx){xx;}intfputc(intch,FILE*f){while((USART1-SR0X40)0);USART1-DR(uint8_t)ch;returnch;}5. 串口接受数据5.1 串口接受数据的过程经过移位寄存器与接受数据寄存器最终实现接受。5.2 接受标志位1. RXNEReceive Data Register Not Empty- 接受数据寄存器非空当RXNE1时 此时接受数据寄存器为空当RXNE0时 此时接受数据寄存器为非空2. PEParity Error- 奇偶校验错误串口接收时硬件会自动算一次奇偶校验算出来的结果和收到的校验位对不上就把 PE 置 1。3. FEFrame Error - 帧格式错误接收到了无效的数据帧则FE1否则FE04. NENoise Error - 噪声错误接受的数据中检测到了噪声则NE1否则NE0在接受数据的时候通过连续三次采样当三次采样的值相同时此时为最终值。当三次有不同时此时会认为检测到噪声认为数据不可靠。5. OREOverrun Error - 过载错由于过载造成数据丢失则ORE1否则ORE0;
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

基于 SSM + 微信小程序的校园跑腿帮送平台设计与实现 2026/9/27 23:36:27

基于 SSM + 微信小程序的校园跑腿帮送平台设计与实现

基于 SSM 微信小程序的校园跑腿帮送平台设计与实现 一、前言 大学校园是一个人口高度密集、生活节奏高度集中的场景:教学楼、实验室、图书馆、宿舍区与食堂分布在校园各处,"人在 3 栋、奶茶在西门、包裹在东门"是学生日常里最常见的错位。靠…

阅读更多 →
YuE2 零样本翻唱实战:把一段录音做成爵士版 2026/9/27 23:36:14

YuE2 零样本翻唱实战:把一段录音做成爵士版

YuE2 零样本翻唱实战:把一段录音做成爵士版 【免费下载链接】YuE YuE2: frontier music generation with symbolic planning, zero-shot covers, and agentic music editing. 项目地址: https://gitcode.com/GitHub_Trending/yue/YuE 手里有一段 source.wav&…

阅读更多 →
Ryujinx Switch 模拟器新手上手指南:从源码构建到跑起游戏只需 6 步 2026/9/27 23:36:14

Ryujinx Switch 模拟器新手上手指南:从源码构建到跑起游戏只需 6 步

Ryujinx Switch 模拟器新手上手指南:从源码构建到跑起游戏只需 6 步 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx Ryujinx 是用 C# 编写的开源 Nintendo Switch 模拟器。…

阅读更多 →
VB.NET+SQL Server BS架构订餐系统:从环境搭建到部署避坑 2026/9/27 23:36:14

VB.NET+SQL Server BS架构订餐系统:从环境搭建到部署避坑

简介:基于VB与VB.NET结合SQL Server开发的Web订餐系统,采用B/S架构,面向需要完成课程设计、毕业设计或餐饮信息化项目的计算机专业学生与开发人员,涵盖了菜品管理、订单处理、餐台管理等典型模块。项目源码经过完整测试校正&#…

阅读更多 →
NativeWind 原理剖析:从 Tailwind CSS 到 React Native StyleSheet 的编译与运行时架构 2026/9/27 23:36:07

NativeWind 原理剖析:从 Tailwind CSS 到 React Native StyleSheet 的编译与运行时架构

移动开发跨平台前端 【免费下载链接】nativewind The utility-first workflow you love from Tailwind CSS in your React Native applications. 项目地址: https://gitcode.com/gh_mirrors/na/nativewind 点击查看 免费下载 本篇技术指南以 NativeWind 官方文档 H…

阅读更多 →
AiShort 入门指南 | 复制精选提示词到 ChatGPT/DeepSeek/Cursor,30 秒提升 AI 对话质量 2026/9/27 23:36:07

AiShort 入门指南 | 复制精选提示词到 ChatGPT/DeepSeek/Cursor,30 秒提升 AI 对话质量

AI 应用提示工程人工智能前端 【免费下载链接】ChatGPT-Shortcut Stop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉