主頁 >  其他 > STM32入門開發: 介紹IIC總線、讀寫AT24C02(EEPROM)(采用模擬時序)

STM32入門開發: 介紹IIC總線、讀寫AT24C02(EEPROM)(采用模擬時序)

2021-06-10 09:41:40 其他

一、環境介紹

編程軟體: keil5

作業系統: win10

MCU型號: STM32F103ZET6

STM32編程方式: 暫存器開發 (方便程式移植到其他單片機)

IIC總線: STM32本身支持IIC硬體時序的,本文采用的是模擬時序,下篇文章就介紹配置STM32的IIC硬體時序讀寫AT24C02和AT24C08,

模擬時序更加方便移植到其他單片機,通用性更高,不分MCU;硬體時序效率更高,單每個MCU配置方法不同,依賴硬體本身支持,

目前器件: 采用AT24C02 EEPROM存盤芯片

完整的工程原始碼下載地址,下載即可編譯運行測驗(包含了模擬IIC時序、STM32硬體IIC時序分別驅動AT24C02和AT24C08): https://download.csdn.net/download/xiaolong1126626497/19399945

二、AT24C02存盤芯片介紹

2.1 芯片功能特性介紹

AT24C02 是串行CMOS型別的EEPROM存盤芯片,AT24C0x這個系列包含了AT24C01、AT24C02、AT24C04、AT24C08、AT24C16這些具體的芯片型號,

他們容量分別是:1K (128 x 8)、2K (256 x 8)、4K (512 x 8)、8K (1024 x 8)、16K (2048 x 8) ,其中的8表示8位(bit)

它們的管腳功能、封裝特點如下:

芯片功能描述:

AT24C02系列支持I2C,總線資料傳送協議I2C,總線協議規定任何將資料傳送到總線的器件作為發送器,任何從總線接收資料的器件為接收器;資料傳送是由產生串行時鐘和所有起始停止信號的主器件控制的,主器件和從器件都可以作為發送器或接收器,但由主器件控制傳送資料(發送或接收)的模式,由于A0、A1和A2可以組成000~111八種情況,即通過器件地址輸入端A0、A1和A2可以實作將最多8個AT24C02器件連接到總線上,通過進行不同的配置進行選擇器件,

芯片特性介紹:

1. 低壓和標準電壓運行
–2.7(VCC=2.7伏至5.5伏)
–1.8(VCC=1.8伏至5.5伏)

2. 兩線串行介面(SDA、SCL)

3. 有用于硬體資料保護的寫保護引腳

4. 自定時寫入周期(5毫秒~10毫秒),因為內部有頁緩沖區,向AT24C0x寫入資料之后,還需要等待AT24C0x將緩沖區資料寫入到內部EEPROM區域.

5. 資料保存可達100年

6. 100萬次擦寫周期

7. 高資料傳送速率為400KHz、低速100KHZ和IIC總線兼容, 100 kHz(1.8V)和400 kHz(2.7V、5V)

8. 8位元組頁寫緩沖區
這個緩沖區大小與芯片具體型號有關: 8位元組頁(1K、2K)、16位元組頁(4K、8K、16K)

2.2 芯片設備地址介紹

IIC設備的標準地址位是7位,上面這個圖里AT24C02的1010是芯片內部固定值,A2 、A1、 A0是硬體引腳、由硬體決定電平;最后一位是讀/寫位(1是讀,0是寫),讀寫位不算在地址位里,但是根據IIC的時序順序,在操作設備前,都需要先發送7位地址,再發送1位讀寫位,才能啟動對芯片的操作,我們在寫模擬時序為了方便統一寫for回圈,按位元組發送,所以一般都是將7地址位與1位讀寫位拼在一起,組合成1個位元組,方便按位元組傳輸資料,

我現在使用的開發板上AT24C02的原理圖是這樣的:

那么這個AT24C02的標準設備地址就是: 0x50(十六進制),對應的二進制就是: 1010000

如果將讀寫位組合在一起,讀權限的設備地址: 0xA1 (10100001) 、寫權限的設備地址: 0xA0 (10100000)

2.3 對AT24C02 按位元組寫資料的指令流程(時序)

詳細解釋:

1. 先發送起始信號

2. 發送設備地址(寫權限)

3. 等待AT24C02應答、低電平有效

4. 發送存盤地址、AT24C02內部一共有256個位元組空間,尋址是從0開始的,范圍是(0~255);發送這個存盤器地址就是告訴AT24C02接下來的資料改存盤到哪個地方,

5. 等待AT24C02應答、低電平有效

6. 發送一個位元組的資料,這個資料就是想存盤到AT24C02里保存的資料,

7. 等待AT24C02應答、低電平有效

8. 發送停止信號

2.3 對AT24C02 按頁寫資料的指令流程(時序)

詳細解釋:

1. 先發送起始信號

2. 發送設備地址(寫權限)

3. 等待AT24C02應答、低電平有效

4. 發送存盤地址、AT24C02內部一共有256個位元組空間,尋址是從0開始的,范圍是(0~255);發送這個存盤器地址就是告訴AT24C02接下來的資料改存盤到哪個地方,

5. 等待AT24C02應答、低電平有效

6. 可以回圈發送8個位元組的資料,這些資料就是想存盤到AT24C02里保存的資料,

AT24C02的頁緩沖區是8個位元組,所有這里的回圈最多也只能發送8個位元組,多發送的位元組會將前面的覆寫掉,

需要注意的地方: 這個頁緩沖區的尋址也是從0開始,比如: 0~7算第1頁,8~15算第2頁......依次類推, 如果現在寫資料的起始地址是3,那么這一頁只剩下5個位元組可以寫;并不是說從哪里都可以回圈寫8個位元組,

詳細流程: 這里程式里一般使用for回圈實作

(1). 發送位元組1

(2). 等待AT24C02應答,低電平有效

(3). 發送位元組2

(4). 等待AT24C02應答,低電平有效

.........

最多8次.

7. 等待AT24C02應答、低電平有效

8. 發送停止信號

2.4 從AT24C02任意地址讀任意位元組資料(時序)

AT24C02支持當前地址讀、任意地址讀,最常用的還是任意地址讀,因為可以指定讀取資料的地址,比較靈活,上面這個指定時序圖就是任意地址讀,

詳細解釋:

1. 先發送起始信號

2. 發送設備地址(寫權限)

3. 等待AT24C02應答、低電平有效

4. 發送存盤地址、AT24C02內部一共有256個位元組空間,尋址是從0開始的,范圍是(0~255);發送這個存盤器地址就是告訴AT24C02接下來應該回傳那個地址的資料給單片機,

5. 等待AT24C02應答、低電平有效

6. 重新發送起始信號(切換讀寫模式)

7. 發送設備地址(讀權限)

8. 等待AT24C02應答、低電平有效

9. 回圈讀取資料: 接收AT24C02回傳的資料.

讀資料沒有位元組限制,可以第1個位元組、也可以連續將整個芯片讀完,

10. 發送非應答(高電平有效)

11. 發送停止信號

三、IIC總線介紹

2.1 IIC總線簡介

I2C(Inter-Integrated Circuit)總線是由PHILIPS公司開發的兩線式串行總線,用于連接微控制器及其外圍設備,是微電子通信控制領域廣泛采用的一種總線標準,具有介面線少,控制方式簡單,器件封裝形式小,通信速率較高等優點,

I2C規程運用主/從雙向通訊,器件發送資料到總線上,則定義為發送器,器件接收資料則定義為接收器,主器件和從器件都可以作業于接收和發送狀態,

I2C 總線通過串行資料(SDA)線和串行時鐘(SCL)線在連接到總線的器件間傳遞資訊,每個器件都有一個唯一的地址識別,而且都可以作為一個發送器或接收器(由器件的功能決定),

I2C有四種作業模式:
1.主機發送
2.主機接收
3.從機發送
4.從機接收

I2C總線只用兩根線:串行資料SDA(Serial Data)、串行時鐘SCL(Serial Clock),

總線必須由主機(通常為微控制器)控制,主機產生串行時鐘(SCL)控制總線的傳輸方向,并產生起始和停止條件,

SDA線上的資料狀態僅在SCL為低電平的期間才能改變,

2.2 IIC總線上的設備連接圖

I2C 總線在物理連接上非常簡單,分別由SDA(串行資料線)和SCL(串行時鐘線)及上拉電阻組成,通信原理是通過對SCL和SDA線高低電平時序的控制,來產生I2C總線協議所需要的信號進行資料的傳遞,在總線空閑狀態時,這兩根線一般被上面所接的上拉電阻拉高,保持著高電平,

其中上拉電阻范圍是4.7K~100K,

2.3 I2C總線特征

I2C總線上的每一個設備都可以作為主設備或者從設備,而且每一個從設備都會對應一個唯一的地址(可以從I2C器件的資料手冊得知),主從設備之間就通過這個地址來確定與哪個器件進行通信,在通常的應用中,我們把CPU帶I2C總線介面的模塊作為主設備,把掛接在總線上的其他設備都作為從設備,

1. 總線上能掛接的器件數量
I2C總線上可掛接的設備數量受總線的最大電容400pF 限制,如果所掛接的是相同型號的器件,則還受器件地址的限制,
一般I2C設備地址是7位地址(也有10位),地址分成兩部分:芯片固化地址(生產芯片時候哪些接地,哪些接電源,已經固定),可編程地址(引出IO口,由硬體設備決定),
例如: 某一個器件是7 位地址,其中10101 xxx 高4位出廠時候固定了,低3位可以由設計者決定,
則一條I2C總線上只能掛該種器件最少8個,
如果7位地址都可以編程,那理論上就可以達到128個器件,但實際中不會掛載這么多,

2. 總線速度傳輸速度:
I2C總線資料傳輸速率在標準模式下可達100kbit/s,快速模式下可達400kbit/s,高速模式下可達3.4Mbit/s,一般通過I2C總線介面可編程時鐘來實作傳輸速率的調整,

3. 總線資料長度
I2C總線上的主設備與從設備之間以位元組(8位)為單位進行雙向的資料傳輸,

2.4 I2C總線協議基本時序信號

空閑狀態:SCL和SDA都保持著高電平,

起始條件:總線在空閑狀態時,SCL和SDA都保持著高電平,當SCL為高電平期間而SDA由高到低的跳變,表示產生一個起始條件,在起始條件產生后,總線處于忙狀態,由本次資料傳輸的主從設備獨占,其他I2C器件無法訪問總線,

停止條件:當SCL為高而SDA由低到高的跳變,表示產生一個停止條件,

答應信號:每個位元組傳輸完成后的下一個時鐘信號,在SCL高電平期間,SDA為低,則表示一個應答信號,

非答應信號:每個位元組傳輸完成后的下一個時鐘信號,在SCL高電平期間,SDA為高,則表示一個應答信號,應答信號或非應答信號是由接收器發出的,發送器則是檢測這個信號(發送器,接收器可以從設備也可以主設備),

注意:起始和結束信號總是由主設備產生,

2.5 起始信號與停止信號

起始信號就是: 時鐘線SCL處于高電平的時候,資料線SDA由高電平變為低電平的程序,SCL=1;SDA=1;SDA=0;

停止信號就是: 時鐘線SCL處于低電平的時候, 資料線SDA由低電平變為高電平的程序,SCL=1;SDA=0;SDA=1;

2.6 應答信號

資料位的第9位就時應答位, 讀取應答位的流程和讀取資料位是一樣的,示例: SCL=0;SCL=1;ACK=SDA; 這個ACK就是讀取的應答狀態,

2.7 資料位傳輸時序

通過時序圖了解到,SCL處于高電平的時候資料穩定,SCL處于低電平的時候資料不穩定,

那么對于寫一位資料(STM32--->AT24C02): SCL=0;SDA=data; SCL=1;

那么對于讀一位資料(STM32<-----AT24C02): SCL=0;SCL=1;data=SDA;

2.8 總線時序

四、IIC總線時序代碼、AT24C02讀寫代碼

在除錯IIC模擬時序的時候,可以在淘寶上買一個24M的USB邏輯分析儀,時序出現問題,使用邏輯分析儀一分析就可以快速找到問題,

4.1 iic.c 這是IIC模擬時序完整代碼

#include "iic.h"

/*
函式功能:IIC介面初始化
硬體連接:
SDA:PB7
SCL:PB6
*/
void IIC_Init(void)
{
	RCC->APB2ENR|=1<<3;//PB
	GPIOB->CRL&=0x00FFFFFF;
	GPIOB->CRL|=0x33000000;
	GPIOB->ODR|=0x3<<6;
}

/*
函式功能:IIC總線起始信號
*/
void IIC_Start(void)
{
	IIC_SDA_OUTMODE(); //初始化SDA為輸出模式
	IIC_SDA_OUT=1; 		 //資料線拉高
	IIC_SCL=1;     		 //時鐘線拉高
	DelayUs(4);        //電平保持時間
	IIC_SDA_OUT=0; 		 //資料線拉低
	DelayUs(4);        //電平保持時間
	IIC_SCL=0;     		 //時鐘線拉低
}


/*
函式功能:IIC總線停止信號
*/
void IIC_Stop(void)
{
	IIC_SDA_OUTMODE();    //初始化SDA為輸出模式
	IIC_SDA_OUT=0; 		 //資料線拉低
	IIC_SCL=0;     		 //時鐘線拉低
	DelayUs(4);           //電平保持時間
	IIC_SCL=1;     		 //時鐘線拉高
	DelayUs(4);           //電平保持時間
	IIC_SDA_OUT=1; 		 //資料線拉高
}

/*
函式功能:獲取應答信號
返 回 值:1表示失敗,0表示成功
*/
u8 IIC_GetACK(void)
{
	u8 cnt=0;
	IIC_SDA_INPUTMODE();//初始化SDA為輸入模式
	IIC_SDA_OUT=1; 		  //資料線上拉
	DelayUs(2);         //電平保持時間
	IIC_SCL=0;     		  //時鐘線拉低,告訴從機,主機需要資料
	DelayUs(2);         //電平保持時間,等待從機發送資料
	IIC_SCL=1;     		  //時鐘線拉高,告訴從機,主機現在開始讀取資料
	while(IIC_SDA_IN)   //等待從機應答信號
	{
		cnt++;
		if(cnt>250)return 1;
	}
	IIC_SCL=0;     		  //時鐘線拉低,告訴從機,主機需要資料
	return 0;
}


/*
函式功能:主機向從機發送應答信號
函式形參:0表示應答,1表示非應答
*/
void IIC_SendACK(u8 stat)
{
	IIC_SDA_OUTMODE(); //初始化SDA為輸出模式
	IIC_SCL=0;     		 //時鐘線拉低,告訴從機,主機需要發送資料
	if(stat)IIC_SDA_OUT=1; //資料線拉高,發送非應答信號
	else IIC_SDA_OUT=0; 	 //資料線拉低,發送應答信號
	DelayUs(2);            //電平保持時間,等待時鐘線穩定
	IIC_SCL=1;     		     //時鐘線拉高,告訴從機,主機資料發送完畢
	DelayUs(2);            //電平保持時間,等待從機接收資料
	IIC_SCL=0;     		  	 //時鐘線拉低,告訴從機,主機需要資料
}


/*
函式功能:IIC發送1個位元組資料
函式形參:將要發送的資料
*/
void IIC_WriteOneByteData(u8 data)
{
	u8 i;
	IIC_SDA_OUTMODE(); //初始化SDA為輸出模式
	IIC_SCL=0;     		 //時鐘線拉低,告訴從機,主機需要發送資料
	for(i=0;i<8;i++)
	{
		if(data&0x80)IIC_SDA_OUT=1; //資料線拉高,發送1
		else IIC_SDA_OUT=0; 	 //資料線拉低,發送0
		IIC_SCL=1;     		     //時鐘線拉高,告訴從機,主機資料發送完畢
		DelayUs(2);            //電平保持時間,等待從機接收資料
		IIC_SCL=0;     		 		 //時鐘線拉低,告訴從機,主機需要發送資料
		DelayUs(2);            //電平保持時間,等待時鐘線穩定
		data<<=1;              //先發高位
	}
}


/*
函式功能:IIC接收1個位元組資料
返 回 值:收到的資料
*/
u8 IIC_ReadOneByteData(void)
{
	u8 i,data;
	IIC_SDA_INPUTMODE();//初始化SDA為輸入模式
	for(i=0;i<8;i++)
	{
		IIC_SCL=0;     		  //時鐘線拉低,告訴從機,主機需要資料
		DelayUs(2);         //電平保持時間,等待從機發送資料
		IIC_SCL=1;     		  //時鐘線拉高,告訴從機,主機現在正在讀取資料
		data<<=1;           
		if(IIC_SDA_IN)data|=0x01;
		DelayUs(2);         //電平保持時間,等待時鐘線穩定
	}
	IIC_SCL=0;     		  		//時鐘線拉低,告訴從機,主機需要資料 (必須拉低,否則將會識別為停止信號)
	return data;
}


4.2 AT24C02.c 這是AT24C02完整的讀寫代碼

#include "at24c02.h"
/*
函式功能:檢查AT24C02是否存在
返 回 值:1表示失敗,0表示成功
*/
u8 At24c02Check(void)
{
	u8 data;
	At24c02WriteOneByteData(255,0xAA);
	data=At24c02ReadOneByteData(255);
	if(data==0xAA)return 0;
	else return 1;
}


/*
函式功能:AT24C02隨機讀資料
函式形參:讀取的地址(0~255)
返 回 值:讀出一個資料
*/
u8 At24c02ReadOneByteData(u32 addr)
{
	u8 data;
	IIC_Start(); //發送起始信號	
	IIC_WriteOneByteData(AT24C02_WRITE_ADDR); //設定寫模式
	IIC_GetACK();//獲取應答
	IIC_WriteOneByteData(addr); //設定讀取資料的位置
	IIC_GetACK();//獲取應答

	IIC_Start(); //發送起始信號	
	IIC_WriteOneByteData(AT24C02_READ_ADDR); //設定讀模式
	IIC_GetACK();//獲取應答
	data=IIC_ReadOneByteData(); //接收資料
	IIC_SendACK(1); //發送非應答信號
	IIC_Stop(); //停止信號
	return data;
}


/*
函式功能:AT24C02寫一個位元組的資料
函式形參:
		addr:寫入的地址(0~255)
		data:寫入的資料
*/
void At24c02WriteOneByteData(u32 addr,u8 data)
{
	IIC_Start(); //發送起始信號
	IIC_WriteOneByteData(AT24C02_WRITE_ADDR); //設定寫模式
	IIC_GetACK();//獲取應答
	IIC_WriteOneByteData(addr); //設定寫入資料的位置
	IIC_GetACK();//獲取應答
	IIC_WriteOneByteData(data); //設定寫入的資料
	IIC_GetACK();//獲取應答
	IIC_Stop();  //停止信號
	DelayMs(10); //等待寫入完畢
}


/*
函式 功 能:AT24C02當前位置讀一個位元組資料
函式回傳值:讀出的資料
*/
u8 At24c02CurrentAddrReadOneByteData(void)
{
	u8 data;
	IIC_Start(); //發送起始信號
	IIC_WriteOneByteData(AT24C02_READ_ADDR); //設定讀模式
	IIC_GetACK();//獲取應答
	data=IIC_ReadOneByteData(); //接收資料
	IIC_SendACK(1); //發送非應答信號
	IIC_Stop(); //停止信號
	return data;
}



/*
函式功能:AT24C02連續讀資料
函式形參:
u8 addr   //讀取的地址(0~255)
u8 len    //讀取的長度
u8 *buff  //讀出的資料存放緩沖區
*/
void At24c02ReadByteData(u32 addr,u8 len,u8 *buff)
{
	u8 i;
	IIC_Start(); //發送起始信號	
	IIC_WriteOneByteData(AT24C02_WRITE_ADDR); //設定寫模式
	IIC_GetACK();//獲取應答
	IIC_WriteOneByteData(addr); //設定讀取資料的位置
	IIC_GetACK();//獲取應答	
	IIC_Start(); //發送起始信號	
	IIC_WriteOneByteData(AT24C02_READ_ADDR); //設定讀模式
	IIC_GetACK();//獲取應答

	for(i=0;i<len;i++)
	{
		 buff[i]=IIC_ReadOneByteData(); //接收資料
		 IIC_SendACK(0); //發送應答信號
	}
	IIC_SendACK(1); //發送非應答信號
	IIC_Stop(); //停止信號
}


/*
函式功能:AT24C02頁寫
函式形參:
		addr:寫入的地址(0~255)
		*data:寫入的資料緩沖區
		len :寫入的長度

1. 頁寫的緩沖區大小是8個位元組,一次最多寫8個位元組進去,
2. 頁寫的地址是固定的,

0~7 是第一頁
8~15是第二頁			
*/
void At24c02PageWrite(u32 addr,u8 *data,u8 len)
{
	u8 i;
	IIC_Start(); //發送起始信號
	IIC_WriteOneByteData(AT24C02_WRITE_ADDR); //設定寫模式
	IIC_GetACK();//獲取應答
	IIC_WriteOneByteData(addr); //設定寫入資料的位置
	IIC_GetACK();//獲取應答

	for(i=0;i<len;i++)
	{
		IIC_WriteOneByteData(data[i]); //設定寫入的資料
		IIC_GetACK();//獲取應答
	}
	IIC_Stop();  //停止信號
	DelayMs(10); //等待寫入完畢
}


void AT24C02_WriteData(u32 addr,u8 *data,u8 len)
{
    u32 page_remain=8-addr%8; //一頁剩余的位元組數量
    if(page_remain>=len)
    {
        page_remain=len;
    }
    while(1)
    {
        At24c02PageWrite(addr,data,page_remain);
        if(page_remain==len)
        {
            break;
        }
        addr+=page_remain;
        data+=page_remain;
        len-=page_remain;
        if(len>=8)page_remain=8;
        else page_remain=len;
    }
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286477.html

標籤:其他

上一篇:一起Talk Android吧(第二百九十八回:Android中的BLE開發:大結局)

下一篇:基于iTOP-4412開發板(精英版)的linux 4.14.2內核移植

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more