主頁 >  其他 > HAL庫學習筆記-13 I2C和SPI的應用

HAL庫學習筆記-13 I2C和SPI的應用

2021-04-23 12:30:18 其他

目錄

  • 前言
  • 一、如何編程使用?
  • 二、使用步驟
    • 1.I2C通訊協議采集傳感器資料
      • BH1750傳感器簡介
      • CubeMX配置
        • 1.GPIO引腳
        • 2.時鐘
        • 3.I2C外設配置
      • 代碼撰寫
      • 總結
    • 2.SPI通訊協議LCD
      • LCD簡介
      • CubeMX配置
        • 1.GPIO引腳
        • 2.時鐘
        • 3.SPI外設配置
      • 代碼撰寫
      • 總結
    • 3.QSPI通訊協議讀寫FLASH
      • QSPI簡介
      • W25Q64串行FLASH簡介
        • 操作原理
      • CubeMX配置
        • 1.GPIO引腳
        • 2.時鐘
        • 3.QSPI外設配置
      • 代碼撰寫
      • 總結
  • 總結


前言

前邊的兩篇筆記將STM32總線上與外部的通信協議I2C和SPI,本筆記著重講解如何使用,


一、如何編程使用?

我們使用這些總線上的通信協議和外部模塊進行通信時,STM32外設的配置要和外部模塊的一致,這樣才能通訊同步,得到正確的資料,而這些外部模塊一般廠商都會提供手冊和驅動,我們只需要移植過來,將引腳和基本的通訊配置好,詳細的收發函式大部分都已由廠商實作好了,我們只需要閱讀廠商提供的代碼和檔案來了解針對不同模塊的指令,如常用的FLASH芯片是使用QSPI通信的,支持佇列操作,我手上的開發板的LCD是使用SPI通信的,一些傳感器是使用I2C通信的,我們根據芯片資料手冊分配的引腳和外部模塊給出的詳細指令通訊協議在CubeMX中配置好即可,

二、使用步驟

1.I2C通訊協議采集傳感器資料

BH1750傳感器簡介

BH1750FVI是日本羅姆(ROHM)半導體生產的數字式環境光傳感IC,BH1750環境光傳感器內置16位的模數轉換器,它能夠直接輸出一個數字信號,不需要再做復雜的計算,這是一種容易使用簡易電阻器的版本,通過計算電壓,來獲得有效的資料,這款環境光傳感器能夠直接通過光度計來測量,當物體在均勻的光照下它能夠在每平方米獲得1lux的光通量,它們的光強度是1lux,有時為了充分利用光源,你可以增加一個光源的反射裝置,那樣在某些方向就能獲得更多的光通量,以增加被照表面的亮度,
功能測驗
BH1750FVI支持單次或連續兩種測量模式,每種測量模式又提供了0.5lux、1lux、4lux三種解析度供選擇,分辨力越高,一次測量所需的時間就越長,在單次測量模式時,每次測量之后傳感器都自動進入Power Down模式,
連續模式解析度從高到低的指令為:0x10; 0x11; 0x13
單次模式解析度從高到低的指令為:0x20; 0x21; 0x23
主要特性
I2C數字介面,支持速率最大400Kbps
輸出量為光照度(Illuminance)
測量范圍1~65535 lux,解析度最小到1lux
低功耗(Power down)功能
屏蔽50/60Hz市電頻率引起的光照變化干擾
支持兩個I2C地址,通過ADDR引腳選擇
較小的測量誤差(精度誤差最大值+/-20%)

CubeMX配置

1.GPIO引腳


由于要串口列印資料,所以將I2C1引腳配置為PB6/7;使用兩個GPIO引腳連接燈進行指示,引數都使用默認的,

2.時鐘


采用內部時鐘(默認)配置系統時鐘最高80MHz
I2C1時鐘為16MHz

3.I2C外設配置

使用默認引數,

代碼撰寫

  1. 發送檢測光照強度模式指令
  2. 檢測時間延時
  3. 讀取光照強度資料
    注意:讀地址為0x47,寫地址為0x46

主要呼叫I2C函式(示例):

HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);

主要函式代碼(示例):

/*
連續高解析度模式精度1lux:0x10
連續高解析度模式2精度0.5lux:0x11
低解析度模式:0x13
*/

float ReadBH1750(void)
{
	uint8_t temp[1]={0x11};//連續高解析度模式2
	float lux=0;
	uint8_t ReadData[2]={0};
	HAL_I2C_Master_Transmit(&hi2c1, 0x46, temp, 1, 0xff);
	HAL_Delay(180);
	HAL_I2C_Master_Receive(&hi2c1, 0x47,ReadData, 2, 0xff);
	lux=(float)((ReadData[0]<<8)|ReadData[1]);
	lux=(double)lux/1.2;
	return lux;
}

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    float lux=ReadBH1750();
    printf("BH1750:%d\r\n",(int)lux);
    if(lux<2||(lux>900&&lux<1100))
      HAL_GPIO_WritePin(LED_SW_GPIO_Port,LED_SW_Pin,GPIO_PIN_SET);
     else  
    HAL_GPIO_WritePin(LED_SW_GPIO_Port,LED_SW_Pin,GPIO_PIN_RESET);
		HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
    HAL_Delay(1000);

  /* USER CODE END WHILE */

總結

I2C多數是用來采集資料,因為使用兩根線,使用從機地址進行尋址通信,所以傳輸是單向的,我們只需很簡單的將我們的芯片作為主機向傳感器發送檢測指令,等待傳感器送回資料即可,編程要點在于,根據外部模塊和芯片的原理圖合理選擇引腳連接,并配置相關引數:
(1) 配置通訊使用的目標引腳為開漏模式;
(2) 使能I2C 外設的時鐘;
(3) 配置I2C 外設的模式、地址、速率等引數并使能I2C 外設;
實作資料的收發函式,如本例的ReadBH1750(),將I2C的讀寫函陣列合封裝進我們自行撰寫的函式以實作我們想要的復雜功能,

2.SPI通訊協議LCD

LCD簡介

TFT-LCD 即薄膜晶體管液晶顯示幕,其英文全稱為:Thin Film Transistor-Liquid Crystal Display,TFT-LCD 與無源TN-LCD、STN-LCD 的簡單矩陣不同,它在液晶顯示屏的每一個象素上都設定有一個薄膜晶體管(TFT),可有效地克服非選通時的串擾,使顯示液晶屏的靜態特性與掃描線數無關,因此大大提高了影像質量,TFT-LCD 也被叫做真彩液晶顯示幕,
ST7789V2是一個單芯片TFT-LCD驅動器,該芯片可以直接連接到外部MCU,支持并行8080系列的8位/9位/16位/18位介面,也支持SPI串行通訊介面, 顯示資料可以存盤在240x320x18bits的片上顯示資料RAM中, 它可以在沒有外部操作時鐘的情況下執行顯示資料RAM讀寫操作,以盡量減少功耗,
并行介面占用外部MCU芯片引腳較多,但其通訊速率較快,一般只在需要高速重繪及MCU資源比較豐富的場合使用,SPI串行通訊介面占用MCU芯片引腳較少,通訊速率相對并行介面較慢,但因其占用MCU引腳資源較少被廣泛使用,因此我們也使用SPI通訊的方式和ST7789V2進行通訊,

CubeMX配置

1.GPIO引腳


根據原理圖和LCD資料手冊,我們將引腳配置如下,

  1. PC3為SPI2_MOSI主出/從入引腳;
  2. PB13為SPI2_SCK時鐘引腳;
  3. PC6為LCD_WR_RS片選引腳;
  4. PC7為LCD_RESET復位引腳;
  5. PB15為LCD_POWER電源引腳;
  6. PA9為UART1發送引腳;
  7. P10為UART1接收引腳;
  8. PC13為LED引腳,

2.時鐘

采用內部時鐘(默認)配置系統時鐘最高80MHz

3.SPI外設配置


根據LCD資料手冊,選擇4線模式1,資料傳輸模式為MSB,上升沿采樣,根據前面講述,SPI模式一般選模式0或者模式3,分別是
1、CPOL=0,CPHA=0(空閑時時鐘線為低,在第一個時鐘邊沿即上升沿進行采樣)
2、CPOL=1,CPHA=1(空閑時時鐘線為高,在第二個時鐘邊沿即上升沿進行采樣)
因為外部芯片的SPI作業模式是固定的,但STM32的作業模式是可以配置的,因此需要將STM32的SPI作業模式配置和外部芯片一致才可以正常通訊,還需要注意外部芯片支持的SPI通訊的速率,STM32設定的SPI通訊速率不能比它高,一般情況下,外部SPI芯片手冊中會說明該芯片是在時鐘邊沿的上升沿采樣還是下降沿采樣,根據此資訊一般STM32會有兩種兩種作業模式可以滿足,選擇任意一種即可,一般偏向于選擇CPOL=1即空閑時時鐘為高的那種,即此處我們選用模式3,

SPI配置好后就可以和ST7789V2芯片進行通訊了,具體發送的命令和需要LCD如何顯示那就要看ST7789V2的芯片手冊,

代碼撰寫

  1. SPI采用單向方式,也就是只用到三個引腳,即主出/從入,時鐘,片選;
  2. 移植LCD驅動;
  3. 使用LCD介面函式顯示英文字串(也可顯示漢字);
  4. 使用LCD介面函式畫圓,

主要呼叫SPI函式(示例):

HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);

主要函式代碼(示例):
spi.c中添加如下函式,并注意在對應頭檔案中宣告

/* USER CODE BEGIN 1 */
uint8_t SPI2_WriteByte(uint8_t* data, uint16_t size)
{
 return  HAL_SPI_Transmit(&hspi2, data, size, 0xff);
}
/* USER CODE END 1 */

main.c中添加用戶代碼

/* USER CODE BEGIN Includes */
#include "LCD.h"
/* USER CODE END Includes */

/* USER CODE BEGIN 2 */
  LCD_Init();
/* USER CODE END 2 */
/* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {

  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
  LCD_Clear(BLACK);//清屏為黑色
	LCD_ShowString(5, 10, 240, 32, 32, "BearPi LCDTest");//顯示字串,字體大小32*32
  PutChinese_strings(10,150,"你好",0);	
	HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET);//點亮LED燈
	HAL_Delay(1000);//延時1秒
	LCD_Clear(BLUE);//清屏為藍色
	LCD_Draw_Circle(120, 120, 100);//畫圓 半徑r=100
	LCD_Draw_Circle(120, 120, 80);//畫圓 半徑r=80
	LCD_Draw_Circle(120, 120, 60);//畫圓 半徑r=60
	LCD_Draw_Circle(120, 120, 40);//畫圓 半徑r=40
	LCD_Draw_Circle(120, 120, 20);//畫圓 半徑r=20
	LCD_Draw_Circle(120, 120, 1);//畫圓 半徑r=1
	HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET);//熄滅LED燈
	HAL_Delay(1000);//延時1秒

  }
  /* USER CODE END 3 */

總結

LCD芯片手冊共319頁,大部分內容都介紹的是如何操作其中的暫存器以實作顯示功能的配置,我們可以直接使用開發板廠商寫好的驅動程式使用(網上資料魚龍混雜,也不一定完全正確,因此需要自己邊試邊改),掌握芯片的操作原理即可,當需要實作特定的、炫酷的、網上找不到的功能時再繼續深入去研究,不要重復造輪子,或者一上來就去啃ST7798V2的芯片手冊,
本實驗移植的是小熊派開發板廠商提供的示例中的LCD驅動,
DC為命令/資料標志(0為讀寫命令,1為讀寫資料);CS為片選,RST為復位

3.QSPI通訊協議讀寫FLASH

QSPI簡介

QSPI是Quad SPI的簡寫,是Motorola公司推出的SPI介面的擴展,比SPI應用更加廣泛,在SPI協議的基礎上,Motorola公司對其功能進行了增強,增加了佇列傳輸機制,推出了佇列串行外圍介面協議(即QSPI協議),QSPI 是一種專用的通信介面,連接單、雙或四(條資料線) SPI Flash 存盤介質,
該介面可以在以下三種模式下作業:
間接模式:使用 QSPI 暫存器執行全部操作
狀態輪詢模式:周期性讀取外部 Flash 狀態暫存器,而且標志位置 1 時會產生中斷(如擦除或燒寫完成,會產生中斷)
記憶體映射模式:外部 Flash 映射到微控制器地址空間,從而系統將其視作內部存盤器采用雙閃存模式時,將同時訪問兩個 Quad-SPI Flash,吞吐量和容量均可提高二倍,
QSPI 可以使用 6 個信號連接Flash,分別是四個資料線BK1_IO0~BK1_IO3,一個時鐘輸出CLK,一個片選輸出(低電平有效)BK1_nCS,它們的作用介紹如下:

  • BK1_nCS:片選輸出(低電平有效),適用于 FLASH 1,如果 QSPI 始終在雙閃存模式下作業,則其也可用于 FLASH 2從設備選擇信號線,QSPI通訊以BK1_nCS線置低電平為開始信號,以BK1_nCS線被拉高作為結束信號,
  • CLK:時鐘輸出,適用于兩個存盤器,用于通訊資料同步,它由通訊主機產生,決定了通訊的速率,不同的設備支持的最高時鐘頻率不一樣,如STM32的QSPI時鐘頻率最大為fpclk/2,兩個設備之間通訊時,通訊速率受限于低速設備,
  • BK1_IO0:在雙線 / 四線模式中為雙向 IO,單線模式中為串行輸出,適用于FLASH 1,
  • BK1_IO1:在雙線 / 四線模式中為雙向 IO,單線模式中為串行輸入,適用于FLASH 1,
  • BK1_IO2:在四線模式中為雙向 IO,適用于 FLASH 1,
  • BK1_IO3:在四線模式中為雙向 IO,適用于 FLASH 1,

本實驗:只用到BK1_nCS、CLK、BK1_IO0、BK1_IO1四個信號,

W25Q64串行FLASH簡介

大小:8M(Byte)(128塊(Block),每塊64K位元組,每塊16個扇區(Sector),每個扇區4K位元組,每個扇區16頁,每頁256個位元組)
特點:Flash芯片內的資料只能由1變0,不能由0變1,
W25Q64Flash作業方式:
1)W25Q64 SPI資料傳輸時序
W25Q64支持SPI資料傳輸時序模式0(CPOL = 0、CPHA = 0)和模式3(CPOL = 1、CPHA = 1),模式0和模式3主要區別是當SPI主機硬體介面處于空閑狀態時,SCLK的電平狀態是高電平或者是低電平,對于模式0來說,SCLK處于低電平;對于模式3來說,SCLK處于高電平,不過,在這兩種模式下,芯片都是在SCLK的上升沿采集輸入資料,下降沿輸出資料,
2)W25Q64資料格式
W25Q64資料格式為資料長度8位大小,先發高位,再發低位,
3)W25Q64傳輸速度
W25Q64在標準模式下支持80M bit/s速度,快速模式下支持160M bit/s速度,高速模式下支持320M bit/s速度,

操作原理

通過SPI介面,用標準的SPI協議發送相應指令給flash,然后flash根據命令進行各種相關操作,

  1. 寫使能:06H
  2. 讀狀態暫存器指令:05H
  3. 寫狀態暫存器指令:01H
  4. 讀資料:03H
  5. 頁寫:02H
  6. 扇區擦除指令:20H
  7. 塊擦除指令:D8H
  8. 芯片擦除指令:07H
  9. 掉電指令:B9H
  10. 讀ID指令:90H

更多指令我們可以查看手冊,編程要點和前邊一樣,配置好引腳和引數進行通信,撰寫基本讀寫函式進行操作,再在此基礎上實作復雜操作,

CubeMX配置

1.GPIO引腳

  • CE:CE為片選管腳,低電平有效,上電之后,在執行一條新的指令之前,必須讓/CE管腳先有一個下降沿,
  • SO(MISO):SO為串行資料輸出引腳,在CLK(串行時鐘)管腳的下降沿輸出資料,
  • WP:WP為寫保護管腳,有效電平為低電平,高電平可讀可寫,低電平僅僅可讀,
  • SI(MOSI):SI為串行資料輸入引腳,資料、地址和命令從SI引腳輸入到芯片內部,在CLK(串行時鐘)管腳的上升沿捕獲捕獲資料,
  • CLK(SLCK):CLK為串行時鐘引腳,SPI時鐘引腳,為輸入輸出提供時鐘脈沖,
  • HOLD:HOLD為保持管腳,低電平有效,當CE為低電平,并且把HOLD拉低時,資料輸出管腳將保持高阻態,并且會忽略資料輸入管腳和時鐘管腳上的信號,把HOLD管腳拉高,器件恢復正常作業,
  • VCC:電源2.7V~3.6V,
  • GND:地

根據主芯片原理圖我們配置引腳如下:

  1. QUADSPI_BK1_IO1為PB0引腳
  2. QUADSPI_BK1_IO0為PB1引腳
  3. QUADSPI_CLK為PB10引腳
  4. QUADSPI_BK1_NCS為PB11引腳
  5. LED為PC13引腳
  6. UART1發送為PA9引腳
  7. UART1接收為PA10引腳
  8. 按鍵KEY1為PB2引腳
  9. 按鍵KEY2為PB3引腳

2.時鐘

采用內部時鐘(默認)配置系統時鐘最高80MHz

3.QSPI外設配置

代碼撰寫

  1. 移植QSPI驅動,
  2. 按鍵KEY1按下時,擦除一個扇區,并在一個位置寫入資料1,
  3. 按鍵KEY2按下時,擦除相同扇區,并在另一個位置寫入資料2,
  4. 按復位鍵,查看兩個位置寫入的資料,
    主要呼叫QSPI函式(示例):
QSPI_CommandTypeDef;
HAL_StatusTypeDef   HAL_QSPI_Command(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, uint32_t Timeout);
HAL_StatusTypeDef   HAL_QSPI_Transmit(QSPI_HandleTypeDef *hqspi, uint8_t *pData, uint32_t Timeout);
HAL_StatusTypeDef   HAL_QSPI_Receive(QSPI_HandleTypeDef *hqspi, uint8_t *pData, uint32_t Timeout);

還有驅動檔案中的介面函式,
主要函式代碼(示例):

  /* USER CODE BEGIN 1 */
uint32_t location1=0;
uint32_t location2=4096;
uint32_t W25xID;
uint16_t ReadData[]={0};
uint16_t ReadData_1[]={0};
uint8_t writeData[]={"welcome to IoT"};
uint8_t writeData_1[]={"第一個QuadSPI實驗"};
 /* USER CODE END 1 */

/* USER CODE BEGIN 2 */
	hal_spi_flash_read(ReadData,sizeof(writeData),0);//讀0位的資料
	printf("ReadFlashData:%s\r\n",(char*)ReadData);//列印讀出的資料		
	hal_spi_flash_read(ReadData_1,sizeof(writeData_1),4096);;//讀100位的資料
	printf("ReadFlashData_1:%s\r\n",(char*)ReadData_1);//列印讀出的資料
	W25xID=hal_spi_flash_get_id();//讀取芯片ID
  /* USER CODE END 2 */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {

  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
  if(HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin)==GPIO_PIN_RESET)
		{
		HAL_Delay(100);
			if(HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin)==GPIO_PIN_RESET)
			{
				printf("KEY1 Press \r\n");
				printf("W25xID:%x\r\n",W25xID);
				/*最小擦除為4096,所以一次就要擦除0-4096位置,然后在0-4096的任意位置寫入資料*/
				hal_spi_flash_erase_write(writeData, sizeof(writeData),0);
			}
		}
	if(HAL_GPIO_ReadPin(KEY2_GPIO_Port,KEY2_Pin)==GPIO_PIN_RESET)
			{
			HAL_Delay(100);
			if(HAL_GPIO_ReadPin(KEY2_GPIO_Port,KEY2_Pin)==GPIO_PIN_RESET)
				{
				printf("KEY2 Press \r\n");
				printf("W25xID:%x\r\n",W25xID);
				/*最小擦除為4096,所以一次就要擦除0-4096位置,然后在0-4096的任意位置寫入資料*/
				hal_spi_flash_erase_write(writeData_1, sizeof(writeData_1),location2);
				}
			}

  }
  /* USER CODE END 3 */

總結

對FLASH操作時,一定要注意扇區大小和地址,避免擦除重要資料,
STM32內部Flash有一套自己的操作函式,用時直接呼叫就好,內部flash的地址起始于0x0800,結束地址為起始地址加上內部flash大小,內部構成主要有:主存盤器、系統存盤器、OTP區域以及選項位元組區域,
主存盤器就是平時我們燒寫用到的區域,存放我們寫的垃圾用戶程式,寫入前先擦除之前的垃圾;
系統存盤器里邊固化的是系統代碼,也就是俗稱的韌體,實作引導燒錄等系統級功能;
OTP區域只能寫入一次,容量為512位元組,常用來存盤應用程式的加密密鑰;
選項位元組用于配置FLASH的讀寫保護、電源管理中的BOR級別、軟/硬看門狗功能,共32位元組,可通過修改選項控制暫存器修改,

總結

從上述三個示例中可以學到,一些常用的外部模塊,已經有很多已經實作好的驅動,我們只需要將MCU和模塊的通訊配置好,呼叫對應的介面函式就能通信,如果需要實作復雜的功能,可以使用已實作的驅動檔案,或者自己查閱手冊進行實作,這也是以后自己做產品時的思路,

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

標籤:其他

上一篇:STM32入門培訓

下一篇:關于執行緒(概念| 優缺點| 創建| 例外| 操作)

標籤雲
其他(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