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

蓝桥杯模块综合——高质量讲解AT24C02,BS18B20,BS1302,AD/DA(PCF8591),超声波模块

AT24C02——就是一个存储的东西,可以给他写东西,掉电不丢失。

void EEPROM_Write(unsigned char * EEPROM_String,unsigned char addr , unsigned char num)
{IIC_Start();IIC_SendByte(0xA0);IIC_WaitAck();IIC_SendByte(addr);IIC_WaitAck();while(num--){IIC_SendByte(*EEPROM_String++);IIC_WaitAck();IIC_Delay(200);}IIC_Stop();
}
void EEPROM_Read(unsigned char * EEPROM_String,unsigned char addr , unsigned char num)
{IIC_Start();IIC_SendByte(0xA0);IIC_WaitAck();IIC_SendByte(addr);IIC_WaitAck();IIC_Start();IIC_SendByte(0xA1);IIC_WaitAck();while(num--){*EEPROM_String++=IIC_RecByte();if(num) IIC_SendAck(0);//·¢ËÍÓ¦´ðelse IIC_SendAck(1);}IIC_Stop();
}

这个是这个代码,先开始IIC看他在不在(0xA0)等待应答,然后发送要写的页,和字节。然后发送然后等待 停止。

读——

一样的是先开始,然后找他,等待,然后写入页,然后IIC开始,进入读模式,然后等待。然后将读的东西给,数组。if num==0 就停止应答

下面是测试代码:

#include <STC15F2K60S2.H>
#include <iic.h>
void EEPROM_Write(unsigned char * EEPROM_String,unsigned char addr , unsigned char num);
void EEPROM_Read(unsigned char * EEPROM_String,unsigned char addr , unsigned char num);
unsigned char code Duan[22]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,
0xc6,0xc0,0x86,0x8e,0xbf,0x7f,0XC1,0X8C,0XC8,0xc3};
unsigned char dat[2]={30,60},keynum;
void Delay(unsigned int t)
{while(t--);}
void suocun(unsigned char n)
{switch(n){case 4:P2=(P2 & 0x1f)|0x80;break;case 5:P2=(P2 & 0x1f)|0xa0;break;case 6:P2=(P2 & 0x1f)|0xc0;break;case 7:P2=(P2 & 0x1f)|0xe0;break;}
}
void smg(unsigned char wei,unsigned char shu)
{suocun(6);P0=0x01<<wei;suocun(7);P0=Duan[shu];Delay(500);P0=0xff;
}
void shuma()
{smg(0,dat[0]/10);Delay(100);smg(1,dat[0]%10);Delay(100);smg(6,dat[1]/10);Delay(100);smg(7,dat[1]%10);Delay(100);
}
void jvzhen()
{P30=P31=P32=P33=1;P34=P35=P42=1;P44=0;if(P33==0){Delay(100);keynum=4;while(P33==0){shuma();}}if(P32==0){Delay(100);keynum=5;while(P32==0){shuma();}}if(P31==0){Delay(100);keynum=6;while(P31==0){shuma();}}if(P30==0){Delay(100);keynum=7;while(P30==0){shuma();}}
}
void zhixing()
{if(keynum==4){dat[0]+=10;keynum=0;}if(keynum==5){dat[0]-=10;keynum=0;}if(keynum==6){EEPROM_Write(dat,0,2);keynum=0;}}
void EEPROM_Write(unsigned char * EEPROM_String,unsigned char addr , unsigned char num)
{IIC_Start();IIC_SendByte(0xA0);IIC_WaitAck();IIC_SendByte(addr);IIC_WaitAck();while(num--){IIC_SendByte(*EEPROM_String++);IIC_WaitAck();IIC_Delay(200);}IIC_Stop();
}
void EEPROM_Read(unsigned char * EEPROM_String,unsigned char addr , unsigned char num)
{IIC_Start();IIC_SendByte(0xA0);IIC_WaitAck();IIC_SendByte(addr);IIC_WaitAck();IIC_Start();IIC_SendByte(0xA1);IIC_WaitAck();while(num--){*EEPROM_String++=IIC_RecByte();if(num) IIC_SendAck(0);//·¢ËÍÓ¦´ðelse IIC_SendAck(1);}IIC_Stop();
}void main()
{EEPROM_Read(dat,0,2);while(1){shuma();jvzhen();zhixing();}
}

 DS18B20——温度读取

float read_t()
{unsigned char low,high;init_ds18b20();Write_DS18B20(0xcc);Write_DS18B20(0x44);init_ds18b20();Write_DS18B20(0xcc);Write_DS18B20(0xbe);low = Read_DS18B20();high = Read_DS18B20();return ((high<<8)|low)/16.0;}

下面是测试代码,可能会有温度显示不正常,一直是85,就是DS18B20的Delay不正常,要在里面有一句 t*=12

#include <STC15F2K60S2.H>
#include <onewire.h>
#include <intrins.h>
sbit s0 = P3^0;
sbit s1 = P3^1;
sbit s2 = P3^2;
sbit s3 = P3^3;sbit r0 = P3^4;
sbit r1 = P3^5;
sbit r2 = P4^2;
sbit r3 = P4^4;
float t=31.5;
unsigned char keynum;
unsigned char code Duan[22]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,
0xc6,0xc0,0x86,0x8e,0xbf,0x7f,0XC1,0X8C,0XC8,0xc3};
void Delay750ms()		//@12.000MHz
{unsigned char i, j, k;_nop_();_nop_();i = 35;j = 51;k = 182;do{do{while (--k);} while (--j);} while (--i);
}void Delaysmg(unsigned int t)
{while(t--);
}
void Delayjan(unsigned char t)
{while(t--);
}
void suocun(unsigned char n)
{switch(n){case 4:P2 = (P2 & 0x1f) | 0x80; break;case 5:P2 = (P2 & 0x1f) | 0xa0; break;case 6:P2 = (P2 & 0x1f) | 0xc0; break;case 7:P2 = (P2 & 0x1f) | 0xe0; break;case 0:P2 = (P2 & 0x1f) | 0x00; break;}
}
void shuma(unsigned char wei,unsigned char shu)
{suocun(6);P0=0x01<<wei;suocun(0);suocun(7);P0=Duan[shu];Delaysmg(1000);P0=0xff;suocun(0);
}
void shumadong()
{t = read_t();shuma(5,(int)t/10%10);Delaysmg(500);shuma(6,(int)t%10);Delaysmg(500);shuma(7,(int)(t*10)%10);Delaysmg(500);}
void Delay_Key(unsigned char t)
{while(t--);
}
void jvzhen()
{s0=0;s1=s2=s3=1;r0=r1=r2=r3=1;if(r3==0){while(r3==0);keynum=0;shumadong();}
//=============================s0=0;s1=s2=s3=1;r0=r1=r2=r3=1;if(r2==0){while(r2==0);keynum=1;shumadong();}
//=============================s0=0;s1=s2=s3=1;r0=r1=r2=r3=1;if(r1==0){while(r1==0);keynum=2;shumadong();}
//=============================s0=0;s1=s2=s3=1;r0=r1=r2=r3=1;if(r2==0){while(r2==0);keynum=2;shumadong();}
//=========================================================s1=0;s0=s2=s3=1;r0=r1=r2=r3=1;if(r3==0){while(r3==0);keynum=3;shumadong();}
//=============s1=0;s0=s2=s3=1;r0=r1=r2=r3=1;if(r2==0){while(r2==0);keynum=4;shumadong();}
//=============s1=0;s0=s2=s3=1;r0=r1=r2=r3=1;if(r1==0){while(r1==0);keynum=5;shumadong();}
//====================================s2=0;s0=s1=s3=1;r0=r1=r2=r3=1;if(r3==0){while(r3==0);keynum=6;shumadong();}
//===================s2=0;s0=s1=s3=1;r0=r1=r2=r3=1;if(r2==0){while(r2==0);keynum=7;shumadong();}
//====================s2=0;s0=s1=s3=1;r0=r1=r2=r3=1;if(r1==0){while(r1==0);keynum=8;shumadong();}
//=================================s3=0;s0=s1=s2=1;r0=r1=r2=r3=1;if(r3==0){while(r3==0);keynum=9;shumadong();}
}
void main()
{while(1){shumadong();}
}

DS1302——时间的计时

unsigned char wirter[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};
unsigned char read[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};
//20Äê18ÈÕ  ÖÜÁù 23.59.24
unsigned char Timer[7]={0x24,0x59,0x23,0x18,0x04,0x06,0x20};
unsigned char code Duan[22]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,
0xc6,0xc0,0x86,0x8e,0xbf,0x7f,0XC1,0X8C,0XC8,0xc3};
void Delaysmg(unsigned int t)
{while(t--);
}
void Ds1302()
{char i;Write_Ds1302_Byte(0x8e,0x00);for (i=0;i<7;i++){Write_Ds1302_Byte(wirter[i],Timer[i]);}Write_Ds1302_Byte(0x8e,0x80);
}
void readds()
{char i;for(i=0;i<7;i++){Timer[i]=Read_Ds1302_Byte(read[i]);}
}

 写入有七个地址,读也是七个,然后存入数据 ,,上面我是 2020年周六4月18日,23分59分24秒

刚刚好七位,就是分别写入七个地址。

下面是测试代码:

#include <STC15F2K60S2.H>
#include <ds1302.h>
unsigned char wirter[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};
unsigned char read[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};
//20Äê18ÈÕ  ÖÜÁù 23.59.24
unsigned char Timer[7]={0x24,0x59,0x23,0x18,0x04,0x06,0x20};
unsigned char code Duan[22]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,
0xc6,0xc0,0x86,0x8e,0xbf,0x7f,0XC1,0X8C,0XC8,0xc3};
void Delaysmg(unsigned int t)
{while(t--);
}
void Ds1302()
{char i;Write_Ds1302_Byte(0x8e,0x00);for (i=0;i<7;i++){Write_Ds1302_Byte(wirter[i],Timer[i]);}Write_Ds1302_Byte(0x8e,0x80);
}
void readds()
{char i;for(i=0;i<7;i++){Timer[i]=Read_Ds1302_Byte(read[i]);}
}
void suocun(unsigned char n)
{switch(n){case 4:P2=(P2 & 0x1f)|0x80;break;case 5:P2=(P2 & 0x1f)|0xa0;break;case 6:P2=(P2 & 0x1f)|0xc0;break;case 7:P2=(P2 & 0x1f)|0xe0;break;case 0:P2=(P2 & 0x1f)|0x00;break;}
}
void smg(unsigned char wei,unsigned char shu)
{suocun(6);P0=0x01<<wei;suocun(7);P0=Duan[shu];Delaysmg(500);P0=0xff;
}
void xianshi()
{smg(0,Timer[2]/16);Delaysmg(100);smg(1,Timer[2]%16);Delaysmg(100);smg(3,Timer[1]/16);Delaysmg(100);smg(4,Timer[1]%16);Delaysmg(100);smg(6,Timer[0]/16);Delaysmg(100);smg(7,Timer[0]%16);Delaysmg(100);}
void main()
{Ds1302();while(1){readds();xianshi();}
}

PCF8591——数模转换 AD/DA

unsigned char Ad_read(unsigned char addr)
{unsigned char temp;IIC_Start();IIC_SendByte(0x90);//дÈëIIC_WaitAck();IIC_SendByte(addr);//Òª¶ÁµÄÊÇIIC_WaitAck();IIC_Start();IIC_SendByte(0x91);//¶ÁIIC_WaitAck();temp = IIC_RecByte();IIC_SendAck(1);IIC_Stop();return temp;
}void Da_write(unsigned char dat)
{IIC_Start();IIC_SendByte(0x90);//дÈëIIC_WaitAck();IIC_SendByte(0x41);//ʹÄÜDACIIC_WaitAck();IIC_SendByte(dat);//дÈëIIC_WaitAck();IIC_Stop();
}

经典的IIC。

读——

开始IIC,发送找到模块(0x90),等待,然后从哪里读数据,等待,然后IIC开始读,停止响应,然后IIC停止。

写——

开始 写数据,写入到0x41(0x43)等待响应,写入,然后写入。

测试代码:

#include <STC15F2K60S2.H>
#include <iic.h>
unsigned char code Duan[22]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,
0xc6,0xc0,0x86,0x8e,0xbf,0x7f,0XC1,0X8C,0XC8,0xc3};
unsigned char dat;
void Delay(unsigned int t)
{while(t--);
}
void suocun(unsigned char n)
{switch(n){case 4:P2=(P2 & 0x1f)|0x80;break;case 5:P2=(P2 & 0x1f)|0xa0;break;case 6:P2=(P2 & 0x1f)|0xc0;break;case 7:P2=(P2 & 0x1f)|0xe0;break;}	
}
void shuma(unsigned char wei,unsigned char shu)
{suocun(6);P0=0x01<<wei;suocun(7);P0=Duan[shu];Delay(500);P0=0xff;
}
void xianshi()
{shuma(1,1);Delay(100);shuma(2,2);Delay(100);
}
void chuli()
{dat=Ad_read(0x43);shuma(0,dat/100%10);Delay(100);shuma(1,dat/10%10);Delay(100);shuma(2,dat%10);Delay(100);}
void main()
{while(1){chuli();}
}

超声波——

左边发松所以左边为TX ,右边为RX

void Ut_Wave_init()
{unsigned char i;for(i=0;i<8;i++){TX=1;Delay12us();TX=0;Delay12us();}
}
unsigned char Ut_Wave_Data()
{unsigned int time;TMOD &= 0x0f;TH1=TL1=0;Ut_Wave_init();TR1=1;while((RX==1)&&(TF1 == 0));TR1=0;if(TF1==0){time = TH1<<8|TL1;return (time*0.017);}else{TF1=0;return 0;}
}

发送一个方波信号,

然后就是用定时器1去完成,波的计算。发送完成之后开启定时器,然后等待,如果RX==0 或者计数溢出(TF1=1)就会退出,停止计数。得到TH1和TL1。然后输出距离.

实例代码:

#include <STC15F2K60S2.H>
#include <intrins.h>
sbit TX = P1^0;
sbit RX = P1^1;
floatjvli;
unsigned char code Duan[22]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,
0xc6,0xc0,0x86,0x8e,0xbf,0x7f,0XC1,0X8C,0XC8,0xc3};void Delay12us()		//@12.000MHz
{unsigned char i;_nop_();_nop_();i = 33;while (--i);
}
void Delay(unsigned int t)
{while(t--);
}
void suocun(unsigned char n)
{switch(n){case 4:P2= (P2 & 0x1f)|0x80;break;case 5:P2= (P2 & 0x1f)|0xa0;break;case 6:P2= (P2 & 0x1f)|0xc0;break;case 7:P2= (P2 & 0x1f)|0xe0;break;}
}
void smg(unsigned char wei,unsigned char shu)
{suocun(6);P0=0x01<<wei;suocun(7);P0=Duan[shu];Delay(500);P0=0xff;
}
void Ut_Wave_init()
{unsigned char i;for(i=0;i<8;i++){TX=1;Delay12us();TX=0;Delay12us();}
}
unsigned char Ut_Wave_Data()
{unsigned int time;TMOD &= 0x0f;TH1=TL1=0;Ut_Wave_init();TR1=1;while((RX==1)&&(TF1 == 0));TR1=0;if(TF1==0){time = TH1<<8|TL1;return (time*0.017);}else{TF1=0;return 0;}
}
void xianshi()
{smg(1,(int)jvli/100%10);Delay(100);smg(2,(int)jvli/10%10);Delay(100);smg(3,(int)jvli%10);Delay(100);}
void main()
{while(1){jvli=Ut_Wave_Data();xianshi();}
}

相关文章:

蓝桥杯模块综合——高质量讲解AT24C02,BS18B20,BS1302,AD/DA(PCF8591),超声波模块

AT24C02——就是一个存储的东西&#xff0c;可以给他写东西&#xff0c;掉电不丢失。 void EEPROM_Write(unsigned char * EEPROM_String,unsigned char addr , unsigned char num) {IIC_Start();IIC_SendByte(0xA0);IIC_WaitAck();IIC_SendByte(addr);IIC_WaitAck();while(nu…...

前端跨平台开发框架:简化多端开发的利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

cesium.js加载模型后,重新设置旋转角度属性值

// 加载模型var position Cesium.Cartesian3.fromDegrees(longitude, latitude, height);// 计算矩阵var rollAngleDegrees 15; // 设置翻滚角度var rollAngleRadians Cesium.Math.toRadians(rollAngleDegrees); // 将角度转换为弧度var orientation Cesium.Transforms.eas…...

②免费AI软件开发工具测评:通义灵码 VS 码上飞

前言 我又双叒叕来测评了&#xff01;上次给大家带来的是iFlyCode和CodeFlying两款产品的测评&#xff0c;受到了大家的一致好评~ 今天咱就继续来聊聊&#xff0c;这次我们选的的对象是通义灵码和码上飞&#xff0c;从名字上也能看到出来这两款产品一定是跟软件开发有关系的&…...

幻兽帕鲁游戏搭建(docker)

系列文章目录 第一章&#xff1a; 幻兽帕陆游戏搭建 文章目录 系列文章目录前言一、镜像安装1.创建游戏目录2.拉取镜像3.下载配置文件4.启动游戏 二、自定义配置总结 前言 这段时间一直在写论文还有找工作&#xff0c;也没学啥新技术&#xff0c;所以博客也很长时间没写了&am…...

unity报错出现Asset database transaction committed twice!

错误描述&#xff1a; 运行时报错 Assertion failed on expression: ‘m_ErrorCode MDB_MAP_RESIZED || !HasAbortingErrors()’Asset database transaction committed twice!Assertion failed on expression: ‘errors MDB_SUCCESS || errors MDB_NOTFOUND’ 解决办法&…...

去除项目git的控制 端口号的关闭

以下操作都是在windows下。只是记录一下。 find . -name “.git” | xargs rm -rf 查看所有分支 git branch -a 查看当前分支 git branch -a 切换分支 git chenkout develop docker 查看容器的ip docker inspect -f ‘{{.Name}} - {{range .NetworkSettings.Networks}}{{.IP…...

交叉注意力融合时域、频域特征的FFT + CNN -BiLSTM-CrossAttention电能质量扰动识别模型

往期精彩内容&#xff1a; 电能质量扰动信号数据介绍与分类-Python实现-CSDN博客 Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(三)基于Transformer…...

简单的Charles抓包教程

安装Charles 安装地址&#xff1a;https://www.charlesproxy.com/download/ 开关本机抓包 一般我们在抓取手机端内容时需要将Proxy菜单栏下的Windows Proxy取消勾选&#xff0c;禁止charles抓取本机上的请求信息。 注&#xff1a;开启电脑端抓包后&#xff0c;会为电脑添加局…...

如何构建Docker自定义镜像

说明&#xff1a;平常我们使用Docker运行各种容器&#xff0c;极大地方便了我们对开发应用的使用&#xff0c;如MySQL、Redis&#xff0c;以及各种中间件&#xff0c;使用时只要拉镜像&#xff0c;运行容器即可。本文介绍如何创建一个Demo&#xff0c;自定义构建一个镜像。 开…...

一起学数据分析_2

写在前面&#xff1a;代码运行环境为jupyter&#xff0c;如果结果显示不出来的地方就加一个print()函数。 一、数据基本处理 缺失值处理&#xff1a; import numpy as np import pandas as pd#加载数据train.csv df pd.read_csv(train_chinese.csv) df.head()# 查看数据基本…...

请解释Redis是什么?它有哪些主要应用场景?Redis支持哪些数据类型?并描述每种数据类型的特性和使用场景。

请解释Redis是什么&#xff1f;它有哪些主要应用场景&#xff1f; Redis是一款内存高速缓存NoSQL数据库&#xff0c;使用C语言编写&#xff0c;它支持丰富的数据类型&#xff0c;如String、list、set、zset、hash等&#xff0c;并且这些数据类型都直接支持数据的原子性操作&…...

在centos8中部署Tomcat和Jenkins

参考链接1&#xff1a;tomcat安装和部署jenkins_jenkins和tomcat-CSDN博客 参考链接2&#xff1a;--配置开机启动tomcat文件 x​​​​​​超详细&#xff1a;Centos8安装Tomcat并配置开机自动启动_centos设置tomcat开机自启-CSDN博客文章浏览阅读4.4k次&#xff0c;点赞4次&…...

机器学习模型—K means

文章目录 机器学习模型—K means聚类的目标k 均值原理k 均值 的实现手动实现Python 实现K 的确定 手肘法总结机器学习模型—K means K-Means 聚类是一种无监督机器学习算法,它将未标记的数据集分为不同的簇。本文旨在探讨 k 均值聚类的基本原理和工作原理以及实现。 无监督机…...

QT UI设计

在QT中添加VTK 在main函数中初始化 //VTK的初始化语句 #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL); VTK_MODULE_INIT(vtkInteractionStyle); VTK_MODULE_INIT(vtkRenderingVolumeOpenGL); VTK_MODU…...

前端小白的学习之路(CSS3 一)

提示&#xff1a;CSS3 是 Cascading Style Sheets&#xff08;层叠样式表&#xff09;的第三个主要版本&#xff0c;引入了许多新的特性和增强功能&#xff0c;用于设计和布局网页。本章记录CSS3新增选择器&#xff0c;盒子模型。 目录 一、C3新增选择器 1) 属性选择器 1.[c…...

春暖花开,一起来看看2024年品牌春分海报吧!

春分&#xff08;Vernal equinox&#xff09;已至&#xff0c;春花烂漫、燕子归来、百草回芽。 今天我们要分享的是2024年品牌发布的春分节气海报合集&#xff0c;快来随我们一起感受这昂扬、蓬勃的春意吧! &#xff08;1&#xff09;泸州老窖 &#xff08;2&#xff09;BD…...

golang面试题总结

零、go与其他语言 0、什么是面向对象 在了解 Go 语言是不是面向对象&#xff08;简称&#xff1a;OOP&#xff09; 之前&#xff0c;我们必须先知道 OOP 是啥&#xff0c;得先给他 “下定义” 根据 Wikipedia 的定义&#xff0c;我们梳理出 OOP 的几个基本认知&#xff1a; …...

BUGKU-WEB shell

题目描述 题目截图如下&#xff1a; 描述&#xff1a; $poc "a#s#s#e#r#t";$poc_1 explode("#", $poc);$poc_2 $poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5];$poc_2($_GET[s])进入场景看看&#xff1a;是一个空白的界面 解题思路 …...

系统重构后,对项目定制开发的兼容性问题

公司自实施产品线战略以来&#xff0c;基本推翻了全部旧有业务模块。后续以标准产品二次开发的模式进行项目开发。但在涉及到一些旧有系统二期、三期升级改造过程中。不可避免的需要解决旧有系统的客户定制化开发兼容性问题。也就是旧有系统定制开发的模块不能丢弃。重新开发从…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...