STM32學習筆記之常用外設接口(原理篇)

📢:如果你也對機器人、人工智能感興趣,看來我們志同道合?
📢:不妨瀏覽一下我的博客主頁【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸對你有幫助,可點贊 👍 收藏 ?不迷路🙉
📢:內容若有錯誤,敬請留言 📝指正!原創文,轉載注明出處

文章目錄

  • 單片機常見外設接口有哪些?
  • UART
    • 基礎概念
    • 通信協議
    • 硬件結構
    • 工作原理
    • 電平標準
    • 特點
  • GPIO
    • 基本概念
    • 寄存器相關
    • 工作模式
    • 基本操作
    • 優點
    • 常見應用場景
  • SPI
    • 基本概念
    • 物理連接
    • 通信協議
    • 工作原理
    • 優缺點
    • 軟件編程要點
  • I2C
    • 基礎概念
    • 物理連接
    • 通信協議
    • 工作模式
    • 通信速率
    • 優缺點
    • 軟件編程要點


單片機常見外設接口有哪些?

接口類型特點
GPIO(通用輸入/輸出)引腳功能靈活,可配置為輸入、輸出、復用功能或模擬模式;支持上拉、下拉電阻設置以及電平觸發中斷;常用于連接按鍵、LED、繼電器等簡單數字設備 ,進行數字信號的輸入輸出控制
UART(通用異步收發器)支持異步通信,可自定義波特率進行數據傳輸;硬件連接簡單,一般只需RX(接收)和TX(發送)兩根線;傳輸距離較短,速率相對不高;常用于單片機與電腦間調試、與藍牙模塊等通信
SPI(串行外設接口)高速同步串行通信,支持全雙工;通常由時鐘線SCLK、主機輸出從機輸入線MOSI、主機輸入從機輸出線MISO和從機選擇線SS組成;主從模式,一個主機可連接多個從機;適合連接高速外部設備,如ADC、FLASH存儲器、顯示屏等
I2C(雙線接口)低速同步串行總線,僅需數據線SDA和時鐘線SCL;支持多主多從架構;通過設備地址進行尋址,占用引腳少;通信速率通常在100kHz到1MHz之間;常用于連接低功耗外設,如溫濕度傳感器、EEPROM、實時鐘(RTC) 等
CAN(控制器局域網)支持多主設備串行通信,具有高可靠性和強抗干擾能力;能實現較長距離的數據傳輸(最遠可達數公里),且傳輸速率較高(最高可達1Mbps);主要應用于工業自動化控制、汽車電子系統等領域
ADC(模數轉換器)將模擬信號轉換為數字信號,便于單片機處理;有不同的分辨率和采樣速率可選;廣泛應用于溫度、壓力、電壓等模擬量測量場景,如各類傳感器數據采集
DAC(數模轉換器)把數字信號轉換為模擬信號;可用于生成模擬控制信號,如音頻信號生成、模擬信號驅動等
PWM(脈沖寬度調制)通過調節脈沖信號的占空比來控制信號的平均值;可用于電機調速、LED亮度調節、電源電壓調節等場景 ,實現對外部設備的模擬量控制
USB(通用串行總線)支持高速數據傳輸,同時可為設備供電;具備即插即用功能,支持多種設備類型,如存儲設備、通信設備、音頻設備等;接口標準統一,兼容性好

UART

UART(通用異步收發傳輸器)的知識點主要涵蓋以下方面:

基礎概念

  • 定義:一種通用串行數據總線,用于異步通信,能實現雙向全雙工傳輸和接收。
  • 歷史:可追溯到1960年,最初用于連接微型計算機與電傳打字機 。
  • 用途:在嵌入式設計中,用于主機與輔助設備通信,如汽車音響與外接AP通信、與PC機及其他器件(像EEPROM)通信等;在手機設計和測試階段控制CPU與其余部分的訊息傳送。

通信協議

  • 數據傳輸方式:將傳輸數據的每個字符一位接一位地傳輸。
  • 數據幀結構
    • 起始位:邏輯“0”,表示傳輸字符開始。
    • 數據位:可以是4、5、6、7、8位等,常采用ASCII碼,從最低位開始傳送。
    • 奇偶校驗位:用于校驗資料傳送的正確性,使“1”的位數為偶數(偶校驗)或奇數(奇校驗) ,也可無校驗位。
    • 停止位:是字符數據的結束標志,可為1位、1.5位或2位高電平,還可提供時鐘同步校正機會。
    • 空閑位:邏輯“1”,表示當前線路無資料傳送。
  • 波特率:衡量資料傳送速率的指標,指每秒鐘傳送的符號數。通信雙方需設置相同波特率以確保數據正確傳輸,常見的有9600、115200等。

硬件結構

  • 輸出緩沖寄存器:接收CPU從數據總線上送來的并行數據并保存。
  • 輸出移位寄存器:接收輸出緩沖器的并行數據,以發送時鐘速率逐位移出,實現并行到串行數據的轉換。
  • 輸入移位寄存器:以接收時鐘速率逐位移入串行數據,裝滿后轉換為并行數據送往輸入緩沖寄存器。
  • 輸入緩沖寄存器:接收輸入移位寄存器的并行數據,供CPU取走。
  • 控制寄存器:接收CPU送來的控制字,決定通信的傳輸方式(異步或同步)、數據格式(數據位個數、有無奇偶校驗、停止位位數等)。
  • 狀態寄存器:存放接口各種狀態信息,如輸出緩沖區是否空、輸入字符是否準備好等,便于CPU查詢。

工作原理

  • 發送接收:發送邏輯將從發送FIFO讀取的數據進行“并→串”轉換,按配置輸出起始位、數據位、奇偶校驗位和停止位;接收邏輯在檢測到有效起始脈沖后,對接收位流執行“串→并”轉換,并檢測各類錯誤 。
  • 波特率產生:波特率除數由16位整數和6位小數組成,波特率發生器用其決定位周期,在足夠高系統時鐘速率下,可產生標準波特率且誤差小。
  • 數據收發:發送時數據寫入發送FIFO,按預設參數發送,發送FIFO非空時忙標志位有效;接收時,若檢測到起始位,接收計數器運行,按規則采樣數據,接收到完整字符存于接收FIFO。
  • 中斷控制:FIFO溢出、線中止、奇偶校驗錯誤、幀錯誤、接收超時、發送、接收等情況可使UART產生中斷,通過查詢中斷狀態函數,軟件可在同個中斷服務函數處理多個中斷事件。
  • FIFO操作:包含發送和接收FIFO,可配置不同深度觸發中斷,解決UART收發中斷頻繁導致CPU效率不高的問題,按先進先出原則操作。
  • 回環操作:可進入內部回環模式,用于診斷或調試,發送的數據被自身接收。

電平標準

  • TTL:使用標準TTL邏輯電平(常見5V、3.3V、1.8V ),設備共地,單向通信一根信號線,雙向全雙工需兩根,適用于短距離通信,如電子DIY項目、嵌入式系統等。
  • RS - 232:美國電子工業聯盟指定的串行數據通信接口標準,電平范圍-15V至+15V,典型±12V,用于計算機串行接口和外部設備通信,如調制解調器、打印機等,適用于短距離通信,抗干擾性較好。
  • RS - 485:基于RS - 422標準制定,多點、差分信號串行通信標準,以正負差分電平表示數據,支持多個設備在同一通信線傳輸,通信距離可達1200米,適用于遠距離和噪聲環境下的通信 。

特點

  • 優點:布線簡單,只需兩根線(TX和RX);不需要時鐘信號;可通過奇偶校驗位執行錯誤檢查;數據包結構可更改;應用廣泛。
  • 限制:數據幀最多9位;無法設置多個從站或主站系統;波特率偏差需在10%以內 。

此外,UART與USART(通用同步/異步收發器)有所關聯,USART在UART基礎上增加了同步功能,多了僅支持輸出的時鐘,可兼容別的協議或用于特殊用途,但不支持兩個USART之間同步通信 。

GPIO

GPIO(General - purpose input/output,通用型輸入輸出)的知識點主要包含以下方面:

基本概念

  • 定義:是一種通用的輸入輸出接口,像微控制器的“手腳”,通過芯片引腳與外部設備連接,實現單片機等與外部世界的交互,幾乎所有微控制器都具備該功能。
  • 功能選擇:一個引腳可作通用輸入(GPI)、通用輸出(GPO) 或通用輸入與輸出(GPIO),如clk generator(時鐘發生器)、chip select(片選)等功能。其功能由寄存器配置選擇。

寄存器相關

  • GPxCON寄存器:用于配置引腳功能。不同端口在功能選擇上有差異,如GPACON中每一位對應一根引腳;PORT B - PORT H/J的GPxCON中每兩位控制一根引腳,通過設置不同數值確定引腳為輸入、輸出、特殊功能或保留狀態。
  • GPxDAT寄存器:用于讀寫引腳。當引腳設為輸入,讀取此寄存器可知引腳電平狀態;設為輸出時,寫入相應位可控制引腳輸出電平 。
  • GPxUP寄存器:用于確定是否使用內部上拉電阻。某位為1時,相應管腳無內部上拉電阻;為0時相應管腳有內部上拉電阻。上拉電阻在引腳處于高阻態時,決定引腳電平狀態 。

工作模式

  • 輸入模式
    • 浮空輸入:電平由外部輸入決定,引腳懸空時電平不確定、易受干擾,常用于外部按鍵輸入、IIC和USART等標準通訊協議,是STM32復位后的默認模式。
    • 上拉輸入:通過上拉電阻將輸入信號鉗在高電平,外部無信號輸入時引腳讀高電平,可避免電平浮動導致信號不穩定。
    • 下拉輸入:借助下拉電阻使引腳在無外部輸入時為低電平。
    • 模擬輸入:信號不經過上拉或下拉電阻,關閉施密特觸發器,直接傳送到片上外設模塊,用于ADC采集電壓等場景,獲取原始模擬信號 。
  • 輸出模式
    • 推挽輸出:使用兩個MOS管,輸出寄存器為’0’時激活NMOS,為’1’時激活PMOS,具備輸出高低電平能力,可直接驅動一些負載 。
    • 開漏輸出:僅使用NMOS,輸出寄存器為’1’時端口處于高阻狀態,無法真正輸出高電平,需外部上拉電阻,可改變上拉電源電壓提高驅動能力,還能實現線與功能,常用于IIC等總線協議 。

基本操作

  • 配置:使用前需進行配置,步驟包括使能GPIO時鐘,設置GPIO方向(輸入/輸出) 以及配置工作模式。例如在STM32中,通過操作相關寄存器完成這些配置。
  • 輸出操作:配置為輸出模式后,可通過設置輸出電平控制外部設備,如控制LED亮滅。操作相關寄存器實現電平設置,部分寄存器支持原子操作,避免多線程沖突 。
  • 輸入操作:配置為輸入模式后,可讀取引腳電平狀態,如讀取按鍵狀態 。

優點

  • 低功耗:功率損耗低,如約1μA,遠低于微控制器(μC)工作電流(約100μA)。
  • 集成接口:內置IIC從機接口,待機模式也能全速工作。
  • 封裝小成本低:提供小尺寸封裝如3mm x 3mm QFN,且只需為使用的功能付費。
  • 開發便捷:無需編寫額外代碼、文檔和維護,可預先確定響應時間,還能實現靈活的燈光控制,布線簡單,僅需2條線組成IIC總線或3條組成SPI總線 。

常見應用場景

  • 簡單設備控制:控制LED燈亮滅、蜂鳴器發聲、繼電器開關等。
  • 輸入信號讀取:讀取按鍵狀態、檢測外部開關狀態;連接傳感器(如溫度、濕度傳感器)讀取數據;用于觸摸屏輸入,檢測觸摸操作和獲取坐標 。
  • 通信接口:復用為串行通信接口(如SPI、I2C、UART)、定時器輸入/輸出等 。
  • 電機驅動:控制電機正反轉、速度等 。

SPI

SPI(Serial Peripheral Interface,串行外設接口)的知識點主要有以下這些:

基本概念

  • 定義:SPI 是一種高速、全雙工、同步的通信總線,由摩托羅拉首先在其處理器上定義。采用主從模式工作,通常一個主設備可與一個或多個從設備通信。
  • 應用場景:常用于芯片間的數據傳輸,廣泛應用于EEPROM、FLASH、實時時鐘、AD轉換器、數字信號處理器和數字信號解碼器等設備之間 。

物理連接

SPI接口一般使用4條線進行通信:

  • SCLK(Serial Clock,串行時鐘線) :由主設備產生,用于同步主從設備間的數據傳輸,控制數據交換的時機和速率。
  • MOSI(Master Output Slave Input,主出從入數據線) :主設備通過這條線向從設備發送數據。
  • MISO(Master Input Slave Output,主入從出數據線) :從設備通過該線向主設備發送數據。
  • SS/CS(Slave Select/Chip select,從機選擇線/片選線) :由主設備控制,低電平有效。當某從設備的SS線被拉低時,主設備才能與該從設備進行通信,可允許多個從設備連接到同一SPI總線上 。

通信協議

  • 數據傳輸 :SPI以串行方式一位一位傳輸數據,在時鐘信號SCLK的作用下,主從設備的移位寄存器進行數據交換。主設備發起讀寫操作,且在每個時鐘周期,主從設備都會同時發送和接收一位數據,完成一次數據交換。若只需寫操作,主機忽略接收的數據;若要讀數據,主機需發送一個空字節來觸發從機傳輸 。
  • 傳輸模式:根據時鐘極性(CPOL)和時鐘相位(CPHA)的不同組合,SPI有4種傳輸模式:
    • 模式0:CPOL = 0(時鐘空閑時為低電平),CPHA = 0(在時鐘的第一個上升沿采樣數據,下降沿切換數據)。
    • 模式1:CPOL = 0,CPHA = 1(在時鐘的第一個下降沿采樣數據,上升沿切換數據) 。
    • 模式2:CPOL = 1(時鐘空閑時為高電平),CPHA = 0(在時鐘的第一個下降沿采樣數據,上升沿切換數據) 。
    • 模式3:CPOL = 1,CPHA = 1(在時鐘的第一個上升沿采樣數據,下降沿切換數據) 。
      主從設備必須工作在相同模式下才能正常通信。
  • 傳輸速率:沒有固定的傳輸速率限制,可自定義,一般在400KHz - 10MHz,實際速率受硬件特性和應用場景制約 。

工作原理

主設備和從設備內部都有串行移位寄存器。通信時,主設備先拉低對應從設備的SS線,選中該從設備,然后通過SCLK發送時鐘信號,同時將要發送的數據寫入發送數據緩存區,經移位寄存器從MOSI逐位發送給從設備;從設備在SCLK作用下,將自身移位寄存器中的數據從MISO返回給主設備,并通過MOSI接收主設備發送的數據,從而實現數據交換 。

優缺點

  • 優點
    • 高速高效:全雙工同步通信,能實現高速數據傳輸,數據傳輸效率高。
    • 硬件簡單:只需4根線,節省芯片引腳和PCB布局空間,硬件設計簡單。
    • 易于擴展:支持一主多從拓撲結構,主設備可方便地與多個從設備通信 。
  • 缺點
    • 缺乏流控和應答:沒有指定的流控制機制,也無應答機制確認數據是否被接收,需在應用層自行處理相關問題 。
    • 從設備選擇復雜:多個從設備時,每個從設備需獨立片選信號,硬件復雜度比I2C等總線高 。
    • 無統一標準:未規定電氣特性、最大傳輸速率、地址方案等,不同設備的SPI接口可能存在差異 。

軟件編程要點

編程時需初始化SPI相關寄存器,配置工作模式(主/從模式)、傳輸模式(上述4種模式之一)、時鐘頻率等參數;數據發送和接收操作通常通過讀寫SPI數據寄存器實現 。 此外,若使用GPIO模擬SPI通信,需按照SPI的時序要求,手動控制GPIO引腳的電平變化來模擬時鐘信號和數據傳輸 。

I2C

I2C(Inter - Integrated Circuit)即集成電路總線,是一種串行通信協議,由飛利浦公司在1980年代初開發。以下是關于它的詳細知識點:

基礎概念

  • 定義:I2C是一種同步、半雙工、多主多從的串行通信總線,用于連接微控制器和外圍設備,能在不同集成電路之間實現高效、可靠的數據傳輸。
  • 應用場景:廣泛應用于傳感器(如溫度傳感器、加速度計)、EEPROM、實時時鐘(RTC)、LCD驅動器等設備與主控芯片之間的通信。

物理連接

  • 信號線:I2C總線僅需兩根信號線,即串行數據線(SDA)和串行時鐘線(SCL)。所有連接到總線上的設備都通過這兩根線進行通信。
  • 上拉電阻:SDA和SCL線上通常需要接上拉電阻到電源,以確保在空閑狀態下兩條線都保持高電平。當有設備驅動它們為低電平時,才能實現數據的傳輸。

通信協議

  • 數據傳輸:數據以字節為單位進行傳輸,每個字節后面都跟隨一個應答位(ACK)。發送方在發送完一個字節后,會釋放SDA線,等待接收方拉低SDA線以表示成功接收該字節。
  • 起始和停止條件
    • 起始條件:當SCL線為高電平時,SDA線由高電平變為低電平,表示數據傳輸的開始。
    • 停止條件:當SCL線為高電平時,SDA線由低電平變為高電平,表示數據傳輸的結束。
  • 數據有效性:在SCL線為高電平期間,SDA線上的數據必須保持穩定,此時數據有效;只有在SCL線為低電平時,SDA線上的數據才允許改變。
  • 地址和讀寫位:通信開始時,主設備會發送一個7位或10位的從設備地址,后面跟隨一個讀寫位(0表示寫操作,1表示讀操作)。總線上的所有從設備都會接收這個地址,并與自己的地址進行比較,如果匹配則響應主設備。

工作模式

  • 主發送模式:主設備向從設備發送數據。主設備發起起始條件,發送從設備地址和寫位,然后依次發送數據字節,每發送一個字節等待從設備的應答。最后,主設備發送停止條件結束通信。
  • 主接收模式:主設備從從設備接收數據。主設備發起起始條件,發送從設備地址和讀位,從設備應答后開始發送數據字節,主設備每接收一個字節需要發送一個應答位。當主設備不想再接收數據時,發送一個非應答位(NACK),然后發送停止條件結束通信。
  • 從發送模式:從設備在接收到主設備的讀請求后,向主設備發送數據。
  • 從接收模式:從設備接收主設備發送的數據。

通信速率

  • 標準模式:最高通信速率為100kbps。
  • 快速模式:最高通信速率可達400kbps。
  • 快速模式+:最高通信速率為1Mbps。
  • 高速模式:最高通信速率可達3.4Mbps。

優缺點

  • 優點
    • 引腳少:僅需兩根信號線,大大節省了微控制器的引腳資源。
    • 多主多從:支持多個主設備和多個從設備同時連接到總線上,方便構建復雜的系統。
    • 簡單易用:通信協議相對簡單,硬件實現成本低。
  • 缺點
    • 傳輸速率有限:雖然有多種速率模式可供選擇,但相比一些高速總線(如SPI),其傳輸速率仍然較低。
    • 傳輸距離短:由于信號線上存在上拉電阻和分布電容等因素,導致傳輸距離受到一定限制。
    • 數據傳輸量小:每次傳輸的數據量通常較小,不適用于大數據量的快速傳輸。

軟件編程要點

  • 初始化:配置微控制器的I2C接口,設置通信速率、工作模式等參數。
  • 起始和停止條件的生成:通過控制SDA和SCL線的電平變化,生成起始和停止條件。
  • 數據發送和接收:按照I2C協議的規定,發送和接收數據字節,并處理應答位。
  • 錯誤處理:處理可能出現的錯誤情況,如應答失敗、超時等。

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

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

相關文章

InnoDB 引擎核心知識點

InnoDB 引擎核心知識點 6.1 邏輯存儲結構 表空間(Tablespace):所有數據邏輯上存儲在一個表空間中,物理上可能由多個文件組成。段(Segment):分為數據段(B樹葉子節點)、索引…

深度學習 Deep Learning 第9章 卷積網絡 CNN

深度學習 Deep Learning 第9章 卷積網絡 章節概述 本章深入探討了卷積網絡的原理、變體及其在深度學習中的應用。卷積網絡通過卷積操作實現了參數共享和稀疏連接,顯著提高了模型的效率和性能。本章首先介紹了卷積操作的基本形式及其在不同數據維度上的應用&#x…

基于MATLAB的渦旋光和高斯光疊加產生平頂光

強度疊加耦合成平頂光,不發生干涉 通過分別生成高斯光和渦旋光的強度分布,然后按合適的權重將它們疊加,得到近似平頂光(flat‐top beam)的效果。由于我們只是將強度相加(而非復振幅疊加)&#…

wordpress-網站百寶箱插件

含置頂,網頁寵物, 哀悼, 禁止復制, 禁止查看源碼, 彈幕, WP優化,媒體分類,預加載,定時發布,在線客服, 留言板, 手機客服, 網站背景, 公告, 跑馬燈, 水印, 分享, 打賞, 海報圖, 廣告,數據庫管理,圖片加載特效。等綜合功能插件

北斗導航 | 基于北斗三號短報文通信的北斗-YOLO融合系統原理,算法公式,系統流程框圖,matlab代碼,應用場景

以下是關于基于北斗三號短報文通信的北斗-YOLO融合系統的詳細解析,包含原理、算法公式、系統流程、Matlab代碼框架和應用場景。一、系統原理 北斗-YOLO融合系統結合了北斗三號短報文通信(雙向通信能力)和YOLO目標檢測算法,用于在無地面網絡覆蓋區域實現實時目標檢測與數據傳…

Vue 中的日期格式化實踐:從原生 Date 到可視化展示!!!

📅 Vue 中的日期格式化實踐:從原生 Date 到可視化展示 🚀 在數據可視化場景中,日期時間的格式化顯示是一個高頻需求。本文將以一個邀請碼關系樹組件為例,深入解析 Vue 中日期格式化的 核心方法、性能優化 和 最佳實踐…

試試智能體工作流,自動化搞定運維故障排查

APO 1.5.0版本全新推出的智能體工作流功能,讓運維經驗不再零散!只需將日常的運維操作和故障排查經驗轉化為標準化流程,就能一鍵復用,效率翻倍,從此告別重復勞動,把時間留給更有價值的創新工作。更貼心的是&…

LeetCode-215. 數組中的第K個最大元素

1、題目描述 給定整數數組 nums 和整數 k,請返回數組中第 k 個最大的元素。 請注意,你需要找的是數組排序后的第 k 個最大的元素,而不是第 k 個不同的元素。 你必須設計并實現時間復雜度為 O(n) 的算法解決此問題。 示例 1: 輸入: [3,2,1…

分布式光伏防逆流管理:技術要點與實踐解析

在國家“雙碳”目標推動下,分布式光伏作為新能源體系的重要組成部分,正迎來快速發展。國家能源局近期發布的《關于做好新能源消納工作保障新能源高質量發展的通知》明確提出,需加強網源協調與調節能力,優化新能源利用率。其中&…

Ubuntu capolar 上實現內網穿透

在官網https://www.cpolar.com/ 注冊用戶,獲取tocken 1.1 安裝cpolar 在Ubuntu上打開終端,執行命令 首先,我們需要安裝curl: sudo apt-get install curl 國內安裝(支持一鍵自動安裝腳本) curl -L htt…

【CSS】CSS 使用全教程

CSS 使用全教程 介紹 CSS(層疊樣式表,Cascading Style Sheets)是一種樣式表語言,用于描述 HTML 或 XML 文檔的布局和外觀,它允許開發者將文檔的內容結構與樣式表現分離,通過定義一系列的樣式規則來控制網頁…

Jenkins 集成 SonarQube 代碼靜態檢查使用說明

環境準備 Jenkins 服務器 確保 Jenkins 已安裝并運行(推薦 LTS 版本)。安裝插件: SonarQube Scanner for Jenkins(用于集成 SonarQube 掃描)NodeJS Plugin(可選,用于 JavaScript 項目&#xff0…

EasyRTC輕量級Webrtc音視頻通話SDK,助力帶屏IPC在嵌入式設備中的應用

一、市場背景 隨著人們生活水平的提高,對于家居安全和遠程監控的需求日益增長,帶屏IPCam不僅滿足了用戶實時查看監控畫面的需求,還提供了諸如雙向語音通話、智能報警等豐富的功能,極大地提升了用戶體驗。 此外,技術的…

AI編輯器-Trae 玩轉AI 編程

參考 掘金社區地址 Trae下載地址 管理插件 Trae 從入門到實踐:AI 編碼的妙筆生花 掘金社區 掘金社區簡介 掘金是面向全球中文開發者的技術內容分享與交流平臺。我們通過技術文章、沸點、課程、直播等產品和服務,打造一個激發開發者創作靈感,激勵開發者沉淀分享,陪伴開發者…

C語言代碼如何操作硬件?

在嵌入式開發中,C代碼通過直接操作硬件寄存器來控制硬件,這些寄存器被映射到特定的內存地址。以下是其工作原理的詳細分步解釋: 1. 內存映射硬件寄存器 微控制器將外設(如GPIO、定時器、UART等)的寄存器映射到內存地…

Flume-試題

以下是對話中涉及的題目及其簡要解析: 1. 哪個 Flume Source 可用于監控某個端口,將流經端口的每一個文本行數據作為 Event 輸入? - A. Avro Source - B. exec Source - C. Spooling Directory Source - D. Netcat Source 2. 哪…

C++《紅黑樹》

在之前的篇章當中我們已經了解了基于二叉搜索樹的AVL樹,那么接下來在本篇當中將繼續來學習另一種基于二叉搜索樹的樹狀結構——紅黑樹,在此和之前學習AVL樹類似還是通過先了解紅黑樹是什么以及紅黑樹的結構特點,接下來在試著實現紅黑樹的結構…

【第23節】windows網絡編程模型(WSAEventSelect模型)

目錄 引言 一、WSAEventSelect模型概述 二、 WSAEventSelect模型的實現流程 2.1 創建一個事件對象,注冊網絡事件 2.2 等待網絡事件發生 2.3 獲取網絡事件 2.4 手動設置信號量和釋放資源 三、 WSAEventSelect模型偽代碼示例 四、完整實踐示例代碼 引言 在網…

概率預測之NGBoost(Natural Gradient Boosting)回歸和分位數(Quantile Regression)回歸

概率預測之NGBoost(Natural Gradient Boosting)回歸和線性分位數回歸 NGBoostNGBoost超參數解釋NGBoost.fitscore(X, Y)staged_predict(X)feature_importances_pred_dist 方法來獲取概率分布對象分位數回歸(Quantile Regression)smf.quantreg 對多變量數據進行分位數回歸分…

手撕算法——鏈表

算法基礎——鏈表-CSDN博客 一、排隊順序 題?來源:洛? 題?鏈接:B3630 排隊順序 - 洛谷 難度系數:★ 1. 題目描述 2. 算法原理 本題相當于告訴了我們每?個點的后繼,使?靜態鏈表的存儲?式能夠很好的還原這個隊列。 數組中 [1,…