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

STM32串口不定长接收空闲中断

目录

  • 1. 开启串口空闲中断
  • 2. 合理开关中断
  • 3. 串口发送函数

1. 开启串口空闲中断

最近接触到的 Modbus RTU 项目使用到了串口接收中断和空闲中断。记录一下

初始化可以直接套用正点原子的初始化,只需要添加一行即可

  USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);//开启串口空闲中断
}

2. 合理开关中断

FreeRTOS是不能一直串口空闲中断之中的。

我们可以使用这种中断方式来处理:在接收完数据后,开启串口空闲中断;随后在接收完毕后,会触发空闲中断,将数据全部打印出来,此时CPU会归还给任务调度器并使其恢复任务调度。

函数是修改的正点原子的,现在不需要在尾部加入 “\r\n” 也能照常使用。

void USART1_IRQHandler(void)                	//串口1中断服务程序
{u8 Res;if(USART_GetITStatus(USART1, USART_IT_IDLE) != RESET)  //空闲中断{printf("%s\n",USART_RX_STA);USART_ITConfig(USART1, USART_IT_IDLE, DISABLE);//关闭串口空闲中断}if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中断{Res =USART_ReceiveData(USART1);	//读取接收到的数据USART_RX_BUF[USART_RX_STA]=Res ;USART_RX_STA++;if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);//开启串口空闲中断} 
} 

3. 串口发送函数

还写了一个发送函数,以后调试不愁printf函数只能一个串口用了。

void STMLOG(USART_TypeDef* USARTx, u8 *Data)
{while(*Data!='\0'){ while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)==RESET); USART_SendData(USARTx,*Data);Data++;}
}

相关文章:

STM32串口不定长接收空闲中断

目录 1. 开启串口空闲中断2. 合理开关中断3. 串口发送函数 1. 开启串口空闲中断 最近接触到的 Modbus RTU 项目使用到了串口接收中断和空闲中断。记录一下 初始化可以直接套用正点原子的初始化,只需要添加一行即可 USART_ITConfig(USART1, USART_IT_IDLE, ENABLE)…...

Ubuntu 设置开机启动脚本

在/etc/systemd/system/目录下创建对应的server服务 如:/etc/systemd/system/test-script.service [Unit] DescriptionTest Script Service Afternetwork.target[Service] Typeoneshot ExecStart/path/to/test-script.sh[Install] WantedBymulti-user.target替换/…...

C# Task 包含 await ConfigureAwait CancellationTokenSource

Task以下是 Task 类的一些关键特性和用法&#xff1a;以下是一些使用 Task 的示例&#xff1a;创建并启动一个任务使用 await 等待任务完成处理任务异常使用 Task<TResult> 获取结果取消任务总结 await暂停方法执行&#xff1a;非阻塞调用&#xff1a;任务结果获取&#…...

Python数据分析与建模库-02科学计算库Numpy01-05合集

1、该视频主要讲述了南派&#xff08;NumPy&#xff09;的核心操作和数据结构&#xff0c;以及如何使用NumPy库读取和处理数据。 2、该视频主要讲述了在编程中&#xff0c;如何对数组或矩阵中的元素进行判断和操作&#xff0c;以及在单排中如何进行类型转换。 3、该视频主要讲…...

【前端项目笔记】1 登录与登出功能实现

项目笔记 ☆☆代表面试常见题 前后端分离&#xff1a;后端负责写接口&#xff0c;前端负责调接口。 登录/退出功能 登录业务流程 登录页面&#xff1a;用户名密码 调用后台接口进行验证 通过验证&#xff0c;根据后台响应状态跳到项目主页 登录业务相关技术点&#xff1…...

是字符串定义以及在C语言中字符串是如何表示的

字符串&#xff08;String&#xff09;是由零个或多个字符&#xff08;包括空格&#xff09;组成的有限序列&#xff0c;常用于文本数据的存储和处理。在编程中&#xff0c;字符串是常见的数据类型。 在C语言中&#xff0c;字符串不是一种内置的数据类型&#xff0c;但C语言提…...

辽宁普通测径仪升级智能测径仪后都有哪些改进?

关键字: 普通测径仪, 智能测径仪, 测径仪升级, 测径仪特点, 智能测径仪优势, 目前多数厂家测径仪的数据处理方式是单片机计算出最终结果&#xff0c;然后传输到工控机后期处理。这样的电路系统对轧钢现场的高温、高粉尘和强电磁干扰的环境适应性很差&#xff0c;使得同一厂家、…...

【微信小程序】事件分类以及阻止事件冒泡

在微信小程序中&#xff0c;事件分为冒泡事件和非冒泡事件两大类&#xff0c;它们的区别在于事件是否能从原始触发组件开始&#xff0c;向父级组件传播&#xff08;即“冒泡”&#xff09;。 冒泡事件&#xff1a;当一个组件上的事件被触发后&#xff0c;不仅当前组件会接收到这…...

踩坑!被node-sass折磨的一天

文章目录 被node-sass折磨的一天折磨过程了解原因注意事项 被node-sass折磨的一天 折磨过程 起因是要开发一个老项目&#xff0c;照常拉代码、下依赖、启动三步走 依赖开始下载不对了&#xff0c;以为是node版本问题&#xff0c;寻找node-sass对应的node版本 利用nvm&#…...

App UI 风格打造独特体验

App UI 风格打造独特体验...

【学习笔记8】阅读StyleID论文源码

论文【链接】 源码【链接】 一、DDIM eta ddim_step表示执行几轮去噪迭代&#xff0c;eta表示DDPM和DDIM的插值系数。当eta0时&#xff0c;为DDPM&#xff1b;当eta≠0时&#xff0c;为DDIM。 参考 DDIM 简明讲解与 PyTorch 实现&#xff1a;加速扩散模型采样的通用方法 【s…...

wordpress旅游网站模板

旅行社wordpress主题 简洁实用的旅行社wordpress主题&#xff0c;适用于旅行社建网站的wordpress主题模板。 https://www.jianzhanpress.com/?p4296 旅游WordPress主题 简洁实用的旅游WordPress主题&#xff0c;适合做旅游公司网站的WordPress主题模板。 https://www.jian…...

vs2019 c++20规范 STL 库中头文件 <atomic> 源码注释及探讨几个知识点

&#xff08;1 探讨一&#xff09; 模板类 atomic 的继承关系与数据结构如下&#xff1a; (2 探讨二 ) 可见 atomic 的 fetch_xx 函数&#xff0c;返回的都是 atomic 中存储的旧值。测试如下&#xff1a; 谢谢...

Flink任务如何跑起来之 2.算子 StreamOperator

Flink任务如何跑起来之 2.算子 StreamOperator 前文介绍了Transformation创建过程&#xff0c;大多数情况下通过UDF完成DataStream转换中&#xff0c;生成的Transformation实例中&#xff0c;核心逻辑是封装了SimpleOperatorFactory实例。 UDF场景下&#xff0c;DataStream到…...

学习笔记——路由网络基础——路由优先级(preference)

1、路由优先级(preference) 路由优先级(preference)代表路由的优先程度。当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时&#xff0c;路由器会比较这些路由的优先级&#xff0c;优选优先级值最小的路由。 路由来源的优先…...

数据预处理——调整方差、标准化、归一化(Matlab、python)

对数据的预处理&#xff1a; (a)、调整数据的方差&#xff1b; (b)、标准化&#xff1a;将数据标准化为具有零均值和单位方差&#xff1b;&#xff08;均值方差归一化(Standardization)&#xff09; (c)、最值归一化&#xff0c;也称为离差标准化&#xff0c;是对原始数据的…...

opencv_特征检测和描述

理解特征 寻找独特的特定模式或特定特征&#xff0c;可以轻松跟踪和比较。 拼图&#xff1a;在图像中搜索这些特征&#xff0c;找到它们&#xff0c;在其他图像中查找相同的特征并对齐它们。而已。 基本上&#xff0c;角被认为是图像中的好特征。 在本单元中&#xff0c;我…...

CID引流电商下的3C产品选品策略深度解析

​摘要&#xff1a;随着电商行业的迅猛发展和消费者需求的日益多样化&#xff0c;CID引流电商作为一种新兴的电商模式&#xff0c;逐渐受到了广泛关注。在这一模式下&#xff0c;3C产品作为高客单价、高技术含量的代表品类&#xff0c;其选品策略的制定显得尤为重要。本文将从多…...

DeepSORT(目标跟踪算法)中的状态向量与状态转移矩阵

DeepSORT&#xff08;目标跟踪算法&#xff09;中的状态向量与状态转移矩阵 flyfish 状态转移矩阵&#xff08;State Transition Matrix&#xff09;F的构造 这篇是一定要看的&#xff0c;拖到文章的最后部分&#xff0c;需要理解状态转移矩阵怎么来的&#xff0c;怎么是这个…...

李宏毅深度学习01——基本概念简介

视频链接 基本概念 Regression&#xff08;回归&#xff09;&#xff1a; 类似于填空 Classification&#xff08;分类&#xff09;&#xff1a; 类似于选择 Structure Learning&#xff08;机器学习&#xff09;&#xff1a; &#xff1f;&#xff1f; 机器学习找对应函数…...

Antares LoRaWAN库深度解析:嵌入式LoRaWAN MAC层实现指南

1. Antares LoRaWAN 库深度技术解析&#xff1a;面向嵌入式工程师的 LoRaWAN MAC 层实现指南 1.1 库定位与工程价值 Antares LoRaWAN 是一个专为 Arduino 生态设计的轻量级 LoRaWAN MAC 层实现库&#xff0c;其核心价值不在于功能堆砌&#xff0c;而在于 可理解性、可调试性与…...

部署开源的Minecraft服务器智能运维管理系统 Minecraft-Rcon-Manage 自存简易教程

项目地址&#xff1a;Minecraft-Rcon-Manage 前言 笔者最近寻找一款能实现Minecraft服务器RCON远程访问的工具&#xff0c;找到了这个目前正在持续更新、功能丰富的开源项目Minecraft-Rcon-Manage&#xff0c;但实际部署过程中发现作者提供的教程博客无法正常访问&#xff0c…...

P15800 [GESP202603 六级] 选数

[GESP202603 六级] 选数 https://www.bilibili.com/video/BV1nCAEz2E1q/ P15800 [GESP202603 六级] 选数-信息学奥赛GESP等级考试真题解析 https://www.bilibili.com/video/BV14PwXzEEWL/ 202603GESP六级C第题1选数 https://www.bilibili.com/video/BV19nAnzgEt5/ P15800 [GESP…...

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(五)- 动态配置与性能优化实战(vsetvli/vsetivli/vsetvl)

1. 动态向量配置指令的核心作用 RISC-V向量扩展指令集中最精妙的设计之一&#xff0c;就是允许程序运行时动态调整向量处理参数的机制。想象你正在用不同尺寸的螺丝刀组装家具——当遇到大螺丝就换大号刀头&#xff0c;碰到小螺丝立即切换精密刀头&#xff0c;这就是vsetvli/vs…...

3D场景重建与实时渲染:XV3DGS-UEPlugin技术指南

3D场景重建与实时渲染&#xff1a;XV3DGS-UEPlugin技术指南 【免费下载链接】XScene-UEPlugin 项目地址: https://gitcode.com/gh_mirrors/xv/XScene-UEPlugin XV3DGS-UEPlugin是由XVERSE Technology Inc.开发的基于Unreal Engine 5的混合编辑插件&#xff0c;提供Gaus…...

实战指南:在Kali Linux上构建HexStrike AI与Trae MCP的智能安全联动平台

1. 环境准备与基础配置 在Kali Linux上构建HexStrike AI与Trae MCP的智能安全联动平台&#xff0c;首先需要确保基础环境配置正确。我建议使用物理机直接安装Kali Linux&#xff0c;相比虚拟机方案能获得更好的性能表现&#xff0c;特别是在处理大规模安全扫描任务时。如果确实…...

零基础入门:用eNSP搭建USG5500防火墙IPsec虚拟专用网实验环境

从零构建企业级安全隧道&#xff1a;eNSP模拟USG5500防火墙IPsec实战指南 当你第一次听说"IPsec"这个词时&#xff0c;可能会联想到那些科技电影中黑客们建立的加密通道。实际上&#xff0c;IPsec技术离我们并不遥远——它正默默保护着每天数以亿计的企业数据传输。本…...

从零搭建SRS流媒体服务器:实现RTMP推拉流的实战部署指南

1. 为什么选择SRS搭建流媒体服务器&#xff1f; 最近几年直播和实时视频的需求爆发式增长&#xff0c;很多开发者都在寻找轻量高效的流媒体服务器方案。我测试过不少开源方案&#xff0c;最终发现SRS&#xff08;Simple Realtime Server&#xff09;是最适合个人和小团队自建的…...

Spring Boot Helper插件免费版获取与版本适配全攻略

1. 为什么我们需要Spring Boot Helper插件 作为一个常年使用IntelliJ IDEA开发Spring Boot项目的程序员&#xff0c;我深刻体会到这个插件的重要性。简单来说&#xff0c;它就像是Spring Boot开发的"瑞士军刀"&#xff0c;能帮我们快速创建项目、自动配置依赖、一键…...

2026年网络安全报告

2026年网络安全报告 2026年网络安全报告分析了2025年全球网络威胁形势&#xff0c;指出攻击速度和规模加快&#xff0c;人工智能、身份滥用等技术被攻击者整合&#xff0c;同时预测了2026年行业趋势并给出首席信息安全官建议。 网络安全趋势 不止电子邮件&#xff1a;多渠道…...