入门51单片机(1)-----点灯大师梦开始的地方
前言
这一次的博客主要是要记录一下学习的记录的,方便以后去复习一下的,当然这篇博客还是针于零基础的伙伴萌,看完这篇博客,大家就可以学会点灯了。
安装软件
方法一下一下来教!!萌新宝贝萌可以学会的!帮大家省省时间呗!
1.官网下载
Keil Embedded Development Tools for Arm, Cortex-M, Cortex-R4, 8051, C166, and 251 processor families.
这里点击后,就进入了网页了。
点击后,要填写信息,之后可以下载,这里呢,官网下载可以下载可以最新的版本!!
2.百度网盘下载安装包、
这里推荐去b站的江科大,那里直接下载,好吧!我们直接把江科大的链接发一发。
资料下载
这样就有安装包了,事实上,keil5的安装很简单,不需要额外的操作,只是注意一下安装路径
自己可以改一改安装路径。当然这里的所有步骤都可以去江科大那边看看。
我这里直接提出就是安装过程中可能会遇到的问题,来节省大家的时间,大家提前留一个心眼。
在解压破解软件的安装包,或是下载软件的时候,一定要关闭杀毒软件,特别是破解软件的时候,这一步很容易有问题
如果是windos11系统的话可以在这里恢复被删除的文件。
下载软件就这里最恶心,其他地方都很简单的,没什么难度。
建立项目
这一步也不难,非常简单,快速的来一遍。
第一步:点击project,点击New uvision project
第二步:.新建一个文件夹。
第三步:点击进去,给项目取名,一般取project,点击保存。
第四步:选择芯片,这里要根据你买的芯片来选择,这里我们买的是江科大的芯片。
选择Atmel这一个选项下的AT8952,这里不要选错了。
然后选择否,不要它的启动文件。
然后就是这个样子。
第五步:新建一个c文件
这里取名一般去main,表示c语言中的主函数。
这样就可以开始我们的点灯了!!!!!
这里已经非常详细了。就是还没有说到破解软件的操作,其实也简单。这里就不说了。因为视频效率更高!!
实验
1.点亮一个led灯
右键插入头文件,也就是库。这里有单片的一些引脚,外设之类的,可以直接调用的。
然后我们要看原理图才可以点灯!!
这里不必说完全看懂电路图,只要知道一些东西就可以了。左边是共阳极也就是说左边是高电平,然后右边是引脚,io口。
在单片机中有很多寄存器,我们可以通过寄存器来控制各个引脚的高低电平,寄存器的值可以通过代码来改。只要p20~p27其中一个引脚变成低电平,那么对应的led灯就会点亮!!
那么看看代码如何实现:
先看看头文件,有没有。
跳转后这里有P2的类型了。
这是一个8位寄存器:p2_0,p2_1,p2_2........分别代表的是它的第0位,第一位,第二位等等一共8位。
只要改变其中一位就可以改变灯泡的亮灭了。
OK,直接,举例吧!!
#include <REGX52.H>void main()
{while(1)P2_0=0;
}
先点第一个,再点第二个。
第一次使用要,点击这个锤子,然后勾选ouput,再然后选择creat HEX File这里是创建目标文件,下载程序时要使用。
这里的型号要选择正确,根据自己的单片机型号来选择。
然后要选择文件
最后可以下载,但是下载之前,先关闭电源,再下载,再打开就完成了点灯了。
这里就完成了点灯l,非常简单的。
因为语句是执行一次的,把它置零了,那么他就一定是低电平。
如果是p2_0->D1,p2_1->2,不同的单片机点灯都各不同,这里还有另外一个点灯的方法。
同样是以点亮d1为例。注意呀P是大写!!!!!!
P2=0xFE;
因为p2是一个8位寄存器,那么d1对应最后一位所以只要这一位是电平即可:1111 1110 =0xFE这里是16进制写法。
这样的只是写法不同而已。
2.循环点灯实验
这里我认为呢?可以使用c语言的位运算来做的。
直接看代码:如果不会c语言的可以看看之前写的c语言博客。位运算不难的!
#include <REGX52.H>
#include <INTRINS.H>void Delayms(int ms) //@11.0592MHz
{unsigned char i, j;while(ms--){ _nop_();i = 2;j = 199;do{while (--j);} while (--i);}
}
void main()
{while(1){int i=0;for(;i<8;++i){ int a=0xFF;a-=(1<<i);P2=a;Delayms(100);P2=0xFF;Delayms(100);}}
}
讲解一下呗!好的兄弟!
这里如何的delay函数是可以生成的。
可以去看看自己单片机得到主频,这里可以看到,然后去STC-ISP中自动生成延时函数。
这里主频是根据自己的来,指令集选择STC-Y1,这里不懂为什么是这样的。
然后可以选择时间,我们可以选择1ms,然后传入一个参数代表时间,添加一个循环就可以实现任意时间的延时。
这里的延时函数就是这样生成的。延时在单片机的引用是很重要的。然后再来说一说代码的含义。
这里还要注意:变量的声明只能在前面,如果在后面会报错的!!!注意看是不是所有的变量声明全部都在其他语句的前面。
循环8次,移位的次数是0~7,分别代表d1~d7的点亮,这就是思路。
3.按键控制点灯实验
按键介绍:
解释一下
p3.1代表是k1 p3.0 k2 p3.2 k3 p3.3 k4这里就是独立按键的对应关系
这里的RXD TXD其实就是p3_1 p3_0,可以从最小系统上看到。当按下时电路导通,端口才是低电平。
按键会有一个按下和松开的一个时间
所以开始和结束都有延时,我们要主动添加延时!!
那么看代码吧!
这里要实现的功能是按下k1灯往右移,按下k2灯往左移。
void main()
{int count=0;P2=0XFE;while(1){ if(P3_1==0){Delayms(20);while(P3_1==0);Delayms(20);count++;if(count>=8)count=0;P2=~(1<<count); }if(P3_0==0){Delayms(20);while(P3_0==0);Delayms(20);count--;if(count<=-1)count=7;P2=~(1<<count); }}
}
很好解释的,也是位运算的结果,首先当按钮没有按下时,这个p3_0是高电平,当按下的瞬间,会有一个缓冲作用,所以要延时一下,然后使用while()目的是只有松开后才执行程序,然后再缓冲一定的时间,防止这段程序被执行多次,这样的话可以保证按一下执行一次,对吧!这是我的理解。
然后,让count++,1左移count位,代表想要点亮的灯,最后取反,因为是低电平才会点亮,所以取反。很简单的。可以试试。
4.数码管显示数字实验
这个有点复杂了呀!
但是也好说的!!
我们的目的是:实现对任意一个数码管,显示任意的数字。
原理解释:直接说,这里所有的数码管的负极是共阳极的,也就说只有一个数码管可以被点亮的。
共阳极是段选,COM是片选,是通过3-8译码器来片选的。
举例:000->Y0 001->Y1 010->Y2等等,这样通过二进制枚举。
选用的端口是p2_2 p2_3 p2_4这是片选
来看看段选
这是一个表格,对应不同的位,用到的主要端口是p0。好看代码吧!
这里还是要解释,
int Numarr[]={0x3f,0x30,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6f};
void DigitalCube(int Position,int Num)
{switch(Position){case 1:P2_2=1;P2_3=1;P2_4=1;break;case 2:P2_2=0;P2_3=1;P2_4=1;break;case 3:P2_2=1;P2_3=0;P2_4=1;break;case 4:P2_2=0;P2_3=0;P2_4=1;break;case 5:P2_2=1;P2_3=1;P2_4=0;break;case 6:P2_2=0;P2_3=1;P2_4=0;break;case 7:P2_2=1;P2_3=0;P2_4=0;break;case 8:P2_2=0;P2_3=0;P2_4=0;break; }P0=Numarr[Num];//片选 段选 片选 段选//在两个直接会有重叠,因为第一个段暄会和第二个片选和在一起,会重影//所以必须要清零,但是直接清零会偏暗Delayms(1);//所以要延时P0=0;
}
片选 段选 片选 段选
在两个直接会有重叠,因为第一个段暄会和第二个片选和在一起,会重影
所以必须要清零,但是直接清零会偏暗
所以要延时
这里已经很细致了。
5.实现一个点击按钮,使数码管递增的代码(从0~99999999)
int Numarr[]={0x3f,0x30,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6f};
void Delayms(int ms) //@11.0592MHz
{unsigned char i, j;while(ms--){ _nop_();i = 2;j = 199;do{while (--j);} while (--i);}
}
void DigitalCube(int Position,int Num)
{switch(Position){case 1:P2_2=1;P2_3=1;P2_4=1;break;case 2:P2_2=0;P2_3=1;P2_4=1;break;case 3:P2_2=1;P2_3=0;P2_4=1;break;case 4:P2_2=0;P2_3=0;P2_4=1;break;case 5:P2_2=1;P2_3=1;P2_4=0;break;case 6:P2_2=0;P2_3=1;P2_4=0;break;case 7:P2_2=1;P2_3=0;P2_4=0;break;case 8:P2_2=0;P2_3=0;P2_4=0;break; }P0=Numarr[Num];Delayms(1);//Á¢¼´ÇåÁã»áµ¼ÖÂÊýÂë¹ÜÆ«°µP0=0;
}
void main()
{int arr[8]={0};while(1){int i;if(P3_1==0){Delayms(20);while(P3_1==0);Delayms(20);for(i=0;i<8;++i){if(arr[i]<9){arr[i]++;break;}else {while(i<8&&arr[i]==9){i++;}if(i==8){memset(arr,0,sizeof(arr));break;}arr[i]++;i--;while(i>=0){arr[i]=0;i--;}break;}} }i=7;for(;arr[i]<=0;){--i;}switch(i){case 0:{DigitalCube(1,arr[0]);break;}case 1:{DigitalCube(1,arr[0]);DigitalCube(2,arr[1]);break;}case 2:{DigitalCube(1,arr[0]);DigitalCube(2,arr[1]);DigitalCube(3,arr[2]);break;}case 3:{DigitalCube(1,arr[0]);DigitalCube(2,arr[1]);DigitalCube(3,arr[2]);DigitalCube(4,arr[3]);break;}case 4:{DigitalCube(1,arr[0]);DigitalCube(2,arr[1]);DigitalCube(3,arr[2]);DigitalCube(4,arr[3]);DigitalCube(5,arr[4]);break;}case 5:{DigitalCube(1,arr[0]);DigitalCube(2,arr[1]);DigitalCube(3,arr[2]);DigitalCube(4,arr[3]);DigitalCube(5,arr[4]);DigitalCube(6,arr[5]);break;}case 6:{DigitalCube(1,arr[0]);DigitalCube(2,arr[1]);DigitalCube(3,arr[2]);DigitalCube(4,arr[3]);DigitalCube(5,arr[4]);DigitalCube(6,arr[5]);DigitalCube(7,arr[6]);break;}case 7:{DigitalCube(1,arr[0]);DigitalCube(2,arr[1]);DigitalCube(3,arr[2]);DigitalCube(4,arr[3]);DigitalCube(5,arr[4]);DigitalCube(6,arr[5]);DigitalCube(7,arr[6]);DigitalCube(8,arr[7]);break;}}
}
}
这个代码是自己想到的。
看图吧!
可以实现按键使得数码管递增。
这个思路有点麻烦,但是注意这里是后面位对应高位,前面是低位哦。
这样就完成点灯大师的工作了。
简单说说思路:就是用一个8位数组,每次点击更新数组,然后使用数组的数据来更新数码管。这样就实现了这个功能了。
但是我这里反向的,是适合计算机的读取顺序,不适合人类的读取顺序的。可以反向遍历也可以得到结果这里就不改了。
相关文章:
入门51单片机(1)-----点灯大师梦开始的地方
前言 这一次的博客主要是要记录一下学习的记录的,方便以后去复习一下的,当然这篇博客还是针于零基础的伙伴萌,看完这篇博客,大家就可以学会点灯了。 安装软件 方法一下一下来教!!萌新宝贝萌可以学会的!帮…...
[1-01-09].第08节:基础语法 - 数组常见算法 + Arrays工具类 + 数组中常见异常
一、 数组的常见算法 1.1 数值型数组特征值统计 这里的特征值涉及到:平均值、最大值、最小值、总和等 **举例1:**数组统计:求总和、均值 public class TestArrayElementSum {public static void main(String[] args) {int[] arr {4,5,6,…...
dnf install openssl失败的原因和解决办法
网上有很多编译OpenSSL源码(3.x版本)为RPM包的文章,这些文章在安装RPM包时都是执行rpm -ivh openssl-xxx.rpm --nodeps --force 这个命令能在缺少依赖包的情况下能强行执行安装 其实根据Centos的文档,安装RPM包一般是执行yum install或dnf install。后者…...
UE5 Chaos :官方文献总结 + 渲染网格体 (Render Mesh) 和模拟网格体 是如何关联的?为什么模拟网格体 可以驱动渲染网格体?
官方文献:https://dev.epicgames.com/community/learning/tutorials/pv7x/unreal-engine-panel-cloth-editor 1. 流程概述 本文档介绍了如何通过面板编辑器(Panel Editor)在Unreal Engine中生成基于面板的布料资源。流程主要包含从Marvelou…...
Swift观察机制新突破:如何用AsyncSequence实现原子化数据监听?
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...
Lombok库
文章目录 Lombok1.介绍2.主要注解2.1如何使用 Lombok2.1.1添加依赖2.1.2 使用Lombok注解2.1.3Lombok的其他常用注解ValueBuilderGoF23种设计模式之一:建造模式使用Builder注解自动生成建造模式的代码 SingularSlf4j使用选择合适的注解 Lombok 1.介绍 Lombok 是一个…...
算法思想之模拟
欢迎拜访:雾里看山-CSDN博客 本篇主题:算法思想之模拟 发布时间:2025.4.14 隶属专栏:算法 目录 滑动窗口算法介绍核心特点常见问题优化方向 例题替换所有的问号题目链接题目描述算法思路代码实现 提莫攻击题目链接题目描述算法思路…...
Windows 系统如何使用Redis 服务
前言 在学习过程中,我们长期接触到的是Mysql 关系型数据库,也是够我们平时练习项目用的,但是后面肯定会有大型数据的访问就要借助新的新的工具。 一、什么是Redis Redis(Remote Dictionary Server)是一个基于内存的 键…...
2025年常见渗透测试面试题-红队面试宝典上(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 一、如何判断是否是域环境? 二、定位域控的 IP 三、定位域管所在机器 四、Kerberos 核心…...
Base64在线编码解码 - 加菲工具
Base64在线编码解码 - 加菲工具 打开网站 加菲工具 选择“Base64 在线编码解码” 或者直接打开https://www.orcc.top/tools/base64 输入需要编码/解码的内容,点击“编码”/“解码”按钮 编码: 解码: 复制已经编码/解码后的内容。...
前端面试宝典---闭包
闭包介绍 使用闭包: 在函数内声明一个变量,避免外部访问在该函数内再声明一个函数访问上述变量(闭包)返回函数内部的函数使用完毕建议闭包函数null;译放内存 function createCounter() {let count 0;return function () {coun…...
算法:有一个整数数组,长度为n。她希望通过一系列操作将数组变成一个回文数组。
小红有一个整数数组,长度为n。她希望通过一系列操作将数组变成一个回文数组。每次操作可以选择数组中任意两个相邻的元素 ai和 ai1,将它们的值同时加一。请你计算至少需要多少次操作使得数组变成一个回文数组。如果不可能,则输出-1。否则输出…...
数字人:开启医疗领域的智慧变革新时代(5/10)
摘要:数字人技术作为医疗变革的基石,通过多学科融合实现虚拟医生、手术模拟、医学教育等多元应用,贯穿诊前、术中、术后全流程,显著提升医疗效率、优化资源分配、推动个性化服务。尽管面临技术、伦理、数据安全等挑战,…...
正则表达式在线校验(RegExp) - 加菲工具
正则表达式在线校验 - 加菲工具 打开网站 加菲工具 选择“正则表达式在线校验” 或者直接打开https://www.orcc.top/tools/regexp 输入待校验的源文本与正则表达式,点击“校验”按钮 需要注意检验后的内容可能存在多空格,可以拉下去看看~...
某车企面试备忘
记录两个关于Binder的问题,我感觉面试官提的非常好,作一下备忘。 1.通过Binder进行的IPC(进程间通信)是线程阻塞的吗? 参考答案: Binder是Android平台的一种跨进程通信(IPC)机制&…...
从Ampere到Hopper:GPU架构演进对AI模型训练的颠覆性影响
一、GPU架构演进的底层逻辑 AI大模型训练效率的提升始终与GPU架构的迭代深度绑定。从Ampere到Hopper的演进路径中,英伟达通过张量核心升级、显存架构优化、计算范式革新三大技术路线,将LLM(大语言模型)训练效率提升至…...
【JavaEE】SpringBoot 统一功能处理
目录 一、拦截器1.1 使用1.1 定义拦截器1.2 注册配置拦截器 1.2 拦截器详解1.2.1 拦截路径1.2.2 拦截器执⾏流程 1.3 适配器模式 二、统一数据返回格式2.1 简单用法2.2 问题及解决 三、统一异常处理 一、拦截器 拦截器:拦截器是Spring框架提供的核⼼功能之⼀&#…...
杨辉三角(力扣 118)
118. 杨辉三角 - 力扣(LeetCode) 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1 输出: [[1]] vector<vector<int>> generate(int numRows) { //生成有numRows个元素(vector<in…...
三周年创作纪念日
文章目录 回顾与收获三年收获的五个维度未来的展望致谢与呼唤 亲爱的社区朋友们,大家好! 今天是 2025 年 4 月 14 日,距离我在 2022 年 4 月 14 日发布第一篇技术博客《SonarQube 部署》整整 1,095 天。在这条创作之路上,我既感慨…...
[c语言日记]轮转数组算法(力扣189)
【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…...
【Unity笔记】Unity超时检测器开发:支持自定义重试次数与事件触发
在Unity游戏或应用开发中,我们经常会遇到需要检测超时的场景,比如: 等待用户在限定时间内完成某个交互;等待网络请求或资源加载是否在规定时间内返回;控制AI角色等待某个事件发生,超时后执行备选逻辑。 在…...
【微服务管理】注册中心:分布式系统的基石
在分布式系统日益普及的当下,如何高效地管理众多服务实例成为关键问题。注册中心应运而生,它犹如分布式系统的 “指挥中枢”,承担着服务注册、发现等核心任务,为整个系统的稳定运行和高效协作提供坚实保障。本文将深入探讨注册中心…...
P10413 [蓝桥杯 2023 国 A] 圆上的连线
题意: 给定一个圆,圆上有 n2023 个点从 1 到 n 依次编号。 问有多少种不同的连线方式,使得完全没有连线相交。当两个方案连线的数量不同或任何一个点连接的点在另一个方案中编号不同时,两个方案视为不同。 答案可能很大&#x…...
计算机操作系统——存储器管理
系列文章目录 1.存储器的层次结构 2.程序的装入和链接 3.连续分配存储管理方式(内存够用) 4.对换(Swapping)(内存不够用) 5.分页存储管理方式 6.分段存储管理方式 文章目录 系列文章目录前言一、存储器的存储结构寄存器&…...
TCPIP详解 卷1协议 四 地址解析协议
4.1——地址解析协议(ARP) 对于TCP/IP网络,地址解析协议(ARP)[RFC0826]提供了一种在IPv4地址和各种网络技术使用的硬件地址之间的映射。ARP仅用于IPv4。IPv6使用邻居发现协议,它被合并入ICMPv6。当两个局域网的主机之间传输的以太…...
履带小车+六轴机械臂(2)
本次介绍原理图部分 开发板部分,电源供电部分,六路舵机,PS2手柄接收器,HC-05蓝牙模块,蜂鸣器,串口,TB6612电机驱动模块,LDO线性稳压电路,按键部分 1、开发板部分 需要注…...
耘想WinNAS:以聊天交互重构NAS生态,开启AI时代的存储革命
一、传统NAS的交互困境与范式瓶颈 在传统NAS(网络附加存储)领域,用户需通过复杂的图形界面或命令行工具完成文件管理、权限配置、数据检索等操作,学习成本高且效率低下。例如,用户若需搜索特定文件,需手动…...
如何通过自动化解决方案提升企业运营效率?
引言 在现代企业中,运营效率直接影响着企业的成本、速度与竞争力。尤其是随着科技的不断发展,传统手工操作和低效的流程逐渐无法满足企业的需求。自动化解决方案正成为企业提升运营效率、降低成本和提高生产力的关键。无论是大型跨国公司,还…...
【笔记ing】AI大模型-03深度学习基础理论
神经网络:A neural network is a network or circuit of neurons,or in a modern sense,an artificial neural network,composed of artificial neurons or nodes.神经网络是神经元的网络或回路,或者在现在意义上来说,是一个由人工神经元或节…...
Spring-注解编程
注解基础概念 1.什么是注解编程 指的是在类或者方法上加入特定的注解(XXX) 完成特定功能的开发 Component public classXXX{} 2.为什么要讲注解编程 1.注解开发方便 代码简洁 开发速度大大提高 2.Spring开发潮流 Spring2.x引入注解 Spring3.x完善注解 Springboot普及 推广注解…...
大数据学习栈记——MongoDB安装
本文介绍NoSQL技术:MongoDB的安装。操作系统:Ubuntu24.04 MongoDB介绍 MongoDB是一个基于分布式文件存储的数据库,由C语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之…...
linux 系统编程基础部分 day1
常用指令 创建修改用户组 查看当前用户组:whoami 创建用户 sudo adduser 用户 sudo addgroup 组名 添加权限:chmod [u,g,o,a][x,w,r] 数字表示法r4 w2 x1 chmod 471 每个权限种类想加 给文件换所属用户 chown 新用户名 文件名 chgrp …...
访问不到服务器上启动的llamafactory-cli webui
采用SSH端口转发有效,在Windows上面进行访问 在服务器上启动 llamafactory-cli webui 后,访问方式需根据服务器类型和网络环境选择以下方案: 一、本地服务器(物理机/虚拟机) 1. 直接访问 若服务器与操作设备处于同一…...
论文阅读笔记——Generating Long Sequences with Sparse Transformers
Sparse Transformer 论文 解决了 Transformer 在长序列建模时的计算开销和内存过大的问题。 可视化了一个 128 层自注意力在 CIFAR-10 的数据集上学习到的注意力模式,发现:1)稀疏性普遍存在:大多数层在多数数据点上表现出稀疏注意…...
【信息系统项目管理师】高分论文:论信息系统项目的整合管理(旅游景区导游管理平台)
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文一、制定项目章程二、制订项目管理计划三、指导和管理项目工作四、管理项目知识五、监控项目工作六、实施整体变更控制七、结束项目或阶段论文 在国家《中国旅游“十三五”发展规划信息化专项规划的背景下…...
C++ 用红黑树封装map/set
前言 一、源码结构分析 二、模拟实现map/set 2.1 套上KeyOfT 2.2 普通迭代器实现 2.3 const迭代器实现 2.4 解决key不能修改的问题 2.5 map的[]实现 2.6 map/set以及红黑树源码 2.6.1 RBTree.h 2.6.2 set.h 2.6.3 map.h 总结 前言 之前的文章讲解了红黑树的具体实…...
VirtualBox虚拟机与主机之间无法复制粘贴的问题
插入出现问题,需要把其他的dvd弹出,比如系统安装镜像。 https://www.cnblogs.com/jianmuzi/p/17788084.html...
【HDFS入门】HDFS核心组件Secondary NameNode角色职责与运行机制解析
目录 1 Secondary NameNode的角色定位与常见误解 2 核心职责详解 2.1 核心功能职责 2.2 与NameNode的协作关系 3 运行机制深度剖析 3.1 检查点触发机制 3.2 元数据合并流程 4 与Hadoop 2.0 HA架构的对比 5 配置调优指南 5.1 关键配置参数 5.2 性能优化建议 6 实践应…...
AI知识补全(十六):A2A - 谷歌开源的agent通信协议是什么?
名人说:一笑出门去,千里落花风。——辛弃疾《水调歌头我饮不须劝》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:AI知识补全(十五):AI可解…...
OOM问题排查和解决
问题 java.lang.OutOfMemoryError: Java heap space 排查 排查手段 jmap命令 jmap -dump,formatb,file<file-path> <pid> 比如 jmap -dump:formatb,file./heap.hprof 44532 使用JVisualVM工具: JVisualVM是一个图形界面工具,它可以帮…...
黑马头条day01
1)课程对比 2)项目概述 2.1)能让你收获什么 2.2)项目课程大纲 2.3)项目概述 随着智能手机的普及,人们更加习惯于通过手机来看新闻。由于生活节奏的加快,很多人只能利用碎片时间来获取信息,因此,对于移动资讯客户端的需求也越来越…...
关于IDEA中使用ctrl跳转源码出现???的解决方案
最近在学习大数据相关课程的时候使用ctrl查看源码时出现源码是问号的情况。写一篇博客来分享一下自己的解决方案: 但我使用ctrl查看源码的时候具体函数的细节使用???来代替,而且点击上方的Download按钮没有反应,这个时候我们需要手动指定…...
第三方API——Spring Boot 集成阿里云短信发送功能
目录 一. 创建阿里云OSS服务并获取密钥,开通短信服务 1.1 注册阿里云服务器 1.2 开通短信服务 1.3 创建对象存储OSS服务 1.4 RAM用户授权短信权限 1.5 新增用户并授权用户短信权限 1.6 获取 AccessKey ID 和 AccessKey Secret 二. 创建项目集成短信发送 2.1…...
【C++】前向声明(Forward Declaration)
前向声明(Forward Declaration)是在C、C等编程语言中,在使用一个类、结构体或其他类型之前,仅声明其名称而不给出完整定义的一种方式。 作用 减少编译依赖:当一个源文件包含大量头文件时,编译时间会显著增…...
Golang|抽奖相关
文章目录 抽奖核心算法生成抽奖大转盘抽奖接口实现 抽奖核心算法 我们可以根据 单商品库存量/总商品库存量 得到每个商品被抽中的概率,可以想象这样一条 0-1 的数轴,数轴上的每一段相当于一种商品,概率之和为1。 抽奖时,我们会生…...
10.第二阶段x64游戏实战-添加计时器
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:9.第二阶段x64游戏实战-创建项目代码获取人物属性 效果图: 当前游戏…...
fbx/obj/glb/gltf/b3dm等通用格式批量转换成osgb
fbx/obj/glb/gltf/b3dm等通用格式批量转换成osgb fbx/obj/glb/gltf/b3dm等通用格式批量转换成osgb...
打造AI应用基础设施:Milvus向量数据库部署与运维
目录 打造AI应用基础设施:Milvus向量数据库部署与运维1. Milvus介绍1.1 什么是向量数据库?1.2 Milvus主要特点 2. Milvus部署方案对比2.1 Milvus Lite2.2 Milvus Standalone2.3 Milvus Distributed2.4 部署方案对比表 3. Milvus部署操作命令实战3.1 Milv…...
使用WindSurf生成贪吃蛇小游戏:从零开始的开发之旅
在当今数字化时代,编程已经成为一项必备技能,而创建游戏无疑是学习编程过程中最具趣味性的项目之一。今天,我将向大家介绍如何使用WindSurf这款强大的代码生成工具来快速生成一个经典的贪吃蛇小游戏。从下载软件到运行游戏,我们将…...
论文学习:《EVlncRNA-net:一种双通道深度学习方法,用于对实验验证的lncRNA进行准确预测》
原文标题:EVlncRNA-net: A dual-channel deep learning approach for accurate prediction of experimentally validated lncRNAs 原文链接:https://www.sciencedirect.com/science/article/pii/S0141813025020896 长链非编码RNA( long non-coding RNAs&…...