2025蓝桥杯(单片机)备赛--扩展外设之UART1的原理与应用(十二)
一、串口1的实现原理
a.查看STC15F2K60S2数据手册:
串口一在590页,此款单片机有两个串口。
串口1相关寄存器:
SCON:串行控制寄存器(可位寻址)
SCON寄存器说明:
需要PCON寄存器的SMOD0/PCON.6为0,使SM0和SM1一起指定工作模式,这里选择工作模式1,REN位置1,允许接受,
TI, R1 在中断里面 调用。
SCON=0X50; 0101 0000
PCON寄存器:
PCON寄存器说明:
SMOD无论0还是1,串口1波特率 都加倍,SMOD0必须为0,才可选择工作模式。所以PCON=0x00(默认也是0X00);
SBUF数据缓冲寄存器:
说明:实际上两个缓冲器,一个是度寄存器,一个是写寄存器。把要发送的数据写到SBUF里面,从SBUF立马接收数据,SBUF大小为1个字节。
AUXR辅助寄存器:
AUXR寄存器说明:控制串口1的速度都为1T,采用定时器1作为串口1的波特率发生器。
由于还用到了定时器1,所以还要 配置 定时器1的工作模式,工作模式为16位自动重装模式,设置定时器1初始值,禁止定时器1中断,开启定时器1.
//定时器1配置代码
{TMOD&=0X0F;TL1=0;TH1=0;ET1=0;TR1=1;
}
串口1中断配置:
说明:可知其中断标志位为ES,可以位寻址,所以可以直接给ES赋值,我们需要开启,ES=1;EA=1;
2 串口1初始化代码:
void Uart1_Init(void) //4800bps@12.000MHz
{SCON = 0x50; //8位数据,可变波特率AUXR |= 0x40; //定时器时钟1T模式AUXR &= 0xFE; //串口1选择定时器1为波特率发生器TMOD &= 0x0F; //设置定时器模式TL1 = 0x8F; //设置定时初始值TH1 = 0xFD; //设置定时初始值ET1 = 0; //禁止定时器中断TR1 = 1; //定时器1开始计时//记得开启中断ES=1;EA=1;
}
串口中断函数:
可知 中断号为4
串口1中断代码:
void UART1_Routine(void) interrupt 4
{if(RI){//接受定长字符RI=0;rx_clear_cnt=0;rx_buf[rx_long++] = SBUF;if(rx_long==3){rx_long=0;rx_flag=1;}//接受不定长字符RI=0;rx_clear_cnt=0;rx_buf[rx_long++]=SBUF;if(rx_buf=='\n'){rx_long=0;rx_flag=1;}}if(TI){TI=0;busy=0;//发送忙标志位 }
}
串口1发送函数:
void SendByte(u8 byte)
{while(busy);busy=1;//申请忙碌,进入保护,防止干扰SBUF=byte;
}
void SendString(u8* str)
{while(*str){SendByte(*str++);}
}
定时清除串口接收内容:
void RXClear_Process(void){rx_clear_cnt++;if(rx_clear_cnt>=50){ rx_cleat_cnt=0;rx_long=0;memset(rx_buf,'\0',sizeof(rx_buf);}}
2025蓝桥杯(单片机)备赛--扩展外设之超声波测距原理与应用(十一)-CSDN博客
2025蓝桥杯(单片机)备赛--扩展外设之DS1302的使用(九)_ds1302引脚图及功能-CSDN博客
2025蓝桥杯(单片机)备赛--扩展外设之I2C的重要应用--PCF8591(八)-CSDN博客
2025蓝桥杯(单片机)备赛--扩展外设之I2C的重要应用--AT24C02(七)-CSDN博客
2025蓝桥杯(单片机)备赛--扩展外设控制之DS18B20(六)-CSDN博客
2025蓝桥杯(单片机)备赛--基本外设控制之共阳数码管(四)-CSDN博客
2025蓝桥杯(单片机)备赛--基本外设控制之继电器和蜂鸣器(三)-CSDN博客
2025蓝桥杯(单片机)备赛--基本外设控制之LED(二)_2024蓝桥杯单片机资料-CSDN博客
2025蓝桥杯(单片机)备赛--基本框架搭建(一)_蓝桥杯单片机大赛-CSDN博客
相关文章:
2025蓝桥杯(单片机)备赛--扩展外设之UART1的原理与应用(十二)
一、串口1的实现原理 a.查看STC15F2K60S2数据手册: 串口一在590页,此款单片机有两个串口。 串口1相关寄存器: SCON:串行控制寄存器(可位寻址) SCON寄存器说明: 需要PCON寄存器的SMOD0/PCON.6为0,使SM0和SM…...
Linux 使用gdb调试core文件
core文件和gdb调试 什么是 core 文件?产生core文件的原因?core 文件的控制和生成路径gdb 调试core 文件引用和拓展 什么是 core 文件? 当程序运行过程中出现Segmentation fault (core dumped)错误时,程序停止运行,并产…...
Python后端flask框架接收zip压缩包方法
一、用base64编码发送,以及接收 import base64 import io import zipfile from flask import request, jsonifydef unzip_and_find_png(zip_data):# 使用 BytesIO 在内存中处理 zip 数据with zipfile.ZipFile(io.BytesIO(zip_data), r) as zip_ref:extracted_paths…...
【21-30期】Java技术深度剖析:从分库分表到微服务的核心问题解析
🚀 作者 :“码上有前” 🚀 文章简介 :Java 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 文章题目:Java技术深度剖析:从分库分表到微服务的核心问题解析 摘要: 本…...
Linux 中 find 命令使用详解
目录 一:基本语法二:搜索路径1、限制递归层级2、排除指定路径 三:匹配条件1、按照文件名搜索2、按文件类型搜索3、按文件大小搜索4、按文件权限搜索5、按文件所有者或所属组搜索6、按文件修改时间搜索 四:执行操作1、输出满足条件…...
云服务器部署WebSocket项目
WebSocket是一种在单个TCP连接上进行全双工通信的协议,其设计的目的是在Web浏览器和Web服务器之间进行实时通信(实时Web) WebSocket协议的优点包括: 1. 更高效的网络利用率:与HTTP相比,WebSocket的握手只…...
林业产品智能推荐引擎:Spring Boot篇
1 绪论 1.1 选题背景 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。计算机软件可以针对不同行业的营业特点以及管理需求,设置不同的功能&…...
【C++】LeetCode:LCR 077. 排序链表
题干 LCR 077. 排序链表 给定链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 解法:归并排序 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(null…...
git教程
文章目录 简介:使用教程:(1)安装git:(2)设置用户名和邮箱作为标识符:(3)建立本地仓库:本地仓库作用:(1)将文件…...
报表工具功能对比:免费易上手的山海鲸报表 vs 庞大用户群体的Tableau
在数据报表与分析领域,随着大数据技术的不断发展和企业数字化转型的深入,市面上涌现出了众多报表工具,为用户提供多元化的选择。对于企业数据分析师、IT人员及管理层来说,选择一款适合自己的报表工具至关重要。本文将从多个角度对…...
鸿蒙原生应用开发及部署:首选华为云,开启HarmonyOS NEXT App新纪元
目录 前言 HarmonyOS NEXT:下一代操作系统的愿景 1、核心特性和优势 2、如何推动应用生态的发展 3、对开发者和用户的影响 华为云服务在鸿蒙原生应用开发中的作用 1、华为云ECS C系列实例 (1)全维度性能升级 (2ÿ…...
CSS之3D转换
三维坐标系 三维坐标系其实就是指立体空间,立体空间是由3个轴共同组成的。 x轴:水平向右注意:x右边是正值,左边是负值 y轴:垂直向下注意:y下面是正值,上面是负值 z轴:垂直屏幕注意:往外面是正值,往里面是负值 3D移动 translat…...
uni-app初学笔记:文件路径与作用
components:可复用的组件pages:页面(可见/不可见)static:静态资源,存放图片视频等 (相当于vue项目的 assets)mainjs:Vue初始化入口文件App.vue:应用配置,用来配置App全局样式以及监听pages.json :配置页面路…...
子组件中$emit和update更新传递变量
vue2.6之后才可以使用update更新,vue2.6以下版本使用input和v-model 需求描述:蒙层上展示弹窗,弹窗点击关闭,需要向父传递关闭的信息 方法1,简便直接传递变量visible(或者不改名isModalVisible也是可以的…...
浅谈Python库之lxml
一、基本介绍 lxml 是一个用 Python 编写的库,它提供了对 XML 和 HTML 文档的解析和操作功能。它使用 C 语言编写的 libxml2 和 libxslt 库作为后端,因此解析速度非常快,并且能够处理大型文档。lxml 支持 XPath 和 XSLT,这使得它在…...
spring boot框架漏洞复现
spring - java开源框架有五种 Spring MVC、SpringBoot、SpringFramework、SpringSecurity、SpringCloud spring boot版本 版本1: 直接就在根下 / 版本2:根下的必须目录 /actuator/ 端口:9093 spring boot搭建 1:直接下载源码打包 2:运行编译好的jar包:actuator-testb…...
IDEA插件CamelCase,快速转变命名格式
在IDEA上大小写转换的快捷键是 CtrlshitU 其它的格式转换的快捷键是 shitaltu 安装方法: file-settings-plugins-在marketplace搜索“CamelCase”-点击安装。 安装成功设置后,重新打开idea 下载完成后 点击 Apply 和OK 此刻就可以选中命名 并使用快捷…...
Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?
大家好,我是锋哥。今天分享关于【Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?】面试题。希望对大家有帮助; Elasticsearch中的节…...
Spring Boot 集成 Knife4j 的 Swagger 文档
在开发微服务应用时,API 文档的生成和维护是非常重要的一环。Swagger 是一个非常流行的 API 文档工具,可以帮助我们自动生成 RESTful API 的文档,并提供了一个友好的界面供开发者测试 API。本文将介绍如何在 Spring Boot 项目中集成 Knife4j …...
C# 创建快捷方式文件和硬链接文件
C# 创建快捷方式文件和硬链接文件 引言什么是快捷方式什么是硬链接文件硬链接与快捷方式不同 实现创建快捷方式文件实现创建硬链接文件小结 引言 什么是快捷方式 平常我们最常window桌面上点击的左下角带小箭头的文件就是快捷方式了,大家都很熟悉它。快捷方式是Wi…...
Linux高阶——1123—服务器基础服务器设备服务器基础能力
目录 1、服务器基础 1、服务器基本概述 2、服务器设计之初解决的问题 网络穿透 网络数据设备间的收发 3、服务器的类型C/S、B/S 2、服务器设备 将自己的服务器软件部署上线 3、代理服务器负载均衡,以及地址绑定方式 4、服务器的基础能力 1、服务器基础 1…...
LabVIEW串口通讯速度
LabVIEW串口通讯能达到的速度 LabVIEW支持高效的串口通讯,通过优化设置,理论上可以实现每次接收一个字节时达到1ms甚至更短的周期。不过,实际性能会受到以下因素的限制: 波特率(Baud Rate):…...
Jmeter中的监听器
3)监听器 1--查看结果树 用途 调试测试计划:查看每个请求的详细信息,帮助调试和修正测试计划。分析响应数据:查看服务器返回的响应数据,验证请求是否成功。检查错误:识别和分析请求失败的原因。 配置步骤…...
缺失的第一个正数(java)
题目描述: 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 解释:范围 […...
跨部门文件共享安全:平衡协作与风险的关键策略
在现代企业中,跨部门协作已成为推动业务发展的关键因素。然而,随着信息的自由流动和共享,文件安全风险也随之增加。如何在促进跨部门协作的同时,确保文件共享的安全性,成为了一个亟待解决的问题。 一、明确文件分类与…...
一键AI换脸软件,支持表情控制,唇形同步Facefusion-3.0.0发布!支持N卡和CPU,一键启动包
嗨,小伙伴们!还记得小编之前介绍的FaceFusion 2.6.1吗?今天给大家带来超级exciting的消息 —— FaceFusion 3.0.0闪亮登场啦! 🌟 3.0.0版本更新 🏗️ 全面重构:修复了不少小虫子,运行更稳定,再也不怕突然罢工啦! 😀 Live Portrait功能:新增…...
我要成为算法高手-递归篇
目录 题目1:汉诺塔题目2:合并两个有序链表题目3:反转链表题目4:两两交换链表中的结点题目5:Pow(x,n) 题目1:汉诺塔 面试题 08.06. 汉诺塔问题 - 力扣(LeetCode) 解题思路࿱…...
Git 提交的相对引用
Git 提交的相对引用 在 Git 中,使用 ~ 和 ^ 符号可以帮助你更灵活地引用提交历史中的特定提交。以下是这些符号的具体用法和示例: 1. ~(波浪号) ~ 符号用于指向上一个或多个父提交。它总是沿着第一个父提交的链向上追溯。 HEA…...
国内首家! 阿里云人工智能平台 PAI 通过 ITU 国际标准测评
近日,阿里云人工智能平台 PAI 顺利通过中国信通院组织的 ITU-T AICP-GA(Technical Specification for Artificial Intelligence Cloud Platform:General Architecture)国际标准和《智算工程平台能力要求》国内标准一致性测评&…...
CDAF / PDAF 原理 | PDAF、CDAF 和 LAAF 对比 | 图像清晰度评价指标
注:本文为 “CDAF / PDAF 原理 | PDAF、CDAF 和 LAAF 对比 | 图像清晰度评价指标” 几篇相关文章合辑。 文章中部分超链接、图片异常受引用之前的原文所限。 相机自动对焦原理 TriumphRay 于 2020-01-16 18:59:41 发布 凸透镜成像原理 这一部分大家中学应该就学过…...
小米C++ 面试题及参考答案下(120道面试题覆盖各种类型八股文)
指针和引用的区别?怎么实现的? 指针和引用有以下一些主要区别。 从概念上来说,指针是一个变量,它存储的是另一个变量的地址。可以通过指针来间接访问所指向的变量。例如,我们定义一个整型指针int *p;,它可以指向一个整型变量的内存地址。而引用是一个别名,它必须在定义的…...
WPF异步UI交互功能的实现方法
前面的文章我们提及过,异步UI的基础实现。基本思路主要是开启新的UI线程,并通过VisualTarget将UI线程上的Visual(即RootVisual)连接到主线程上的UI上即可渲染显示。 但是,之前的实现访问是没有交互能力的,视觉树上的UI并不能实现…...
2024 java大厂面试复习总结(一)(持续更新)
10年java程序员,2024年正好35岁,2024年11月公司裁员,记录自己找工作时候复习的一些要点。 java基础 hashCode()与equals()的相关规定 如果两个对象相等,则hashcode一定也是相同的两个对象相等,对两个对象分别调用eq…...
TCP/IP学习笔记
TCP\IP从实际应用的五层结构开始,自顶而下的去分析每一层。 TCP/IP五层架构概述 学术上面是TCP/IP四层架构,OSI/ISO是七层架构,实际中使用的是TCP/IP五层架构。 数据链路层 ICMP数据包分析 Wireshark抓包分析ICMP协议_wireshark抓ping包分析…...
基于IPMI的服务器硬件监控指标解读
在现代化数据中心中,服务器的稳定运行对于保障业务连续性至关重要。为了实时掌握服务器的健康状况,运维团队需要借助高效的监控工具。监控易作为一款功能强大的监控软件,支持使用IPMI(Intelligent Platform Management Interface&…...
相亲交友小程序项目介绍
一、项目背景 在当今快节奏的社会生活中,人们忙于工作和事业,社交圈子相对狭窄,寻找合适的恋爱对象变得愈发困难。相亲交友作为一种传统而有效的社交方式,在现代社会依然有着巨大的需求。我们的相亲交友项目旨在为广大单身人士提…...
Day3 洛谷Day3 1161+1179+1200+1304
零基础洛谷刷题记录 Day1 2024.11.18 Day2 2024.11.25 Day3 2024.11.26 文章目录 零基础洛谷刷题记录1161:题目描述1161:解题代码1161:学习成果1179:题目描述(成功写出)1179:解题代码1179&…...
【通俗理解】ELBO(证据下界)——机器学习中的“情感纽带”
【通俗理解】ELBO(证据下界)——机器学习中的“情感纽带” 关键词提炼 #ELBO #证据下界 #变分推断 #机器学习 #潜变量模型 #KL散度 #期望 #对数似然 第一节:ELBO的类比与核心概念【尽可能通俗】 ELBO,即证据下界,在…...
Vue: computed 计算属性
在Vue中,computed属性是用于计算和返回基于其他响应式数据的值的功能。 适合在模板中使用,因为能够根据依赖的数据自动更新。 当依赖的数据变化时,computed属性会重新计算,并且会将结果缓存,以提高性能。 computed的…...
【自动化Selenium】Python 网页自动化测试脚本(上)
目录 1、Selenium介绍 2、Selenium环境安装 3、创建浏览器、设置、打开 4、打开网页、关闭网页、浏览器 5、浏览器最大化、最小化 6、浏览器的打开位置、尺寸 7、浏览器截图、网页刷新 8、元素定位 9、元素交互操作 10、元素定位 (1)ID定位 &…...
数据库命令规范、数据库基本设计规范
所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必…...
php常用伪协议整理
前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理php常见的伪协议 php伪协议介绍 直观点,就是php可以识别的协议。 类似于我们访问网站的http协议,我们用浏览器访问我们自己本地文件的file协议等。 php可以识别这些协议…...
Redis与MySQL如何保证数据一致性
Redis与MySQL如何保证数据一致性 简单来说 该场景主要发生在读写并发进行时,才会发生数据不一致。 主要流程就是要么先操作缓存,要么先操作Redis,操作也分修改和删除。 一般修改要执行一系列业务代码,所以一般直接删除成本较低…...
NIO三大组件
现在互联网环境下,分布式系统大相径庭,而分布式系统的根基在于网络编程,而netty恰恰是java领域的网络编程的王者,如果要致力于并发高性能的服务器程序、高性能的客户端程序,必须掌握netty网络编程。 NIO基础 NIO是从ja…...
智能呼叫中心是什么?
智能呼叫中心是什么? 作者:开源智能呼叫中心系统 FreeIPCC,Github地址:https://github.com/lihaiya/freeipcc 智能呼叫中心是指运用人工智能、大数据分析等技术,对来电进行智能分析和处理的客户服务中心。以下是对智能…...
LSTM原理解读与实战
在RNN详解及其实战中,简单讨论了为什么需要RNN这类模型、RNN的具体思路、RNN的简单实现等问题。同时,在文章结尾部分我们提到了RNN存在的梯度消失问题,及之后的一个解决方案:LSTM。因此,本篇文章主要结构如下ÿ…...
24.11.26 神经网络 参数初始化
神经网络 感知神经网络 神经网络(Neural Networks)是一种模拟人脑神经元网络结构的计算模型,用于处理复杂的模式识别、分类和预测等任务 生物学: 人脑可以看做是一个生物神经网络,由众多的神经元连接而成 树突&#…...
51单片机从入门到精通:理论与实践指南(一)
单片机在智能控制领域的应用已非常普遍,发展也很迅猛,学习和使用单片机的人员越来越多。虽然新型微控制器在不断推出,但51单片机价格低廉、易学易用、性能成熟,在家电和工业控制中有一定的应用,而且学好了51单片机&…...
wordpress获取文章总数、分类总数、tag总数等
在制作wordpress模板的时候会要调用网站的文章总数分类总数tag总数等这个数值,如果直接用count查询数据库那就太过分了。好在wordpress内置了一些标签可以直接获取到这些数值,本文整理了一些常用的wordpress网站总数标签。 文章总数 <?php $count_…...
Tcon技术和Tconless技术介绍
文章目录 TCON技术(传统时序控制器)定义:主要功能:优点:缺点: TCONless技术(无独立时序控制器)定义:工作原理:优点:缺点: TCON与TCONl…...