STM32-USART 05

发布时间:2026/8/21 9:50:11

STM32-USART 05
USART简介USART前置发送接送 双工可发送可接送 单工仅支持发送与接送的一种 全双工同时进行发送与接收 半双工同一时刻进行发送或者接收同步异步 同步时钟 异步波特率电平特性 单端信号引脚高低电平相对于GND 差分信号俩引脚电压差电平标准 定义数据1和数据0的表达方式是传输线缆中人为规定的电压与数据的对应关系 标准 TTL电平3.3V或5V表示10V表示0 RS232电平-3~-15V表示13~15表示0 RS485电平俩线压差2~6V表示1-2~-6V表示0注意RS485电平标准是差分信号抗干扰能力强信号传输距离远可达上千米 TTL电平RS232电平标准信号最远只能几十米串口助手 HEX发送与显示 字符发送与显示 GBK UTF-8发送与显示--no-multibyte-chars注意字符 通过ASCII码表 对应16进制数 字 通过GBK UTF-8表 对应16进制数 GBK发送还是UTF-8发送取决于IDE的编码格式USART定义根据发送数据寄存器的一个字节的数据自动生成数据帧格式,通过发送移位寄存器从TX引脚发送出去自动接收移位寄存器内的数据帧时序拼接成一个字节数据存放在接送数据寄存器中注意接收数据寄存器只能保存一个字节的数据生产者产生数据太快消费者来不及消费就会导致中断阻塞并且丢数据的情况USART波特率 决定传输一位的时间单字节协议帧格式 起始 单字节数据 停止时序 TX/RX起始产生一个下降沿 数据传输高低电平翻转 停止产生一个上升沿注意TX时序单片机控制 RX时序外挂模块控制stm32f103c8t6资源 USART1 USART2 USART3数据的传输 低位先行通信速率 USART14.5Mbps APB272M波特率分频得到USART函数USART初始化函数函数使用 函数USART_Init 入参USART 结构体指针 返回值无USART_InitTypedef结构体成员变量函数调用示例​USART使能函数函数使用 函数USART_Cmd 入参 USART ENABLE / DISABLE 返回值无函数调用示例USART_Cmd(USART1, ENABLE);USART发送单字节数据函数函数使用 函数USART_SendData 入参USART 单字节数据 返回值无函数调用示例uint8_t a 0x88; USART_SendData(USART1, a);注意写入DR硬件自动清除TXE标志位USART接收单字节数据函数函数使用 函数USART_ReceiveData 入参USART 返回值单字节数据函数调用示例uint8_t data USART_ReceiveData(USART1);注意读出DR硬件自动清除RXNE标志位USART中断配置函数函数使用 函数USART_ITConfig 入参USART 中断标志位 ENABLE/DISABLE 返回值函数调用示例USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //开启串口接收数据的中断USART标志位USART发送模块函数Serial_Init:RCC_APB2PeriphClockCmd RCC_APB2PeriphClockCmd GPIO_Init USART_Init USART_Cmdvoid Serial_SendArray(uint8_t *arr, uint16_t length)//串口发送数组 void Serial_SendArray(uint8_t *arr, uint16_t length) { for(uint16_t i 0; i length; i) { USART_SendData(USART1, arr[i]); while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)); } }void Serial_SendString(char *str)//串口发送字符串 void Serial_SendString(char *str) { while(*str ! \0) { USART_SendData(USART1, *str); while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)); str; } }printf重定向int fputc(int ch, FILE *f) { USART_SendData(USART1, ch); while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)); return ch; }USART接收模块函数void Serial_Init(void)RCC_APB2PeriphClockCmd RCC_APB2PeriphClockCmd GPIO_Init //将PA9引脚初始化为复用推挽输出 GPIO_Init //将PA10引脚初始化为上拉输入 USART_Init USART_ITConfig NVIC_PriorityGroupConfig NVIC_Init USART_Cmd串口接收中断服务函数void USART1_IRQHandler(void) { if (USART_GetITStatus(USART1, USART_IT_RXNE) SET) { //操作 } USART_ClearITPendingBit(USART1, USART_IT_RXNE); }

相关新闻

第17篇_Client 06|chunked、关闭和 keep-alive 边界

第17篇_Client 06|chunked、关闭和 keep-alive 边界

2026/8/21 9:50:11

适合谁收藏正在让 PLC 主动访问 HTTP 服务的工程师。需要处理请求构造、响应边界、超时与连接复用的人。希望把 Client 故障定位到确定状态和错误出口的读者。本篇位置 客户端篇,第 6/7 篇;主系列第 17/28 篇。现场问题同一个 API,用测试服务…

基于STM32与DS18B20的智能输液温度控制系统设计与仿真

基于STM32与DS18B20的智能输液温度控制系统设计与仿真

2026/8/21 9:50:11

在医疗输液过程中,药液温度是一个至关重要的参数。冰冷的药液直接输入患者血管,不仅会引起不适,还可能诱发血管痉挛、寒战等不良反应,影响治疗效果。传统的输液加温方式如热水袋、电热毯等,存在温度控制不精准、安全性…

构建原生端侧Agent框架:从PalmClaw架构到移动AI应用实践

构建原生端侧Agent框架:从PalmClaw架构到移动AI应用实践

2026/8/21 9:50:11

1. 从“云端依赖”到“端侧自主”:为什么我们需要一个原生设备上的Agent框架? 最近在折腾手机上的AI应用,一个绕不开的痛点就是:但凡想搞点稍微复杂点的自动化任务,比如自动整理相册、根据日程安排自动调整手机模式&am…

TSN交换机时钟竞争测试:从BMCA原理到工程实践

TSN交换机时钟竞争测试:从BMCA原理到工程实践

2026/8/21 10:50:14

如果你正在开发或测试支持TSN(时敏以太网)的交换机,那么“时钟竞争”这个词很可能已经让你头疼过。在传统的网络测试中,我们关注丢包、延迟、吞吐量,但在TSN世界里,时钟同步的稳定性才是决定整个系统能否正…

AI编程工具实战:Claude Code、Codex与CursorAI在Java开发中的集成与应用

AI编程工具实战:Claude Code、Codex与CursorAI在Java开发中的集成与应用

2026/8/21 10:50:14

如果你是一名Java开发者,最近是否感觉自己的开发流程正在被悄然改变?过去,我们习惯了在IDE里逐行敲代码、反复调试、查阅文档;而现在,越来越多的同行开始谈论“Vibe Coding”、“Claude Code”、“Codex”这些新名词。…

GPT模型在符号音乐生成中的核心挑战:坐标系不匹配与多维结构建模

GPT模型在符号音乐生成中的核心挑战:坐标系不匹配与多维结构建模

2026/8/21 10:50:14

在探索将 GPT 这类强大的语言模型应用于符号音乐生成时,许多开发者和研究者都曾满怀期待,但很快就会发现,直接套用文本生成的成功经验往往收效甚微。模型生成的旋律可能缺乏连贯性,和声可能混乱不堪,或者音乐结构显得支…

协作链路的拆分

协作链路的拆分

2026/8/21 10:50:14

协作链路的拆分 开源 Go HTTP SDK 若使用固定间隔重试,网络波动会让大量客户端在同一时段重试,形成重试风暴并放大服务端负载。重试次数、间隔和预算需要按依赖承载能力设计。 开源库做重试机制,初衷是提高网络抗抖动能力;但如果缺…

人形机器人网络故障排查实战指南:从原理到工具全解析

人形机器人网络故障排查实战指南:从原理到工具全解析

2026/8/21 10:50:14

在机器人项目交付现场,最让人头疼的往往不是算法调优,而是那些“玄学”般的网络问题。尤其是在人形机器人这类高度集成、多系统协同的复杂设备上,一个看似简单的网络波动,就可能导致整个演示或测试流程中断,让数月的研…

从判别到生成:基于概率生成模型的二分类原理与实现

从判别到生成:基于概率生成模型的二分类原理与实现

2026/8/21 10:40:13

1. 项目概述:从“分类”到“生成”的思维跃迁 在机器学习的分类任务里,我们最熟悉的路径可能是这样的:拿到一堆数据,直接训练一个模型(比如逻辑回归、支持向量机或神经网络),让它学会在特征空间…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/19 3:36:59

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/20 21:07:35

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/19 8:02:16

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

091、主从同步控制策略

091、主从同步控制策略

2026/8/21 0:09:47

091、主从同步控制策略:从一次多轴抖动事故说起 去年调试一台四轴龙门平台,Z轴和两个X轴做主从同步。电机选的是台达A2系列,驱动器工作在位置模式,主站发脉冲指令,从站硬线跟随。调试时发现一个诡异现象:当主站以500rpm匀速运行时,从站电流波形每隔几秒会出现一次毛刺,…

向量检索实验失败后该查什么

向量检索实验失败后该查什么

2026/8/21 0:09:47

向量检索实验失败后该查什么 这篇要解决什么 向量检索实验失败后该查什么讨论的是一个可复查的工程问题。向量检索实验失败后该查什么不拿未经记录的事故、跑分或成本当作论据;判断需要回到当前项目的输入、版本和运行条件。 从边界开始 处理向量检索实验失败后该查…

提示词发布过程中的止损边界

提示词发布过程中的止损边界

2026/8/21 0:09:47

提示词发布过程中的止损边界 这篇要解决什么 提示词发布过程中的止损边界讨论的是一个可复查的工程问题。提示词发布过程中的止损边界不拿未经记录的事故、跑分或成本当作论据;判断需要回到当前项目的输入、版本和运行条件。 从边界开始 处理提示词发布过程中的止损…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…