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

嵌入式学习--江协51单片机day3

今天学的东西挺多的,包括:自己设计的小应用,矩阵键盘,矩阵键盘密码锁,控制按键led流水灯,定时器时钟

(那个视频真的煎熬,连续两个1小时的简直要命,那个时钟也是听的似懂非懂....)

小应用

这个是朋友问我能不能用51单片机实现类似红绿灯的效果,我大体做了一下,到周末回顾的时候还会进行填充(每周末会先复习前面的知识,包括之前没有弄懂的地方,如果时间不够就不学新知识了,也会利用已经学过的知识尝试创建小的应用,巩固学过的知识)

#include <REGX52.H>
#include "Delay.h"
#include "Nixie.h"
//设置红绿灯的等待时间为45s,由于设备限制仅
//实现红灯部分
void main()
{while(1){unsigned int time=45;P2_7=0;while(time>=10){int a,b;a=time/10;b=time%10;Nixie(1, 0xFF); Nixie(2, 0xFF); Nixie(1,a);Nixie(2,b);time--;Delay(1000);}while(time>=0){Nixie(2,time);time--;if(time<=5){P2_7=1;Delay(500);P2_7=0;Delay(500);}}}
}

没搞明白为什么数码管没有达到红绿灯那种常亮的效果,一直在闪....

矩阵键盘

矩阵键盘由于内部电路的设计是先列后行进行设置。

先对p1初始化,设置为0表示选中当前列,若是当前列的某一行的按键被按下,就显示这个数字。

在同一时刻只能选中一个按钮

​
#include <REGX52.H>
#include "Delay.h"
/*** @brief  矩阵键盘读取按键键码* @param  无* @retval KeyNumber 按下按键的键码值如果按键按下不放,程序会停留在子函数,松手瞬间,返回按键键码没有按键按下时,返回0*/
unsigned char MatrixKey()
{unsigned char KeyNumber=0;P1=0xFF;P1_3=0;if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=1;}if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=5;}if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=9;}if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=13;}P1=0xFF;P1_2=0;if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=2;}if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=6;}if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=10;}if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=14;}P1=0xFF;P1_1=0;if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=3;}if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=7;}if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=11;}if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=15;}P1=0xFF;P1_0=0;if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=4;}if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=8;}if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=12;}if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=16;}return KeyNumber;}​

矩阵键盘

这个是实现键盘对应键位显示对应的数字

如果不加if判断,会一直显示00,但实际上是显示了被按下的按键的数字的,只是在循环体里面进行的比较快,被刷新成了0,肉眼就看不出来了

#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "MatrixKey.h"
unsigned char KeyNum;
void main()
{LCD_Init();LCD_ShowString(1,1,"MatrixKey");while(1){KeyNum=MatrixKey();if(KeyNum){LCD_ShowNum(2,1,KeyNum,2);}}
}

矩阵键盘密码锁

这应该算是一个小项目了吧。

#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "MatrixKey.h"
unsigned char KeyNum;
unsigned int Password,Count;
void main()
{LCD_Init();LCD_ShowString(1,1,"Password:");while(1){KeyNum=MatrixKey();if(KeyNum){if(KeyNum<=10)//如果s1-s10按键按下,输入密码{if(Count<4)//如果输入次数小于4{Password*=10;//密码左移一位Password+=KeyNum%10;//获取一位密码Count++;//计次加一}LCD_ShowNum(2,1,Password,4);//更新显示}if(KeyNum==11)//如果s11按键按下,确认{if(Password==2345)//如果密码等于正确密码{LCD_ShowString(1,14,"OK ");Password=0;//密码清零Count=0;//计次清零LCD_ShowNum(2,1,Password,4);//更新显示}else{LCD_ShowString(1,14,"ERR");Password=0;//密码清零Count=0;//计次清零LCD_ShowNum(2,1,Password,4);//更新显示}}if(KeyNum==12)//如果s12按键按下,回退(优化直接删除){Password/=10;Count--;LCD_ShowNum(2,1,Password,4);//更新显示}}}
}

时钟

时钟的内部实现还是比较复杂的,这个可能看视频听的比较迷糊,自己私下可以看使用手册的原理图帮助理解。

这个TMOD设值的方法挺巧的

计数器65535溢出,1次是一微妙,所以设置的初值是64535,使它每次清零是一毫秒

计数器一共八位,TH0是高位TL0是地位

#include <REGX52.H>
/*** @brief  定时器0初始化* @param  * @retval */void Timer0Init()
{//TMOD=0x01;//0000 0001TMOD &= 0xF0;//把TMOD的低四位清零,高四位保持不变TMOD |= 0x01;//把TMOD的最低为置一,高四位保持不变TL0 = 0x18;	//设置定时初值TH0 = 0xFC;		//设置定时初值TF0 = 0;		//清除TF0标志TR0 = 1;		//定时器0开始计时ET0=1;EA=1;PT0=0;
}
/*定时器中断函数模板
void Timer0_Routine() interrupt 1
{static unsigned int T0Count;TL0 = 0x18;		//设置定时初值TH0 = 0xFC;		//设置定时初值T0Count++;if(T0Count>=1000){T0Count=0;}
}
*/

控制按键led流水灯

#include <REGX52.H>
#include	"Timer0.h"
#include "Key.h"
#include <INTRINS.H>unsigned char KeyNum,LEDMode;
void main()
{P2=0x0FE;Timer0Init();while(1){KeyNum=Key();if(KeyNum){if(KeyNum==1){LEDMode++;if(LEDMode>=2)LEDMode=0;}}}
}
void Timer0_Routine() interrupt 1
{static unsigned int T0Count;TL0 = 0x18;		//设置定时初值TH0 = 0xFC;		//设置定时初值T0Count++;if(T0Count>=1000){T0Count=0;if(LEDMode==0)P2=_crol_(P2,1);if(LEDMode==1)P2=_cror_(P2,1);}
}

定时器时钟

#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "Timer0.h"unsigned char Sec=55,Min=59,Hour=23;
void main()
{LCD_Init();Timer0Init();LCD_ShowString(1,1,"Clock:");LCD_ShowString(2,1,"  :  :");while(1){LCD_ShowNum(2,1,Hour,2);LCD_ShowNum(2,4,Min,2);LCD_ShowNum(2,7,Sec,2);}}
void Timer0_Routine() interrupt 1
{static unsigned int T0Count;TL0 = 0x18;		//设置定时初值TH0 = 0xFC;		//设置定时初值T0Count++;if(T0Count>=1000){T0Count=0;Sec++;if(Sec>=60){Sec=0;Min++;if(Min>=60){Min=0;Hour++;if(Hour>=24)Hour=0;}}}
}

江协老师讲的东西都很细致,很明白,虽然时间很长,但是有着弹幕先辈的陪伴还是能坚持下来的

相关文章:

嵌入式学习--江协51单片机day3

今天学的东西挺多的&#xff0c;包括&#xff1a;自己设计的小应用&#xff0c;矩阵键盘&#xff0c;矩阵键盘密码锁&#xff0c;控制按键led流水灯&#xff0c;定时器时钟 &#xff08;那个视频真的煎熬&#xff0c;连续两个1小时的简直要命&#xff0c;那个时钟也是听的似懂…...

Linux命令行参数注入详解

本文主要聚焦 Linux 系统及其 ELF 二进制文件&#xff0c;深入探讨参数注入的原理与防范措施。 核心术语解析 在进入主题之前&#xff0c;我们先厘清几个关键术语&#xff0c;以确保理解的准确性&#xff1a; 参数解析器 当程序被调用时&#xff0c;操作系统会向程序的 main…...

【HCIP】----OSPF综合实验

实验题目 实验需求&#xff1a; 1&#xff0c;R5为ISP&#xff0c;其上只能配置IP地址&#xff1b;R4作为企业边界路由器&#xff0c; 出口公网地址需要通过PPP协议获取&#xff0c;并进行chap认证 2&#xff0c;整个OSPF环境IP基于172.16.0.0/16划分&#xff1b; 3&#xff0…...

C++模板笔记

Cpp模板笔记 文章目录 Cpp模板笔记1. 为什么要定义模板2. 模板的定义2.1 函数模板2.1.1 函数模板的重载2.1.2 头文件与实现文件形式&#xff08;重要&#xff09;2.1.3 模板的特化2.1.4 模板的参数类型2.1.5 成员函数模板2.1.6 使用模板的规则 2.2 类模板2.3 可变参数模板 模板…...

二极管的动态特性

主要内容 二极管的单向导电特性并不十分理想&#xff0c;这是因为二极管的本质是有P型半导体和N型半导体接触形成的PN结。 PN结除了除了构成单向到点的二极管外&#xff0c;还存在一个结电容&#xff0c;这个结电容会导致"双向"导电。 也就是说&#xff0c;这会让二…...

WSL(Windows Subsystem for Linux)入门

目录 1.简介2.安装与配置3.常用命令4.进阶使用4.1 文件系统交互4.2 网络互通4.3 配置代理4.4 运行 GUI 程序4.5 Docker 集成 1.简介 WSL 是 Windows 系统内置的 Linux 兼容层&#xff0c;允许直接在 Windows 中运行 Linux 命令行工具和应用程序&#xff0c;无需虚拟机或双系统…...

k8s术语之secret

在kubernetes中&#xff0c;还存在一种和ConfigMap非常类似的对象&#xff0c;称之为Secret对象。它主要用于存储敏感信息&#xff0c;例如密码、密钥、证书等等。 首先使用base64对数据进行编码 rootmaster pvs ]# echo -n admin | base64 YWRtaW4 实例&#xff1a;隐藏mysql密…...

Vue2 中 el-dialog 封装组件属性不生效的深度解析(附 $attrs、inheritAttrs 原理)

Vue2 中 el-dialog 封装组件属性不生效的深度解析&#xff08;附 $attrs、inheritAttrs 原理&#xff09; 在使用 Vue2 和 Element UI 进行组件封装时&#xff0c;我们常会遇到父组件传入的属性不生效的情况&#xff0c;比如在封装的 el-dialog 组件中传入 width"100%&qu…...

使用Compose编排工具搭建Ghost博客系统

序&#xff1a;需要提前自备一台部署好docker环境的虚拟机&#xff0c;了解并熟练compose编排工具 在Centos7中&#xff0c;在线/离线安装Docker&#xff1a;https://blog.csdn.net/2301_82085712/article/details/147140694 Docker编排工具---Compose的概述及使用&#xff1…...

车载网络TOP20核心概念科普

一、基础协议与总线技术 CAN总线 定义&#xff1a;控制器局域网&#xff0c;采用差分信号传输&#xff0c;速率最高1Mbps&#xff0c;适用于实时控制&#xff08;如动力系统&#xff09;。形象比喻&#xff1a;如同“神经系统”&#xff0c;负责传递关键控制信号。 LIN总线 定…...

机器学习第一讲:机器学习本质:让机器通过数据自动寻找规律

机器学习第一讲&#xff1a;机器学习本质&#xff1a;让机器通过数据自动寻找规律 资料取自《零基础学机器学习》。 查看总目录&#xff1a;学习大纲 一、从婴儿学说话说起 &#x1f476; 想象你教1岁宝宝认「狗」&#xff1a; 第一阶段&#xff1a;指着不同形态的狗&#x…...

Android ImageView 加载 Base64编码图片

在 Android 中显示服务端返回的 Base64 编码的 GIF 图片&#xff08;如 data:image/gif;base64,...&#xff09;&#xff0c;需要以下步骤&#xff1a; 首先从字符串中分离出纯 Base64 部分&#xff08;去掉 data:image/gif;base64, 前缀&#xff09;image/gif 表示图片是 gif…...

如何使用 QuickAPI 推动医院数据共享 —— 基于数据仓库场景的实践

目录 01 医疗行业面临的数据孤岛问题 02 QuickAPI&#xff1a;将 SQL 变为数据 API 的利器 03 快速落地的应用实践 ✅ 步骤一&#xff1a;统一 SQL 逻辑&#xff0c;模块化管理 ✅ 步骤二&#xff1a;配置权限与调用策略 ✅ 步骤三&#xff1a;上线并接入调用 04 核心收…...

【5G通信】bwp和redcap 随手记 2

好的&#xff0c;让我们重新解释Cell-Defined BWP (CD BWP) 和 Non-Cell-Defined BWP (NCD BWP)&#xff0c;并结合RedCap终端和非RedCap终端的应用进行说明。 一、定义 Cell-Defined BWP (CD BWP) 定义&#xff1a;由网络&#xff08;基站&#xff09;通过RRC信令为终端配置的…...

AI时代企业应用系统架构的新思路与CIO变革指南

作为制造企业CIO&#xff0c;我们看问题需要有前瞻性&#xff0c;AI时代企业应用系统架构需要进行全面转型。 一、新思想与新技术 1. 核心新思想 可视化开发AI的融合模式&#xff1a;不再只依赖纯代码开发或传统低代码&#xff0c;而是两者结合&#xff0c;通过AI理解自然语…...

kotlin JvmName注解的作用和用途

1. JvmName 注解的作用 JvmName 是 Kotlin 提供的一个注解&#xff0c;用于在编译为 Java 字节码时自定义生成的类名或方法名。 作用对象&#xff1a; 文件级别&#xff08;整个 .kt 文件&#xff09;函数、属性、类等成员 主要用途&#xff1a; 控制 Kotlin 编译后生成的 JV…...

为什么强调 RESTful 的无状态性?-优雅草卓伊凡

为什么强调 RESTful 的无状态性&#xff1f;-优雅草卓伊凡 RESTful 架构的核心原则之一是 无状态性&#xff08;Statelessness&#xff09;&#xff0c;它要求 每次客户端请求必须包含服务器处理该请求所需的所有信息&#xff0c;服务器不会存储客户端的状态&#xff08;如会话…...

信息系统项目管理工程师备考计算类真题讲解十五

一、决策论问题 分析&#xff1a;首先要明白几个概念&#xff1a; 1&#xff09;最大最大准则&#xff08;Maxmax&#xff09;:也称乐观主义准则&#xff0c;其决策原则为“大中取大” 2&#xff09;最大最小准则&#xff08;Maxmin&#xff09;:也称悲观主义准则&#xff0c…...

android-ndk开发(9): undefined reference to `__aarch64_ldadd4_acq_rel` 报错分析

1. 概要 基础库 libbase.a 基于 android ndk r18b 编译&#xff0c; 被算法库 libfoo.so 和算法库 libbar.a 依赖&#xff0c; 算法库则分别被 libapp1.so 和 libapp2.so 依赖。 libapp1.so 的开发者向 libfoo.so 的开发者反馈了链接报错&#xff1a; error: undefined symb…...

Java 对象克隆(Object Cloning)详解

Java 对象克隆(Object Cloning)详解 对象克隆是指创建一个对象的精确副本,Java 提供了两种克隆方式:浅克隆(Shallow Clone)和深克隆(Deep Clone)。下面从实现原理、使用场景到注意事项全面解析。 一、克隆的基本概念 1. 为什么要克隆? 需要对象副本时避免修改原始对…...

Asp.Net Core IIS发布后PUT、DELETE请求错误405

一、方案1 1、IIS管理器&#xff0c;处理程序映射。 2、找到aspNetCore&#xff0c;双击。点击请求限制...按钮&#xff0c;并在谓词选项卡上&#xff0c;添加两者DELETE和PUT. 二、方案2 打开web.config文件&#xff0c;添加<remove name"WebDAVModule" />&…...

AI搜索的未来:技术纵深发展与关键突破路径

一、模型架构的颠覆性重构 ‌1、混合专家系统&#xff08;MoE&#xff09;的工程化突破‌ ‌动态路径选择‌&#xff1a;Google Gemini 1.5 Pro采用MoE架构&#xff0c;其门控网络(Gating Network)通过实时计算输入token与128个专家模型的余弦相似度&#xff0c;动态分配计算资…...

从艾米・阿尔文看 CTO 的多面特质与成长路径

在《对话 CTO&#xff0c;驾驭高科技浪潮》的开篇&#xff0c;艾米・阿尔文的经历如同一扇窗&#xff0c;为我们展现出首席技术官丰富而立体的世界。通过深入探究这一章节&#xff0c;我们能洞察 CTO 在技术领域前行所需的特质、面临的挑战&#xff0c;以及成长发展的脉络。 一…...

记录阿里云服务器搭建FTP服务器的注意事项

在阿里云服务器上&#xff08;centos&#xff09;系统&#xff0c;使用vsftpd搭建了一台FTP服务器。 搭建过程中&#xff0c;也留意到了操作防火墙放行端口。但搭建成功后&#xff0c;仍无法访问。 问题是&#xff1a;还需要在阿里云控制台设置一下。 在此记录。 1、登陆账…...

第二章 Logback的架构(三)

Logger, Appenders 和 Layouts 工作原理概述 在介绍了基本的Logback组件之后&#xff0c;我们现在可以描述当用户调用Logger的打印方法时&#xff0c;Logback框架日志请求的执行步骤。 现在让我们分析一下当用户调用名为com.wombat的Logger的info()方法时&#xff0c;Logback…...

第十六届蓝桥杯大赛软件赛C/C++大学B组部分题解

第十六届蓝桥杯大赛软件赛C/C大学B组题解 试题A: 移动距离 问题描述 小明初始在二维平面的原点&#xff0c;他想前往坐标(233,666)。在移动过程中&#xff0c;他只能采用以下两种移动方式&#xff0c;并且这两种移动方式可以交替、不限次数地使用&#xff1a; 水平向右移动…...

服务器数据恢复—Linux操作系统服务器意外断电导致部分文件丢失的数据恢复

服务器数据恢复环境&故障&#xff1a; 一台安装linux系统的服务器意外断电。管理员重启服务器后进行检测&#xff0c;发现服务器上部分文件丢失。管理员没有进行任何操作&#xff0c;直接将服务器正常关机并切断电源。 服务器数据恢复过程&#xff1a; 1、北亚企安数据恢复…...

技术视界 | 青龙机器人训练地形详解(三):复杂地形精讲之台阶

在前两篇中&#xff0c;我们依次讲解了“如何创建一个地形”以及“如何将地形添加到训练环境中”。从基础出发&#xff0c;逐步构建机器人可交互的三维仿真环境。在机器人强化学习训练中&#xff0c;地形的复杂度决定了策略的泛化能力&#xff0c;仅靠 jump_plat 和 jump_pit 等…...

Android 位掩码操作(和~和|的二进制运算)

在 Android 开发中&#xff0c;位掩码操作通过二进制位的逻辑运算实现高效的状态管理。以下以 &&#xff08;与&#xff09;、|&#xff08;或&#xff09;和 ~&#xff08;非&#xff09;运算符为例&#xff0c;详细说明其二进制计算过程&#xff1a; 一、按位与 & 运…...

【JS逆向基础】前端基础-HTML与CSS

1&#xff0c;flask框架 以下是一个使用flask框架写成的serve程序 # noinspection PyUnresolvedReferences #Flash框架的基本内容from flask import Flask app Flask(__name__)app.route(/index) def index():return "hello index"app.route(/login) def login():re…...

高速供电,一步到位——以太联-Intellinet 9口2.5G PoE++非管理型交换机_562140:网络升级的理想之选

在数字化浪潮席卷全球的当下&#xff0c;高速稳定的网络连接已成为企业运营、家庭娱乐以及各类智能场景正常运转的基石。从企业办公场景中员工对高效协同办公的追求&#xff0c;到家庭环境里用户对流畅高清视频、在线游戏的渴望&#xff0c;再到智慧城市建设中大量监控设备、无…...

rom定制系列------红米note12 5G版miui14修改型号root版 原生安卓14批量线刷固件 原生安卓15等

红米Note 12 5G机型也称为 Note 12R Pro&#xff0c;机型代码&#xff1a;sunstone 高通骁龙4 Gen1八核处理器适用于以下型号的小米机型&#xff1a;22111317G, 22111317I, 22101317C miui14稳定版 14.0.10安卓13固件 根据客户需求&#xff0c;采用miui最后一个版本。修改以…...

机器学习 数据集

数据集 1. scikit-learn工具介绍1.1 scikit-learn安装1.2 Scikit-learn包含的内容 2 数据集2.1 sklearn玩具数据集介绍2.2 sklearn现实世界数据集介绍2.3 sklearn加载玩具数据集示例1&#xff1a;鸢尾花数据示例2&#xff1a;分析糖尿病数据集 2.4 sklearn获取现实世界数据集示…...

JVM运行时数据区域(Run-Time Data Areas)的解析

# JVM运行时数据区域(Run-Time Data Areas)的解析 欢迎来到我的博客&#xff1a;TWind的博客 我的CSDN:&#xff1a;Thanwind-CSDN博客 我的掘金&#xff1a;Thanwinde 的个人主页 本文参考于&#xff1a;深入理解Java虚拟机&#xff1a;JVM高级特性与最佳实践 本文的JVM均…...

python基础:序列和索引-->Python的特殊属性

一.序列和索引 1.1 用索引检索字符串中的元素 # 正向递增 shelloworld for i in range (0,len(s)):# i是索引print(i,s[i],end\t\t) print(\n--------------------------) # 反向递减 for i in range (-10,0):print(i,s[i],end\t\t)print(\n--------------------------) print(…...

在k8s中,如何实现服务的访问,k8s的ip是变化的,怎么保证能访问到我的服务

在K8S中&#xff0c;Pod的IP动态变化确实无法直接通过固定IP限制访问&#xff0c;但可以通过标签&#xff08;Label&#xff09;、服务&#xff08;Service&#xff09;和网络策略&#xff08;NetworkPolicy&#xff09;的组合&#xff0c;实现动态身份识别的访问控制&#xff…...

用NVivo革新企业创新:洞悉市场情绪,引领金融未来

在当今快速变化的商业环境中&#xff0c;理解市场和客户的情感脉动是企业成功的关键。尤其在金融行业&#xff0c;无论是评估经济走势、股票市场波动&#xff0c;还是洞察消费者信心&#xff0c;精准把握隐藏在新闻报道、社交媒体和消费者反馈中的情感倾向至关重要。而NVivo这款…...

如何使用极狐GitLab 软件包仓库功能托管 helm chart?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 软件包库中的 Helm charts (BASIC ALL) WARNING:Helm chart 库正在开发中&#xff0c;由于功能有限&#xff0c;尚未准备好用…...

Qt 通过控件按钮实现hello world + 命名规范(7)

文章目录 使用编辑框来完成 hello world通过编辑图形化界面方式通过纯代码方式 通过按钮的方式来创建 hello world通过编辑图形化界面方式通过纯代码方式 总结Qt Creator中的快捷键如何使用文档命名规范 简介&#xff1a;这篇文章着重点并不在于创建hello world程序&#xff0c…...

uniapp index.html怎么改都不生效

打开 manifest.json index.html 模板路径默认为空&#xff0c;所以你改的 index.html 是没用的&#xff0c;uni-app 根本没用这个模板 设置模板后就会生效了...

ABP vNext + gRPC 实现服务间高速通信

ABP vNext gRPC 实现服务间高速通信 &#x1f4a8; 在现代微服务架构中&#xff0c;服务之间频繁的调用往往对性能构成挑战。尤其在电商秒杀、金融风控、实时监控等对响应延迟敏感的场景中&#xff0c;传统 REST API 面临序列化负担重、数据体积大、通信延迟高等瓶颈。 本文…...

【JAVA】十三、基础知识“接口”精细讲解!(三)(新手友好版~)

目录 1. Object类 1.1 Object的概念 1.2 Object例子 2. toString 2.1 toString的概念 2.2 为什么要重写toString 2.3 如何重写toString 3. 对象比较equals方法 3.1 equals( ) 方法的概念 3.2 Object类中的默认equals实现 3.3 如何正确重写equals方法 4. hashCode方…...

每周靶点分享:Angptl3、IgE、ADAM9及文献分享:抗体的多样性和特异性以及结构的新见解

本期精选了《脂质代谢的关键调控者Angptl3》《T细胞活化抑制因子VISTA靶点》《文献分享&#xff1a;双特异性抗体重轻链配对设计》三篇文章。以下为各研究内容的概述&#xff1a; 1. 脂质代谢的关键调控者Angptl3 血管生成素相关蛋白3&#xff08;Angptl3&#xff09;是血管生…...

网络协议之DHCP和PXE分析

写在前面 本文看下DHCP和PXE相关内容。 1&#xff1a;正文 不知道你自己手动配置过IP地址没有&#xff0c;在Linux的环境中可以通过如下的命令们来进行配置&#xff1a; $ sudo ifconfig eth1 10.0.0.1/24 $ sudo ifconfig eth1 up以及&#xff1a;$ sudo ip addr add 10.0…...

SSH 服务部署指南

本指南涵盖 OpenSSH 服务端的安装、配置密码/公钥/多因素认证&#xff0c;以及连接测试方法。 适用系统&#xff1a;Ubuntu/Debian、CentOS/RHEL 等主流 Linux 发行版。 1. 安装 SSH 服务端 Ubuntu/Debian # 更新软件包索引 sudo apt update# 安装 OpenSSH 服务端 sudo apt i…...

表达式求值(算法题)

#include <bits/stdc.h> // 引入常用头文件 using namespace std;stack<int> num; // 存储操作数的栈 stack<char> op; // 存储运算符的栈/* 执行一次运算操作&#xff1a;1. 从num栈弹出两个操作数(n2先弹出&#xff0c;作为右操作数)2. 从op栈弹出运算符…...

IO流--13--MultipartFile

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 MultipartFile1. 概述2. 常用方法解析2.1 getName方法2.2 getOriginalFileName方法2.3 getContentType方法2.4 isEmpty方法2.5 getSize方法2.6 getBytes方法2.7 get…...

leetcode 242. Valid Anagram

题目描述 因为s和t仅仅包含小写字母&#xff0c;所以可以开一个26个元素的数组用来做哈希表。不过如果是unicode字符&#xff0c;那就用编程语言自带的哈希表。 class Solution { public:bool isAnagram(string s, string t) {int n s.size();if(s.size() ! t.size())return …...

内核态函数strlcpy及strscpy以及用户态函数strncpy

一、背景 编写C程序时有一类看似简单实则经常暗藏漏洞的问题就是字符串的处理。对于字符串的处理&#xff0c;常用的函数如strcpy&#xff0c;sprintf&#xff0c;strcat等&#xff0c;这些函数的区别无外乎就是处理\0结尾相关的逻辑。字符串的长度有时候并不能很好确定&#…...

Matlab 车辆四自由度垂向模型平稳性

1、内容简介 Matlab221-车辆四自由度垂向模型平稳性 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略基于Simulink的汽车平顺性仿真_1_杜充 基于Simulink的汽车平顺性仿真分析_谢俊淋...