STM32智能倉儲管理系統教程

目錄

  1. 引言
  2. 環境準備
  3. 晶智能倉儲管理系統基礎
  4. 代碼實現:實現智能倉儲管理系統 4.1 數據采集模塊 4.2 數據處理與決策模塊 4.3 通信與網絡系統實現 4.4 用戶界面與數據可視化
  5. 應用場景:倉儲管理與優化
  6. 問題解決方案與優化
  7. 收尾與總結

1. 引言

智能倉儲管理系統通過STM32嵌入式系統結合各種傳感器、執行器和通信模塊,實現對倉儲環境的實時監控、自動控制和數據傳輸。本文將詳細介紹如何在STM32系統中實現一個智能倉儲管理系統,包括環境準備、系統架構、代碼實現、應用場景及問題解決方案和優化方法。

2. 環境準備

硬件準備

  1. 開發板:STM32F4系列或STM32H7系列開發板
  2. 調試器:ST-LINK V2或板載調試器
  3. 傳感器:如溫濕度傳感器、光照傳感器、煙霧傳感器
  4. 執行器:如風扇、燈光、報警器
  5. 通信模塊:如Wi-Fi模塊、ZigBee模塊
  6. 顯示屏:如OLED顯示屏
  7. 按鍵或旋鈕:用于用戶輸入和設置
  8. 電源:電源適配器

軟件準備

  1. 集成開發環境(IDE):STM32CubeIDE或Keil MDK
  2. 調試工具:STM32 ST-LINK Utility或GDB
  3. 庫和中間件:STM32 HAL庫和FreeRTOS

安裝步驟

  1. 下載并安裝STM32CubeMX
  2. 下載并安裝STM32CubeIDE
  3. 配置STM32CubeMX項目并生成STM32CubeIDE項目
  4. 安裝必要的庫和驅動程序

3. 智能倉儲管理系統基礎

控制系統架構

智能倉儲管理系統由以下部分組成:

  1. 數據采集模塊:用于采集倉儲環境中的溫度、濕度、光照、煙霧等數據
  2. 數據處理與決策模塊:對采集的數據進行處理和分析,生成控制信號
  3. 通信與網絡系統:實現監測系統與服務器或其他設備的通信
  4. 顯示系統:用于顯示系統狀態和監測信息
  5. 用戶輸入系統:通過按鍵或旋鈕進行設置和調整

功能描述

通過各種傳感器采集倉儲環境中的關鍵數據,并實時顯示在OLED顯示屏上。系統通過數據處理和網絡通信,實現對倉儲環境的監測和控制。用戶可以通過按鍵或旋鈕進行設置,并通過顯示屏查看當前狀態。

4. 代碼實現:實現智能倉儲管理系統

4.1 數據采集模塊

配置溫濕度傳感器

使用STM32CubeMX配置I2C接口:

  1. 打開STM32CubeMX,選擇您的STM32開發板型號。
  2. 在圖形化界面中,找到需要配置的I2C引腳,設置為I2C模式。
  3. 生成代碼并導入到STM32CubeIDE中。

代碼實現:

#include "stm32f4xx_hal.h"
#include "i2c.h"
#include "dht22.h"I2C_HandleTypeDef hi2c1;void I2C1_Init(void) {hi2c1.Instance = I2C1;hi2c1.Init.ClockSpeed = 100000;hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;hi2c1.Init.OwnAddress1 = 0;hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;hi2c1.Init.OwnAddress2 = 0;hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;HAL_I2C_Init(&hi2c1);
}void Read_Temperature_Humidity(float* temperature, float* humidity) {DHT22_ReadAll(temperature, humidity);
}int main(void) {HAL_Init();SystemClock_Config();I2C1_Init();DHT22_Init();float temperature, humidity;while (1) {Read_Temperature_Humidity(&temperature, &humidity);HAL_Delay(1000);}
}
配置光照傳感器

使用STM32CubeMX配置ADC接口:

  1. 打打開STM32CubeMX,選擇您的STM32開發板型號。
  2. 在圖形化界面中,找到需要配置的ADC引腳,設置為輸入模式。
  3. 生成代碼并導入到STM32CubeIDE中。

代碼實現:

#include "stm32f4xx_hal.h"ADC_HandleTypeDef hadc1;void ADC_Init(void) {__HAL_RCC_ADC1_CLK_ENABLE();ADC_ChannelConfTypeDef sConfig = {0};hadc1.Instance = ADC1;hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;hadc1.Init.Resolution = ADC_RESOLUTION_12B;hadc1.Init.ScanConvMode = DISABLE;hadc1.Init.ContinuousConvMode = ENABLE;hadc1.Init.DiscontinuousConvMode = DISABLE;hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;hadc1.Init.NbrOfConversion = 1;hadc1.Init.DMAContinuousRequests = DISABLE;hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;HAL_ADC_Init(&hadc1);sConfig.Channel = ADC_CHANNEL_0;sConfig.Rank = 1;sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;HAL_ADC_ConfigChannel(&hadc1, &sConfig);
}uint32_t Read_Light_Intensity(void) {HAL_ADC_Start(&hadc1);HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY);return HAL_ADC_GetValue(&hadc1);
}int main(void) {HAL_Init();SystemClock_Config();ADC_Init();uint32_t light_intensity;while (1) {light_intensity = Read_Light_Intensity();HAL_Delay(1000);}
}
配置煙霧傳感器

使用STM32CubeMX配置ADC接口:

  1. 打打開STM32CubeMX,選擇您的STM32開發板型號。
  2. 在圖形化界面中,找到需要配置的ADC引腳,設置為輸入模式。
  3. 生成代碼并導入到STM32CubeIDE中。

代碼實現:

#include "stm32f4xx_hal.h"ADC_HandleTypeDef hadc2;void ADC2_Init(void) {__HAL_RCC_ADC2_CLK_ENABLE();ADC_ChannelConfTypeDef sConfig = {0};hadc2.Instance = ADC2;hadc2.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;hadc2.Init.Resolution = ADC_RESOLUTION_12B;hadc2.Init.ScanConvMode = DISABLE;hadc2.Init.ContinuousConvMode = ENABLE;hadc2.Init.DiscontinuousConvMode = DISABLE;hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;hadc2.Init.ExternalTrigConv = ADC_SOFTWARE_START;hadc2.Init.DataAlign = ADC_DATAALIGN_RIGHT;hadc2.Init.NbrOfConversion = 1;hadc2.Init.DMAContinuousRequests = DISABLE;hadc2.Init.EOCSelection = ADC_EOC_SINGLE_CONV;HAL_ADC_Init(&hadc2);sConfig.Channel = ADC_CHANNEL_1;sConfig.Rank = 1;sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;HAL_ADC_ConfigChannel(&hadc2, &sConfig);
}uint32_t Read_Smoke_Level(void) {HAL_ADC_Start(&hadc2);HAL_ADC_PollForConversion(&hadc2, HAL_MAX_DELAY);return HAL_ADC_GetValue(&hadc2);
}int main(void) {HAL_Init();SystemClock_Config();ADC2_Init();uint32_t smoke_level;while (1) {smoke_level = Read_Smoke_Level();HAL_Delay(1000);}
}

4.2 數據處理與決策模塊

數據處理模塊將傳感器數據轉換為可用于控制系統的數據,并進行必要的計算和分析。

環境控制算法

實現一個簡單的環境控制算法,用于根據傳感器數據控制風扇、燈光和報警器:

#define TEMP_THRESHOLD 25.0
#define HUMIDITY_THRESHOLD 60.0
#define LIGHT_THRESHOLD 3000
#define SMOKE_THRESHOLD 500void Control_Environment(float temperature, float humidity, uint32_t light_intensity, uint32_t smoke_level) {if (temperature > TEMP_THRESHOLD || humidity > HUMIDITY_THRESHOLD) {// 打開風扇HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);} else {// 關閉風扇HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);}if (light_intensity < LIGHT_THRESHOLD) {// 打開燈光HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);} else {// 關閉燈光HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);}if (smoke_level > SMOKE_THRESHOLD) {// 打開報警器HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_SET);} else {// 關閉報警器HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, GPIO_PIN_RESET);}
}int main(void) {HAL_Init();SystemClock_Config();ADC_Init();ADC2_Init();I2C1_Init();DHT22_Init();GPIO_Init();float temperature, humidity;uint32_t light_intensity, smoke_level;while (1) {Read_Temperature_Humidity(&temperature, &humidity);light_intensity = Read_Light_Intensity();smoke_level = Read_Smoke_Level();Control_Environment(temperature, humidity, light_intensity, smoke_level);HAL_Delay(1000);}
}

4.3 通信與網絡系統實現

配置Wi-Fi模塊

使用STM32CubeMX配置UART接口:

  1. 打打開STM32CubeMX,選擇您的STM32開發板型號。
  2. 在圖形化界面中,找到需要配置的UART引腳,設置為UART模式。
  3. 生成代碼并導入到STM32CubeIDE中。

代碼實現:

#include "stm32f4xx_hal.h"
#include "usart.h"
#include "wifi_module.h"UART_HandleTypeDef huart1;void UART1_Init(void) {huart1.Instance = USART1;huart1.Init.BaudRate = 115200;huart1.Init.WordLength = UART_WORDLENGTH_8B;huart1.Init.StopBits = UART_STOPBITS_1;huart1.Init.Parity = UART_PARITY_NONE;huart1.Init.Mode = UART_MODE_TX_RX;huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;huart1.Init.OverSampling = UART_OVERSAMPLING_16;HAL_UART_Init(&huart1);
}void Send_Data_To_Server(float temperature, float humidity, uint32_t light_intensity, uint32_t smoke_level) {char buffer[128];sprintf(buffer, "Temperature: %.2f, Humidity: %.2f, Light Intensity: %lu, Smoke Level: %lu",temperature, humidity, light_intensity, smoke_level);HAL_UART_Transmit(&huart1, (uint8_t*)buffer, strlen(buffer), HAL_MAX_DELAY);
}int main(void) {HAL_Init();SystemClock_Config();UART1_Init();ADC_Init();ADC2_Init();I2C1_Init();DHT22_Init();float temperature, humidity;uint32_t light_intensity, smoke_level;while (1) {Read_Temperature_Humidity(&temperature, &humidity);light_intensity = Read_Light_Intensity();smoke_level = Read_Smoke_Level();Send_Data_To_Server(temperature, humidity, light_intensity, smoke_level);HAL_Delay(1000);}
}

4.4 用戶界面與數據可視化

配置OLED顯示屏

使用STM32CubeMX配置I2C接口:

  1. 打打開STM32CubeMX,選擇您的STM32開發板型號。
  2. 在圖形化界面中,找到需要配置的I2C引腳,設置為I2C模式。
  3. 生成代碼并導入到STM32CubeIDE中。

代碼實現:

首先,初始化OLED顯示屏:

#include "stm32f4xx_hal.h"
#include "i2c.h"
#include "oled.h"void Display_Init(void) {OLED_Init();
}

然后實現數據展示函數,將倉儲環境數據展示在OLED屏幕上:

void Display_Data(float temperature, float humidity, uint32_t light_intensity, uint32_t smoke_level) {char buffer[32];sprintf(buffer, "Temp: %.2f", temperature);OLED_ShowString(0, 0, buffer);sprintf(buffer, "Humidity: %.2f", humidity);OLED_ShowString(0, 1, buffer);sprintf(buffer, "Light: %lu", light_intensity);OLED_ShowString(0, 2, buffer);sprintf(buffer, "Smoke: %lu", smoke_level);OLED_ShowString(0, 3, buffer);
}int main(void) {HAL_Init();SystemClock_Config();I2C1_Init();Display_Init();ADC_Init();ADC2_Init();I2C1_Init();DHT22_Init();float temperature, humidity;uint32_t light_intensity, smoke_level;while (1) {Read_Temperature_Humidity(&temperature, &humidity);light_intensity = Read_Light_Intensity();smoke_level = Read_Smoke_Level();// 顯示倉儲環境數據Display_Data(temperature, humidity, light_intensity, smoke_level);HAL_Delay(1000);}
}

5. 應用場景:倉儲管理與優化

倉庫環境監控

智能倉儲管理系統可以用于倉庫的環境監控,通過實時采集環境數據,實現自動控制,提高倉庫的安全性和管理效率。

冷庫環境管理

在冷庫中,智能倉儲管理系統可以實現對溫濕度的實時監控和自動調節,確保冷庫環境的穩定。

物流中心環境監控

智能倉儲管理系統可以用于物流中心的環境監控,通過自動化控制和數據分析,提高物流中心的管理效率和安全性。

智能倉儲研究

智能倉儲管理系統可以用于智能倉儲研究,通過數據采集和分析,為倉儲管理和優化提供科學依據。

?幫大家整理了單片機的資料

包括stm32的項目合集【源碼+開發文檔】

點擊下方藍字即可領取,感謝支持!?

點擊領取更多嵌入式詳細資料

問題討論,stm32的資料領取可以私信!

6. 問題解決方案與優化

常見問題及解決方案

傳感器數據不準確

確保傳感器與STM32的連接穩定,定期校準傳感器以獲取準確數據。

解決方案:檢查傳感器與STM32之間的連接是否牢固,必要時重新焊接或更換連接線。同時,定期對傳感器進行校準,確保數據準確。

環境控制不穩定

優化控制算法和硬件配置,減少環境控制的不穩定性,提高系統反應速度。

解決方案:優化控制算法,調整參數,減少振蕩和超調。使用高精度傳感器,提高數據采集的精度和穩定性。選擇更高效的執行器,提高環境控制的響應速度。

數據傳輸失敗

確保Wi-Fi模塊與STM32的連接穩定,優化通信協議,提高數據傳輸的可靠性。

解決方案:檢查Wi-Fi模塊與STM32之間的連接是否牢固,必要時重新焊接或更換連接線。優化通信協議,減少數據傳輸的延遲和丟包率。選擇更穩定的通信模塊,提升數據傳輸的可靠性。

顯示屏顯示異常

檢查I2C通信線路,確保顯示屏與MCU之間的通信正常,避免由于線路問題導致的顯示異常。

解決方案:檢查I2C引腳的連接是否正確,確保電源供電穩定。使用示波器檢測I2C總線信號,確認通信是否正常。如有必要,更換顯示屏或MCU。

優化建議

數據集成與分析

集成更多類型的傳感器數據,使用數據分析技術進行環境狀態的預測和優化。

建議:增加更多監測傳感器,如CO2傳感器、噪聲傳感器等。使用云端平臺進行數據分析和存儲,提供更全面的環境監測和管理服務。

用戶交互優化

改進用戶界面設計,提供更直觀的數據展示和更簡潔的操作界面,增強用戶體驗。

建議:使用高分辨率彩色顯示屏,提供更豐富的視覺體驗。設計簡潔易懂的用戶界面,讓用戶更容易操作。提供圖形化的數據展示,如實時環境參數圖表、歷史記錄等。

智能化控制提升

增加智能決策支持系統,根據歷史數據和實時數據自動調整控制策略,實現更高效的環境控制和管理。

建議:使用數據分析技術分析環境數據,提供個性化的環境管理建議。結合歷史數據,預測可能的問題和需求,提前優化控制策略。

7. 收尾與總結

本教程詳細介紹了如何在STM32嵌入式系統中實現智能倉儲管理系統,從硬件選擇、軟件實現到系統配置和應用場景都進行了全面的闡述。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44635.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44635.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44635.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

7 月12日學習打卡--棧和隊列的相互轉換

hello大家好呀&#xff0c;本博客目的在于記錄暑假學習打卡&#xff0c;后續會整理成一個專欄&#xff0c;主要打算在暑假學習完數據結構&#xff0c;因此會發一些相關的數據結構實現的博客和一些刷的題&#xff0c;個人學習使用&#xff0c;也希望大家多多支持&#xff0c;有不…

什么是STM32?嵌入式和STM32簡單介紹

1、嵌入式和STM32 1.1.什么是嵌入式 除了桌面PC之外&#xff0c;所有的控制類設備都是嵌入式 嵌入式系統的定義&#xff1a;“用于控制、監視或者輔助操作機器和設備的裝置”。 嵌入式系統是一個控制程序存儲在ROM中的嵌入式處理器控制板&#xff0c;是一種專用的計算機系統。…

初階數據結構速成

本篇文章算是對初階數據結構的總結&#xff0c;內容較多&#xff0c;請耐心觀看 基礎概念部分 順序表 線性表&#xff08; linear list &#xff09;是n個具有相同特性的數據元素的有限序列。 線性表是?種在實際中?泛使 ?的數據結構&#xff0c;常?的線性表&#xff1a;…

C語言 錯題本

C語言 錯題本 文章目錄 C語言 錯題本77月11號整數求逆--掌握 7月12號求符合給定條件的整數集水仙花數打印九九口訣表--掌握統計素數并求和--掌握 7月13號湊硬幣前n項和(一加一減)最大公約數 7月14號正序整數分解 7月17號簡單計算器 217月26號求符合給定條件的整數集水仙花數 旨…

【安全設備】上網行為管理

一、什么是上網行為管理 上網行為管理是對企業內部員工使用互聯網行為的監視和管理&#xff0c;旨在規范網絡使用者的上網行為&#xff0c;提高網絡安全性&#xff0c;保護企業信息安全&#xff0c;同時提高員工的工作效率。上網行為管理通過對員工的上網行為進行監控、記錄和…

機器學習——關于極大似然估計法的一些個人思考(通俗易懂極簡版)

最近在回顧機器學習的一些相關理論知識&#xff0c;回顧到極大似然法時&#xff0c;對于極大似然法中的一些公式有些迷糊了&#xff0c;所以本文主要想記錄并分享一下個人關于極大似然估計法的一些思考&#xff0c;如果有誤&#xff0c;請見諒&#xff0c;歡迎一起前來探討。當…

單元測試實施最佳方案(背景、實施、覆蓋率統計)

1. 什么是單元測試&#xff1f; 對于很多開發人員來說&#xff0c;單元測試一定不陌生 單元測試是白盒測試的一種形式&#xff0c;它的目標是測試軟件的最小單元——函數、方法或類。單元測試的主要目的是驗證代碼的正確性&#xff0c;以確保每個單元按照預期執行。單元測試通…

合肥高校大學智能制造實驗室數字孿生可視化系統平臺建設項目驗收

合肥高校大學智能制造實驗室近日迎來了一項重要時刻&#xff0c;數字孿生可視化系統平臺建設項目順利通過了驗收。這一項目的成功實施&#xff0c;不僅標志著合肥高校在智能制造領域取得新的突破&#xff0c;為我國智能制造技術的發展注入新活力。 合肥高校智能制造實驗室作為…

T972 切換至pdm 聲音輸入的方法

1.在hardware/amlogic/audio/audio_hal/audio_hw.c下&#xff0c;直接切換 在 static unsigned int select_port_by_device(struct aml_audio_device *adev) 中先強制切換為pdm 2.在device mk 配置文件中 #add fof fix the mic bug by jason 20230621 PRODUCT_PROPERTY_OVE…

MySQL 數據庫基礎概念

一、什么是數據庫&#xff1f; 數據庫&#xff08;Database&#xff09;是按照數據結構來組織、存儲和管理數據的倉庫。 每個數據庫都有一個或多個不同的 API 用于創建&#xff0c;訪問&#xff0c;管理&#xff0c;搜索和復制所保存的數據。 我們也可以將數據存儲在文件中&…

淺析Kafka Streams中KTable.aggregate()方法的使用

KTable.aggregate() 方法是 Apache Kafka Streams API 中用于對流數據進行狀態化聚合的核心方法之一。這個方法允許你根據一個鍵值&#xff08;通常是<K,V>類型&#xff09;的流數據&#xff0c;應用一個初始值和一個聚合函數&#xff0c;來累積和更新一個狀態&#xff0…

MSPM0G3507(三十六)——超聲波PID控制小車固定距離

效果圖&#xff1a; 波形圖軟件是VOFA&#xff0c;B站有教程 &#xff0c;雖然有缺點但是非常簡單。 視頻效果&#xff1a; PID控制距離 之前發過只有超聲波測距的代碼&#xff0c;MSPM0G3507&#xff08;三十二&#xff09;——超聲波模塊移植代碼-CSDN博客 SYSCFG配置&#…

Ubuntu下如何設置程序include搜索路徑及鏈接路徑

添加庫的include及lib路徑 linux下系統默認路徑為 /usr/include, /usr/local/include, gcc在編譯程序時會按照當前目錄路徑->系統默認路徑->系統環境變量的路徑方式去查找&#xff0c;所以當我們想調用的庫未安裝在系統默認路徑時&#xff0c;我們可以通過手動添加環境變…

數據壓縮的藝術:Kylin Cube設計中的自動壓縮特性

數據壓縮的藝術&#xff1a;Kylin Cube設計中的自動壓縮特性 在大數據的浩瀚宇宙中&#xff0c;Apache Kylin以其卓越的數據立方體&#xff08;Cube&#xff09;技術&#xff0c;為企業提供快速的多維數據分析能力。隨著數據量的不斷增長&#xff0c;存儲效率成為了一個關鍵問…

用友NC Cloud blobRefClassSearch FastJson反序列化RCE漏洞復現

0x01 產品簡介 用友 NC Cloud 是一種商業級的企業資源規劃云平臺,為企業提供全面的管理解決方案,包括財務管理、采購管理、銷售管理、人力資源管理等功能,實現企業的數字化轉型和業務流程優化。 0x02 漏洞概述 用友 NC Cloud blobRefClassSearch 接口處存在FastJson反序列…

開源PHP論壇HadSky本地部署與配置公網地址實現遠程訪問

文章目錄 前言1. 網站搭建1.1 網頁下載和安裝1.2 網頁測試1.3 cpolar的安裝和注冊 2. 本地網頁發布2.1 Cpolar臨時數據隧道2.2 Cpolar穩定隧道&#xff08;云端設置&#xff09;2.3 Cpolar穩定隧道&#xff08;本地設置&#xff09;2.4 公網訪問測試 總結 前言 今天和大家分享…

idea啟動ssm項目詳細教程

前言 今天碰到一個ssm的上古項目&#xff0c;項目沒有使用內置的tomcat作為服務器容器&#xff0c;這個時候就需要自己單獨設置tomcat容器。這讓我想起了我剛入行時被外置tomcat配置支配的恐懼。現在我打算記錄一下配置的過程&#xff0c;希望對后面的小伙伴有所幫助吧。 要求…

什么是計算機數據結構的字典

字典數據結構在計算機編程領域中是一個非常重要且常用的數據結構。它也被稱為關聯數組、哈希表或映射&#xff08;Map&#xff09;&#xff0c;在不同編程語言中有不同的實現和稱呼&#xff0c;但其核心概念和用途大致相同。 字典數據結構是一種鍵值對&#xff08;key-value p…

Linux 軟件工具安裝

Linux 軟件包管理器 yum 什么是軟件包 在Linux下安裝軟件&#xff0c; 一個通常的辦法是下載到程序的源代碼&#xff0c; 并進行編譯&#xff0c;得到可執行程序。 但是這樣太麻煩了&#xff0c; 于是有些人把一些常用的軟件提前編譯好&#xff0c;做成軟件包(可以理解成wind…

動態路由的基本概念

動態路由的基本概念 什么是動態路由&#xff1f; 網絡中的路由器彼此之間相互通信&#xff0c;傳遞各自的路由信息&#xff0c;利用收到的路由信息來更新和維護自己的路由表的過程。 基于某種路由協議實現&#xff08;6大協議&#xff09;。 動態路由的特點&#xff1a; 減…