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

vs做网站怎么上/安徽百度关键词优化

vs做网站怎么上,安徽百度关键词优化,中山做网站公司哪家好,wordpress 腾讯云存储当你使用串口发送数据时是否出现过这样的情况: 1.发送时第一个字节丢失。 2.发送时出现莫名的字节丢失。 3.各种情况字节丢失。 1.先了解一下串口发送的流程图(手动描绘): 可以假想USART_FLAG_TXE是用于检测"弹仓"&…

当你使用串口发送数据时是否出现过这样的情况:
1.发送时第一个字节丢失。
2.发送时出现莫名的字节丢失。
3.各种情况字节丢失。

1.先了解一下串口发送的流程图(手动描绘):

可以假想USART_FLAG_TXE是用于检测"弹仓",USART_FLAG_TC是用于检测"弹膛",“弹仓”和“弹膛”分别对应"数据缓冲区"和"移位寄存器"!
在这里插入图片描述
数据缓冲区为空时:USART_FLAG_TXE=1;数据缓冲区为"空"并且"移位寄存器也发送数据到TX信号"后":USART_FLAG_TC=1。

2.那么有必要更深入了解一下 “USART_FLAG_TXE” & “USART_FLAG_TC”:

♦USART_FLAG_TXE:表示数据缓冲区是否为空,为空时置1,表示可以再写数据到数据缓冲区,但有可能数据没有发送完。

♦USART_FLAG_TC:表示数据缓冲区的数据发送是否完成。如果最后一次发送到数据缓冲区的数据完成了从移位寄存器到信号线TX时,才置1,表示数据发送完成,也就是说,这个标志位表示数据真正发送完成。

3.发送时的特殊情况:

1)发送字符串“过程中“,主机掉电
2)发送字符串“过程中“,从机掉电
2)发送字符串“过程中“,进入待机或停机
总结:这几种特殊情况都有可能使发送失败!那么如何避免呢?

4.各种案例

1)错误案例

在这里插入图片描述
看一下运行结果哪错了:
在这里插入图片描述

出现了错误:第一个字节丢失!

原因:发送第一个字节时,没有将TC标志位置0,跳过第一个字节,后面的字节又以非常迅猛的速度覆盖了之前的字节。(TC和TXE的复位值均为1)
为什么? 因为清除TC需要:“读SR寄存器 & 写DR寄存器” 或者 “直接给TC赋值0”。上图中第一个字节只写了DR寄存器,没有读SR。如果可以再前面加入USART_ClearFlag(USARTx, uint16_t USART_FLAG_TC);
或者USART_GetFlagStatus(USART1,USART_FLAG_TC)读一下SR寄存器都可以。
解决方法:
在这里插入图片描述

2)上面介绍的特殊情况导致的发送失败

在这里插入图片描述
错误: 本来打算发送 0x30 ~ 0x39,却发现少了两个字节,这是因为上面的特殊情况,代码只将数据放到了发送缓冲区,而没有发送出去就掉电或待机了,这个时候其实最后两个字符是没有发送出去的。
结论: 当然一般情况下这种写法是准确的,特殊情况也很少发生,所以这是可取的。(我不相信那么巧合,正好发送过程中,正好停电)。

3).万无一失版本:

因为还是有很小的概率出现特殊情况的,这种方法可以避免!

在这里插入图片描述
亲测有效!
在这里插入图片描述
大总结:
有可能出现各种情况导致串口发送字符串失败,最重要的还是理解本文中的两个标志位,正确的写出函数,方法多种多样,我也是仅仅写了一点点自己的见解!希望童鞋们学习愉快!

本文全文摘抄自:https://www.codenong.com/cs105799846/
感谢大佬分享,如果作者介意,请联系本人删除,谢谢!

相关文章:

误用STM32串口发送标志位 “USART_FLAG_TXE” “USART_FLAG_TC”造成的BUG

当你使用串口发送数据时是否出现过这样的情况: 1.发送时第一个字节丢失。 2.发送时出现莫名的字节丢失。 3.各种情况字节丢失。 1.先了解一下串口发送的流程图(手动描绘): 可以假想USART_FLAG_TXE是用于检测"弹仓"&…...

指针(三)

函数指针 定义:整型指针是指向整形的指针,数组指针式指向数组的指针,其实函数指针就是指向函数的指针。 函数指针基础: ()优先级要高于*;一个变量除去了变量名,便是它的变量类型;一个指针变量…...

labelimg遇到的标签修改问题:修改一张图像的标签时,保存后导致classes.txt改变

问题描述:修改一张图像的标签时候, classes.txt 会同步更新,导致重新生成了 classes.txt 但是这个 classes.txt 只有你现在写的那个类别名,以前的没有了。 解决:设置一个 predefined_classes.txt,内容和模…...

Spring Cloud Gateway使用和配置

Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关&#xff…...

RT-Thread 时钟管理

时钟管理 时钟是非常重要的概念,和朋友出去游玩需要约定时间,完成任务也需要花费时间,生活离不开时间。 操作系统也一样,需要通过时间来规范其任务的执行,操作系统中最小的时间单位是时钟节拍(OS Tick&…...

User: zhangflink is not allowed to impersonate zhangflink

使用hive2连接进行添加数据是报错: [08S01][1] Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. User: zhangflink is not allowed to impersonate zhangflink 有些文章说需要修…...

深入理解Sentinel系列-1.初识Sentinel

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理、分布式技术原理🔥如果感觉博主的文章还不错的话&#xff…...

vue中字典的使用

1.引入字典 dicts: [order_status,product_type],2.表单中使用 select下拉 <el-form-item label"订单状态" prop"orderStatus"><el-select v-model"form.orderStatus" clearable placeholder"请输入订单状态" :disabled"…...

AWS基于x86 vs Graviton(ARM)的RDS MySQL性能对比

概述 这是一个系列。在前面&#xff0c;我们测试了阿里云经济版&#xff08;“ARM”&#xff09;与标准版的性能/价格对比&#xff1b;华为云x86规格与ARM&#xff08;鲲鹏增强&#xff09;版的性能/价格对比。现在&#xff0c;再来看看AWS的ARM版本的RDS情况 在2018年&#…...

ESP32 蓝牙音箱无法链接上电脑的解决:此项不起作用,请确保你的蓝牙设备仍可检测到

ESP32 被我加了放大器后通过A2DP链接手机播放一直正常&#xff0c;但是怎么都链接不到电脑&#xff0c;蓝牙设备可以被发现和配对&#xff0c;但是始终无法连接&#xff0c;显示&#xff1a; 此项不起作用&#xff0c;请确保你的蓝牙设备仍可检测到&#xff0c;然后再试一次 …...

会声会影2024软件还包含了视频教学以及模板素材

会声会影2024中文版是一款加拿大公司Corel发布的视频编软件。会声会影2024官方版支持视频合并、剪辑、屏幕录制、光盘制作、添加特效、字幕和配音等功能&#xff0c;用户可以快速上手。会声会影2024软件还包含了视频教学以及模板素材&#xff0c;让用户剪辑视频更加的轻松。 会…...

[Swift]RxSwift常见用法详解

RxSwift 是 ReactiveX API 的 Swift 版。它是一个基于 Swift 事件驱动的库&#xff0c;用于处理异步和基于事件的代码。 GitHub:https://github.com/ReactiveX/RxSwift 一、安装 首先&#xff0c;你需要安装 RxSwift。你可以使用 CocoaPods&#xff0c;Carthage 或者 Swift …...

探索鸿蒙_ArkTs开发语言

ArkTs 在正常的网页开发中&#xff0c;实现一个效果&#xff0c;需要htmlcssjs三种语言实现。 但是使用ArkTs语言&#xff0c;就能全部实现了。 ArkTs是基于TypeScript的&#xff0c;但是呢&#xff0c;TypeScript是基于javascript的&#xff0c;所以ArkTs不但能完成js的工作&a…...

案例049:基于微信小程序的校园外卖平台设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…...

通过提示工程释放人工智能

在快速发展的技术领域&#xff0c;人工智能 (AI) 处于前沿&#xff0c;不断重塑我们与数字系统的交互。这一演变的一个关键方面是大型语言模型 (LLM) 的开发和完善&#xff0c;它在从客户服务机器人到高级数据分析的各种应用中已变得不可或缺。利用这些法学硕士的潜力的核心是提…...

亚马逊云科技Serverless视频内容摘要提取方案

概述 随着GenAI的普及&#xff0c;视频内容摘要生成成为一个备受关注的领域。通过将视频内容转化为文本&#xff0c;可以探索到更广泛的应用场景&#xff0c;其中包括&#xff1a; 视频搜索与索引&#xff1a;将视频内容转化为文本形式&#xff0c;可以方便地进行搜索和索引操作…...

c语言:整数与浮点数在内存中的存储方式

整数在内存中的存储&#xff1a; 在计算机内存中&#xff0c;整数通常以二进制形式存储。计算机使用一定数量的比特&#xff08;bit&#xff09;来表示整数&#xff0c;比如32位或64位。在存储整数时&#xff0c;计算机使用补码形式来表示负数&#xff0c;而使用原码形式来表示…...

dockerdesktop 导出镜像,导入镜像

总体思路 备份时 容器 > 镜像 > 本地文件 恢复时 本地文件 > 镜像 > 容器 备份步骤 首先,把容器生成为镜像 docker commit [容器名称] [镜像名称] 示例 docker commit nginx mynginx然后,把镜像备份为本地文件,如果使用的是Docker Desktop,打包备份的文件会自动存…...

2-Django、Flask和Tornado三大主流框架对比

在Python的web开发框架中&#xff0c;目前使用量最高的几个是Django、Flask和Tornado&#xff0c; 经常会有人拿这几个对比&#xff0c;相信大家的初步印象应该是 Django大而全、Flask小而精、Tornado性能高。 了解常用框架 Django 主要特点是大而全,集成了很多组件,例如: Mo…...

【openssl】Window系统如何编译openssl

本文主要记录如何编译出windows版本的openss的lib库 如果需要获取RSA公钥私钥&#xff0c;推荐【openssl】 生成公钥私钥 |通过私钥获取公钥-CSDN博客 目录 1.下载openssl&#xff0c;获得openssl-master.zip。 2.下载Perl 3.下载NASM 4.配置perl和NASM的环境变量 5.进入…...

[leetcode 双指针]

1. 三数之和 M :::details 给你一个包含 n 个整数的数组 nums&#xff0c;判断 nums 中是否存在三个元素 a&#xff0c;b&#xff0c;c &#xff0c;使得 a b c 0 &#xff1f;请你找出所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 示例…...

Notepad++批量添加引号

工作中经常会遇到这样情景&#xff1a;业务给到一批订单号&#xff0c;需要查询这批订单的某些字段信息。在where条件中需要传入这些订单号的数组&#xff0c;并且订单号用引号引起&#xff0c;用引号隔开。 字符串之间长度相同 可以按住CtrlAlt和鼠标左键选中区域&#xff0…...

HarmonyOS4.0从零开始的开发教程04 初识ArkTS开发语言(下)

HarmonyOS&#xff08;二&#xff09; 初识ArkTS开发语言&#xff08;下&#xff09;之TypeScript入门 声明式UI基本概念 应用界面是由一个个页面组成&#xff0c;ArkTS是由ArkUI框架提供&#xff0c;用于以声明式开发范式开发界面的语言。 声明式UI构建页面的过程&#xff…...

Failed to connect to github.com port 443 after 21055 ms: Timed out

目前自己使用了梯*子还是会报这样的错误&#xff0c;连接不到的github。 查了一下原因&#xff1a; 是因为这个请求没有走代理。 解决方案&#xff1a; 设置 -> 网络和Internet -> 代理 -> 编辑 记住这个IP和端口 使用以下命令&#xff1a; git config --global h…...

Python小技巧:冻结参数,让你的代码变简洁

Python 有一些非常使用的模块&#xff0c; functools 就是其中之一。今天我们来说说其中的 partial 函数&#xff0c; partial 函数看起来平平无奇&#xff0c;如果你经常翻看高手们写的库&#xff0c;会发现很多地方都在使用这函数。 入门 我们从一个小场景开始。 现在我们需…...

如何判断电脑电源质量的好坏?

电脑电源作为电脑的关键部件直接影响到电脑的性能和寿命&#xff0c;因此选择一个好的电源至关重要。那么要如何判断电脑电源的好坏呢?判断的指标都有哪些呢? 1.外观检测 观察电源外观可以初步判断电脑电源的工艺质量和材料质量。外观检测需要检查电源外壳是否坚固&#xff0…...

装饰器基础知识

一、概述 装饰器是可调用的对象&#xff0c;其参数是另一个函数&#xff08;被装饰的函数&#xff09;。装饰器可能会处理被装饰的函数&#xff0c;然后把它返回&#xff0c;或者将其替换成另一个函数或可调用对象。 装饰器的一大特性是&#xff0c;能把被装饰的函数替换成其他…...

轻量封装WebGPU渲染系统示例<42>- vsm阴影实现过程(源码)

前向实时渲染vsm阴影实现的主要步骤: 1. 编码深度数据&#xff0c;存到一个rtt中。 2. 纵向和横向执行遮挡信息blur filter sampling, 存到对应的rtt中。 3. 将上一步的结果(rtt)应用到可接收阴影的材质中。 具体代码情况文章最后附上的实现源码。 当前示例源码github地址: …...

[Electron] 将应用日志文件输出

​ 日志文件输出可以使用 electron-log 模块。 electron-log 是一个用于 Electron 应用程序的日志记录库。它提供了一种简单且方便的方式来在 Electron 应用中记录日志信息&#xff0c;并支持将日志输出到文件、控制台和其他自定义目标。 以下是 electron-log 的一些主要特点…...

特性【C#】

C#特性是一种用于在编译时向程序元素添加声明性信息的语言结构。 下面是C#特性的使用方法&#xff1a; 1.使用系统提供的特性&#xff1a; 可以使用系统提供的特性来标记类、方法、属性等&#xff0c;以便在编译时进行验证或者提供其他信息。例如&#xff0c;可以使用Obsole…...