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

proteus+51单片机+AD/DA学习5

目录

1.DA转换原理

1.1基本概念

1.1.1DA的简介

1.1.2DA0832芯片

1.1.3PCF8591芯片

1.2代码

1.2.1DAC8053的代码

1.2.2PCF8951的代码

1.3仿真

1.3.1DAC0832的仿真

1.3.2PFC8951的仿真

2.AD转换原理

2.1AD的基本概念

2.1.1AD的简介

2.1.2ADC0809的介绍

2.1.3XPT2046芯片介绍

​编辑​编辑2.2AD代码

2.2.1PFC8591代码

2.3仿真实验

1.DA转换原理

1.1基本概念

1.1.1DA的简介

  • DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转换为模拟信号
  • D/A转换一般由电阻解码网络、模拟电子开关、基准电压、运算放大器等组成。按电阻解码网络的组成形式,将DA转换器分成有权电阻解码网络D/A转换器、T型电阻解码网络D/A转换器、倒T型电阻解码网络D/A转换器和开关树型电阻解码网络D/A转换器等。 
  • DAC的分类

(1)从数码数上看,有8位、10位、12位、16位、24位等。

(2)在输出形式上,有:电压输出型和电流输出型

(3)按输入是否含有锁存器分为:内部无锁存器和内部有锁存器形式

(4)按数字量的输入形式分为:并行总线D/A转换器和串行总线D/A转换器

(5)按转换时间分为:超高速DAC(转换时间<100ns)、较高速DAC(100ns~1us)、高速(1μs~10μs
中速DAC(10μS~100μs)、低速DAC(>100us)等。

  • DAC的性能指标

(1)分辨率:指AD/DA数字量的精细程度,通常用位数表示。例如,对于5V电源系统来说,8位的AD可将5V等分为256份,即数字量变化最小一个单位时,模拟量变化5V/256=0.01953125V,所以,8位AD的电压分辨率为0.01953125V,AD/DA的位数越高,分辨率就越高

(2)转换速度:表示AD/DA的最大采样/建立频率,通常用转换频率或者转换时间来表示,对于采样/输出高速信号,应注意AD/DA的转换速度

(3)建立时间:建立时间是描述D/A转换器转换速度的参数,表明转换时间长短。其值为从输入数字量到输出达到终值误差正负(1/2)LSB(最低有效位)时所需的时间。电流输出的转换时间较短,而电压输出的转换器,由于要加上完成I-V转换的时间,因此建立时间要长一些。快速D/A转换器的建立时间可控制在1s以下。

(4)转换精度:理想情况下,转换精度与分辨率基本一致,位数越多精度越高。但由于电源电压、基准电压、电阻、制造工艺等各种因素存在误差。严格地讲,转换精度与分辨率并不完全一致。两个相同位数的不同的DAC,只要位数相同,分辨率则相同,但转换精度会有所不同。

1.1.2DA0832芯片

  • DAC0832芯片内部的框图

(1)DAC0832的内部结构如图所示,内部有两级数据缓冲器(8位输入寄存器和8位DAC寄存器)和一个8位D/A转换器以及门控电路。内部无参考电源需外接;输出电流型,要获得电压输出需外加转换电路。各引脚含义如下:

  • T型电阻网络DA转换器(8位DA转换器)

 (1)当数字量D7~D0为1时,开关将会移向1,为0时将会开关在0

 (2)由右边的电阻2R//2R的并联后的阻值为R,再加上串联的电阻R,形成2R的电阻。再依次与输入数据的高位 电阻并联得到总阻值为R了。因此总的电流为I=\frac{V_{REF}}{R}

 (3)进行分流操作时,两个并联电阻的流经的电流是相等的,串联的电流是两个并联电流之和。依次形成从D7~D0的电流位权。即D7的电流是D6电流的两倍,最后合成总的输出电流。形成一个8位的二进制数

(4)最终的每一位电流的大小的计算公式为\frac{V_{REF}}{256*R},总的电流除以2的8次方

(5)当Ref=R时,输出电压V_{o}=-\frac{D7-D0}{256}×V_{REF},即输出电压为Io1与反馈电阻的乘积

  • DAC的芯片引脚

\bar{WR1}写信号1
\bar{WR2}写信号2
\bar{CS}片选信号
\bar{XFER}数据传送控制信号输入线,低电平有效。
DI0~DI7(DI0为最低位)8位数字量输入端
R_{FB}I-V转换时的外部反馈信号输入端,内部己有反馈电阻Rfb,根据需要也可外接反馈电阻。
I_{out1}模拟电流输出线1,它是数字量输入为“1”的模拟电流输出端。输入数字量全为“1”时,I_{out1}最大,
I_{out2}模拟电流输出线2,它是数字量输入为“0”的模拟电流输出端,I_{out2}+I_{out1}=常数
V_{REF}基准电压输入线。电压范围为-10V~+10V。
V_{CC}工作电源输入端,可接+5V~+15V电源。

AGND

DGND

模拟地。最好与基准电压共地

数字地。

 (1)当LE=1,CS*=0,WR1*=0时,即M1=1,第一级8位输入寄存器被选中。待转换的数字信号被锁存到第一级8位输入寄存器中。

(2)当XFER*=0,WR2*=0时,第一级8位输入寄存器中待转换数字进入第二级8位DAC寄存器中。

1.1.3PCF8591芯片

  •  PCF8591是具有I2C总线接口的8位A/D及D/A 转换器。PCF8591有4个模拟输入、1个模拟输出和1个I²C总线接口。PCF8591有3个地址引脚A0, A1和A2,用于硬件地址设定,这允许在一条I2C总线上接入8个PCF8591器件。
  • 链接:PCF8591+I2C DA转换 实现PWM方波、三角波以及实现呼吸灯_哔哩哔哩_bilibiliPCF8591+I2C DA转换 实现PWM方波、三角波以及实现呼吸灯是51单片机入门教程+Proteus嵌入式开发入门实战视频教程2024新版的第21集视频,该合集共计23集,视频收藏或关注UP主,及时了解更多相关视频内容。icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1uN411M7PB/?p=21&spm_id_from=333.880.my_history.page.click
  • DAC的芯片概述

AIN0~ AIN3
模拟信号输入管脚。
A0~ A2
硬件地址设定管脚
VDD
接电源(2.5V6V)正极
VSS
接电源(2.5V6V)负极,即GND
VREF
基准电源端
AOUT
D/A 转换输出端
SDA
I2C 总线的数据线
SCL
I2C 总线的时钟线。
OSC
外部时钟输入端,内部时钟输出端。
EXT内部、外部时钟选择线,使用内部时钟时EXT 接地。内部、外部时钟选择线,使用内部时钟时EXT 接地。
AGND模拟信号地
  • PFC8951的设备地址

​​​​​​

  • PFC8951的D/A转换

1.2代码

1.2.1DAC8053的代码

//方波的生成代码
//单片机采用定时器定时中断,时间常数决定方波高、低电平持续时间
void DAC_test_PWM()
{P2=0;          //PWM波的低电平的时间即0VDelay_ms(50);  //高电平持续时间P2=255;        //输出PWM的最大值即参考电压的5VDelay_ms(10);  //低电平持续时间
}//单片机把初始数据0送DAC0832后,数据不断增1,增至0xff后,再增1则溢出清“0”,
//模拟输出又为0,然后再重复上述过程,如此循环,则输出锯齿波。
//生成锯齿波
void DAC_Test_sawetooth_wave()
{unsigned int i;for(i=0;i<256;i++){P2=i;}
}//生成三角波
//单片机把初始数字量0送DAC0832后,不断增1,增至0xff后,然后从0xff
//再把送给DAC0832的数字量不断减1,减至0后,再重复上述过程。
void DAC_Test_triangular_wave()
{int i;for(i=0;i<255;i++){P2=i;}for(i=255;i>0;i--){P2=i;}
}//正弦表
unsigned char code sin[]={0x7F,0x82,0x85,0x88,0x8B,0x8F,0x92,0x95,0x98,0x9B,0x9E,0xA1,0xA4,0xA7,0xAA,0xAD
,0xB0,0xB3,0xB6,0xB8,0xBB,0xBE,0xC1,0xC3,0xC6,0xC8,0xCB,0xCD,0xD0,0xD2,0xD5,0xD7
,0xD9,0xDB,0xDD,0xE0,0xE2,0xE4,0xE5,0xE7,0xE9,0xEB,0xEC,0xEE,0xEF,0xF1,0xF2,0xF4
,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFB,0xFC,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE
,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFD,0xFD,0xFC,0xFB,0xFB,0xFA,0xF9,0xF8,0xF7,0xF6
,0xF5,0xF4,0xF2,0xF1,0xEF,0xEE,0xEC,0xEB,0xE9,0xE7,0xE5,0xE4,0xE2,0xE0,0xDD,0xDB
,0xD9,0xD7,0xD5,0xD2,0xD0,0xCD,0xCB,0xC8,0xC6,0xC3,0xC1,0xBE,0xBB,0xB8,0xB6,0xB3
,0xB0,0xAD,0xAA,0xA7,0xA4,0xA1,0x9E,0x9B,0x98,0x95,0x92,0x8F,0x8B,0x88,0x85,0x82
,0x7F,0x7C,0x79,0x76,0x73,0x6F,0x6C,0x69,0x66,0x63,0x60,0x5D,0x5A,0x57,0x54,0x51
,0x4E,0x4B,0x48,0x46,0x43,0x40,0x3D,0x3B,0x38,0x36,0x33,0x31,0x2E,0x2C,0x29,0x27
,0x25,0x23,0x21,0x1E,0x1C,0x1A,0x19,0x17,0x15,0x13,0x12,0x10,0x0F,0x0D,0x0C,0x0A
,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00
,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08
,0x09,0x0A,0x0C,0x0D,0x0F,0x10,0x12,0x13,0x15,0x17,0x19,0x1A,0x1C,0x1E,0x21,0x23
,0x25,0x27,0x29,0x2C,0x2E,0x31,0x33,0x36,0x38,0x3B,0x3D,0x40,0x43,0x46,0x48,0x4B
,0x4E,0x51,0x54,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x73,0x76,0x79,0x7C};
//生成正弦波
void DAC_Test_sine_wave()
{unsigned int i;for(i=0;i<256;i++){P2=sin[i];}
}

1.2.2PCF8951的代码

void PCF8951_DAC(unsigned char Data)
{I2C_Start();         //iic开始I2C_sendByte(0x90);  //iic写信号I2C_ReceiveAck();    //等待一应答I2C_sendByte(0x40);  //发送控制位I2C_ReceiveAck();    //等待应答I2C_sendByte(Data);  //发送数据电压值I2C_ReceiveAck();    //等待应答I2C_end();           //iiC停止
}void PWM()
{PCF8951_DAC(255);Delay1us(10000);PCF8951_DAC(0);Delay1us(10000);
}

1.3仿真

1.3.1DAC0832的仿真

1.3.2PFC8951的仿真

2.AD转换原理

2.1AD的基本概念

2.1.1AD的简介

  • AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号。AD转换通常有多个输入通道,用多路选择开关连接至AD转换器,以实现AD多路复用的目的,提高硬件利用率

  • ​​​​​AD转换器的主要性能指标

​​​​​​​(1)分辨率:ADC的分辨率是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如12位ADC的分辨率就是12位,或者说分辨率为满刻度FS的1/2^{12}。 一个10V满刻度的12位ADC能分辨输入电压变化最小值是10V×1/2^{12}=2.4mV。

(2)量化误差:ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。实际上,要准确表示模拟量,ADC的位数需很大甚至无穷大。一个分辨率有限的ADC的阶梯状转换特性曲线与具有无限分辨率的ADC转换特性曲线(直线)之间的最大偏差即是量化误差。

(3)偏移误差:偏移误差是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差假定ADC没有非线性误差,则其转换特性曲线各阶梯中点的连线必定是直线,这条直线与横轴相交点所对应的输入电压值就是偏移误差。

(4)满刻度误差:满刻度误差又称为增益误差。ADC的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差

(5)线性度:线性度有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。

(6)绝对精度:在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为绝对精度。对于ADC而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差

(7)转换速率:ADC的转换速率是能够重复进行数据转换的速度,即每秒转换的次数。而完成一次A/D转换所需的时间(包括稳定时间),则是转换速率的倒数。

  • 逐次逼近式ADC的转换原理

(1) 数字量由“逐次逼近寄存器SAR(shift arithmetic right)”产生。SAR使用“对分搜索法”产生数字量,以8位数字量为例,SAR首先产生8位数字量的一半,即10000000B,试探模拟量Vi的大小,若Vn>Vi,清除最高位,若Vn<Vi,保留最高位。在最高位确定后,SAR又以对分搜索法确定次高位,即以低7位的一半y1000000B(y为已确定位) 试探模拟量Vi的大小。在bit6确定后,SAR以对分搜索法确定bit5位,即以低6位的一半yy100000B(y为已确定位) 试探模拟量的大小。重复这一过程,直到最低位bit0被确定,转换结束。

(2)VN为参考电压的一半

2.1.2ADC0809的介绍

  • 引脚的定义

​​​​​​​(1)DAC输出的电压和通道选择开关的的输出电压进行比较最终输出一个电压到SAR中,SAR通过大小来控制DAC的要输出的电压大小,最终输出到8位三态锁存缓冲器

 

  • 电压比较器

(1)输出数字量:(D7~D0)=\frac{Vin}{Vref}×256。结果为整数

  • ADC0809的工作时序

​​​​​​​​​​​​​​

2.1.3XPT2046芯片介绍

  • XPT2046的功能说明

​​​​​​​(1)XPT2046是一款4线制电阻式触摸屏控制器,内含12位分辨率125KHz转换速率逐步逼近型 A/D转换器。 XPT2046支持从1.5V到5.25V的低电压I/O接口。XPT2046能通过执行两次A/D转换查出被按的屏幕位置, 除此之外,还可以测量加在触摸屏上的压力。内部自带2.5V参考电压,可以作为辅助输入、温度测量和电池监测之用,电池监测的电压范围可以从0V到6V。XPT2046片内集成有一个温度传感器。 在 2.7V的典型工作状态下,关闭参考电压,功耗可小于 0.75mW。XPT2046 采用微小的封装形式:TSSOP-16,QFN-16 和 VFBGA-48。工作温度范围为-40℃~+85℃。与ADS7846、TSC2046、AK4182A完全兼容

  • XPT2046的主要特性

​​​​​​​(1)工作电压范围为 1.5V5.25V

(2) 支持 1.5V5.25V 的数字 I/O

(3)内建 2.5V 参考电压源

(4) 电源电压测量(0V~6V

(5) 内建结温测量功能

(6) 触摸压力测量

(7) 采用 3 线制 SPI 通信接口

(8) 具有自动省电功能

  • 芯片引脚

​​​​​​​​​​​​​​(1)TSSOP-16 封装

  • 单端输入和差分输入

​​​​​​​(1)单端输入:单端输入只有一个输入引脚ADCIN,使用公共地GND作为电路的返回端,ADC的采样值=ADCIN电压-GND的电压(OV).这种输入方式优点就是简单,缺点是如果Vin受到干扰,由于GND电位始终是0V,所以最终ADC的采样值也会随着干扰而变化,

(2) 差分输入:差分输入比单端输入多了一根线,最终的ADC采样值=(ADCIN+电压)(ADCIN-电压),由于通常这两根差分线会布在一起,所以他们受到的干扰是差不多的,输入共模干扰,在输入ADC时会被减掉,从而降低了干扰,缺点就足投线复杂一些。而目需要VIN+和VIN一两路反相的输入信号。

 

  •  XPT2048的工作时序​​​​​​​

 

2.2AD代码

2.2.1PFC8591代码

//ADC采集模拟量的函数unsigned int PCF8951_ADC(void)
{unsigned int Data;I2C_Start();I2C_sendByte(0x90);  //寻找PFC8951的地址I2C_ReceiveAck();    //等待应答I2C_sendByte(0x00);  //使用通道0来采集电压I2C_ReceiveAck();I2C_Start();I2C_sendByte(0x91);  //发送地址+读I2C_ReceiveAck();    Data=I2C_ReceiveByte();//接收数据ADCI2C_SendACK(1);I2C_end();return Data;
}//主函数测量函数
int main()
{unsigned int voltage;   //设置数字量unsigned int vol;       //LCD_Init();while(1){voltage=PCF8951_ADC();  //测量的模拟量进入单片机后转换的数字量vol=voltage*5/0.255;    //检测的电压放大1000倍LCD_WriteNum(1,1,vol/1000%10,1);//整数位LCD_WriteString(1,2,".");     //.点位LCD_WriteNum(1,3,vol/100%10,1); //检测的电压的小数位的第一位LCD_WriteNum(1,4,vol/10%10,1);  //检测的电压的小数位的第二位LCD_WriteNum(2,1,voltage,4);    //检测电压的数字量}}

2.3仿真实验

(1)POT-HG

 (2)电压表(DC Voltmeter)

 

相关文章:

proteus+51单片机+AD/DA学习5

目录 1.DA转换原理 1.1基本概念 1.1.1DA的简介 1.1.2DA0832芯片 1.1.3PCF8591芯片 1.2代码 1.2.1DAC8053的代码 1.2.2PCF8951的代码 1.3仿真 1.3.1DAC0832的仿真 1.3.2PFC8951的仿真 2.AD转换原理 2.1AD的基本概念 2.1.1AD的简介 2.1.2ADC0809的介绍 2.1.3XPT2…...

【Python机器学习】长短期记忆网络(LSTM)

目录 随时间反向传播 实践 模型的使用 脏数据 “未知”词条的处理 字符级建模&#xff08;英文&#xff09; 生成聊天文章 进一步生成文本 文本生成的问题&#xff1a;内容不受控 其他记忆机制 更深的网络 尽管在序列数据中&#xff0c;循环神经网络为对各种语言关系…...

【Go】使用Goland创建第一个Go项目

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

STM32学习笔记(一、使用DAP仿真器下载程序)

我们想要使用32单片机&#xff0c;总共包含四个步骤&#xff1a; 1、硬件连接 2、仿真器配置 3、编写程序 4、下载程序 一、第一个问题&#xff08;硬件连接&#xff09;&#xff1a;如何进行硬件连接&#xff0c;才能够启动32板子并能够下载程序呢&#xff1f; 答&#…...

储能运维管理云平台解决方案EMS能量管理系统

在储能行业蓬勃发展的今天&#xff0c;储能运维管理的重要性日益凸显。而储能运维管理云平台的出现&#xff0c;正为储能系统的稳定运行和高效管理注入了新的活力。 一、储能运维管理面临的挑战 传统的储能运维管理方式往往依赖人工巡检和现场操作&#xff0c;存在诸多问题。比…...

网络药理学:16、速通流程版

一、筛选疾病靶点 GeneCards 下载数据得到GeneCards-SearchResult.csv通过Relevance score≥1.0得到GeneCards.csv步骤2只保留Gene Symbol&#xff0c;即基因名这一列得到GeneCards_gene_names.csv OMIM 下载数据得到OMIM-Gene-Map-Retrieval.xlsx只保留Gene/Locus&#xf…...

P2515 [HAOI2010] 软件安装

~~~~~ P2515 [HAOI2010] 软件安装 ~~~~~ 总题单链接 思路 ~~~~~ 发现构成的图是一个森林和一些环。 ~~~~~ 对于森林&#xff0c;建一个虚点然后树形 D P DP DP 即可。 ~~~~~ 对于环&#xff0c;发现要么把这个环上的每一个点都选了&#xff0c;要么每一个都不选。所以可以先缩…...

51单片机快速入门之定时器和计数器

51单片机快速入门之定时器 断开外部输入 晶振振荡 假设为 12MHz 12分频之后,为1MHz 当其从0-65536 时,需要65536μs 微秒 也就是65.536ms 毫秒 溢出(值>65536 时)>中断>执行中断操作 假设需要1ms后产生溢出,则需要设置初始值为64536 此时定时器会从 64536 开始计…...

【计算机网络 - 基础问题】每日 3 题(一)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…...

Unity全面取消Runtime费用 安装游戏不再收版费

Unity宣布他们已经废除了争议性的Runtime费用&#xff0c;该费用于2023年9月引入&#xff0c;定于1月1日开始收取。Runtime费用起初是打算根据使用Unity引擎安装游戏的次数收取版权费。2023年9月晚些时候&#xff0c;该公司部分收回了计划&#xff0c;称Runtime费用只适用于订阅…...

IDEA测试类启动报 “java: 常量字符串过长” 解决办法

目录标题 问题描述问题分析解决办法其他办法 问题描述 问题分析 字符串长度过长&#xff0c;导致 idea 默认使用的 javac 编译器编译不了。 查询资料发现&#xff0c;原因是javac在编译期间&#xff0c;常量字符串最大长度为65534。 解决办法 Javac 编译器改为 Eclipse 编译…...

计算机科学基础 -- 访存单元

访存单元&#xff08;Memory Access Unit&#xff09;的概念 访存单元&#xff08;Memory Access Unit&#xff09; 是处理器中的一个关键模块&#xff0c;负责处理指令中的内存访问操作&#xff0c;包括从内存中读取数据和将数据写入内存。由于内存访问速度通常比处理器执行速…...

Linux压缩、解压缩、查看压缩内容详解使用(tar、gzip、bzip2、xz、jar、war、aar)

在Linux环境中&#xff0c;你可以使用各种命令来压缩、解压缩和查看不同类型的压缩包。以下是常用的命令和操作说明&#xff0c;包括tar、gzip、bzip2、xz、jar、war、aar等类型的包文件。 1. tar命令&#xff1a;压缩、解压、查看tar包 压缩&#xff1a; tar -cvf archive.…...

StreamReader 和 StreamWriter提供自动处理字符编码的功能

FileStream、StreamReader 和 StreamWriter 都用于文件操作&#xff0c;但它们的设计目标和使用方式有所不同。下面是它们之间的主要差异以及如何结合使用的说明&#xff1a; 1. FileStream 用途&#xff1a;提供对文件的字节流访问&#xff0c;用于读写二进制数据。特点&…...

Gitlab备份、迁移、恢复和升级(Gitlab Backup, migration, recovery, and upgrade)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…...

MySQL:INSERT command denied to user

异常&#xff1a; INSERT command denied to user 解决办法&#xff1a; 请检查一下 MySQL 帐号是否有相应的权限...

【Android安全】Ubuntu 16.04安装GDB和GEF

1. 安装GDB sudo apt install gdb-multiarch 2. 安装GEF(GDB Enhanced Features) 官网地址&#xff1a;https://github.com/hugsy/gef 2.1 安装2021.10版本 但是在Ubuntu 16.04上&#xff0c;bash -c "$(curl -fsSL https://gef.blah.cat/sh)"等命令不好使&…...

ISO 21434与网络安全管理系统(CSMS)的协同作用

ISO/SAE 21434与CSMS&#xff08;网络安全管理系统&#xff09;之间的关系主要体现在以下几个方面&#xff1a; 提供指导框架&#xff1a;ISO/SAE 21434《道路车辆—网络安全工程》是一项国际标准&#xff0c;它为汽车行业提供了实施网络安全管理系统的国际认可的方法和最佳实…...

Vue 67 vuex 四个map方法的使用

mapState方法&#xff1a;用于帮助我们映射state中的数据为计算属性 computed: {//借助mapState生成计算属性&#xff1a;sum、school、subject&#xff08;对象写法&#xff09;...mapState({sum:sum,school:school,subject:subject}),//借助mapState生成计算属性&#xff1a;…...

Unity自带脚本之GameObject脚本

目录 GameObject基本成员变量 静态方法 创建自带几何体 1.查找对象 通过tag来查找对象 2查找多个对象 实例化对象&#xff08;克隆对象&#xff09;的方法 删除对象的方法 过场景不移除 Unity中的Object和C#中的万物之父的区别 成员方法 创建空物体 为对象 动态添加…...

软件测试面试题-自测

一、测试流程 1.项目测试流程你是怎么开展的&#xff1f; ①首先&#xff0c;需求分析阶段&#xff0c;分析需求点&#xff0c;需求确定以后进入测试计划阶段&#xff0c;参考需求规格说明书进行测试计划编写 ②接着&#xff0c;进入测试设计阶段&#xff0c;依据需求文档及原…...

深度学习-神经网络

文章目录 一、基本组成单元&#xff1a;神经元二、神经网络层三、偏置与权重四、激活函数1.激活函数的作用2.常见的激活函数1).Sigmoid2).Tanh函数3).ReLU函数 五、优点与缺点六、总结 神经网络&#xff08;Neural Network, NN&#xff09;是一种模拟人类大脑工作方式的计算模型…...

Redis - 集群篇 - 集群模式

面试的时候被人问到集群的问题&#xff0c;搬砖仔哪懂这么多&#xff0c;继续整理一下知识点 Redis 集群模式 Redis集群就是将多个Redis节点连接在一起&#xff0c; 让Redis在不同的节点上同时提供服务。 Redis集群主要有三种模式&#xff1a; 主从复制模式&#xff08;mast…...

Robot Operating System——线速度和角速度

大纲 应用场景1. 移动机器人控制场景描述具体应用 2. 无人机控制场景描述具体应用 3. 机械臂运动控制场景描述具体应用 4. 自动驾驶车辆控制场景描述具体应用 5. 机器人仿真场景描述具体应用 6. 机器人传感器数据处理场景描述具体应用 定义字段解释 案例 geometry_msgs::msg::T…...

量化投资策略_因子打分选股的案例实现

一&#xff1a;因子打分选股的介绍 因子打分选股是一种量化投资策略&#xff0c;它通过选取多个与股票收益率相关的因子&#xff0c;对股票进行综合评分&#xff0c;然后根据评分来选择股票构建投资组合。以下是构建多因子打分选股模型的一般步骤&#xff1a; 数据预处理&…...

架构师知识梳理(七):软件工程-工程管理与开发模型

软件工程概述 软件开发生命周期 软件定义时期&#xff1a;包括可行性研究和详细需求分析过程&#xff0c;任务是确定软件开发工程必须完成的总目标&#xff0c;具体可分成问题定义、可行性研究、需求分析等。软件开发时期&#xff1a;就是软件的设计与实现&#xff0c;可分成…...

bp的模块被隐藏了

看我们现在没有代理那个模块了 我们点击查看 这里有被我们隐藏的模块&#xff0c;比如代理等&#xff0c;把前面的眼睛点一下 这个模块就出来了&#xff0c;如果想把他固定在任务栏里 拖动这个位置 就好了&#xff0c;如果有其他问题可以留言&#xff0c;看到可进我的努力给你…...

C++学习笔记(21)

243、条件变量-生产消费者模型 条件变量是一种线程同步机制。当条件不满足时&#xff0c;相关线程被一直阻塞&#xff0c;直到某种条件出现&#xff0c;这些线 程才会被唤醒。 C11 的条件变量提供了两个类&#xff1a; condition_variable&#xff1a;只支持与普通 mutex 搭配&…...

Ubuntu系统入门指南:常用命令详解

Ubuntu系统入门指南&#xff1a;常用命令详解 引言 Ubuntu是一个基于Linux内核的开源操作系统&#xff0c;由Canonical公司和社区共同开发和维护。它以易用性、稳定性和广泛的软件支持而著称&#xff0c;广泛应用于个人电脑、服务器和云计算环境。对于新手来说&#xff0c;掌…...

keep-alive缓存不了iframe

最近做了个项目&#xff0c;其中有个页面是由 iframe 嵌套了一个另外的页面&#xff0c;在运行的过程中发现 KeepAlive 并不生效&#xff0c;每次切换路由都会触发 iframe 页面的重新渲染&#xff0c;代码如下&#xff1a; <router-view v-slot"{ Component }">…...