STM32外設-GPIO輸出(不含復用)

STM32外設-GPIO輸出(不含復用)

  • 一,GPIO模式簡介
    • 1,輸入模式
    • 2,輸出模式
    • 3,模擬模式
    • 4,復用模式
  • 二,輸出模式詳解
    • 1, 輸出類型
        • 1,推挽輸出:
        • 2,開漏輸出
    • 2,輸出速度
  • 三,GPIO配置選項
  • 四,STM32 HAL庫GPIO配置
    • 1,GPIO初始化結構體
    • 2,引腳復用機制
    • 3,GPIO時鐘使能
    • 4,GPIO操作函數

GPIO(通用輸入/輸出口)是微控制器上可以由用戶自定義控制的引腳

一,GPIO模式簡介

1,輸入模式

將引腳配置為輸入模式,用于讀取外部信號。
適用場景:讀取按鈕狀態、傳感器信號等

2,輸出模式

將引腳配置為輸出模式,用于驅動外部設備或信號。
適用場景:LED控制、電機驅動等

3,模擬模式

將引腳配置為模擬模式,用于模擬信號輸入或輸出。
適用場景:ADC讀取、DAC輸出等

4,復用模式

將引腳配置給某個外設的使用,如UART、SPI或I2C等。
適用場景:通信接口、定時器輸出等

二,輸出模式詳解

1, 輸出類型

共有兩種輸出類型:推挽輸出模式和開漏輸出模式,先講一下電路原理

1,推挽輸出:

下圖是STM32引腳電路原理圖,右邊兩個二極管只起 保護作用,暫時省略
在這里插入圖片描述
在這里插入圖片描述
我們通過HAL庫的API接口函數對寄存器寫入0/1,從而控制P-MOS和N-MOS的截止,達到輸出高低電平的目的:
當P-MOS導通,N-MOS截止時,N-MOS處是斷路,上面VDD和P-MOS處是短路,測出引腳電壓為VDD(將電流推出去)

(其實VDD和P-MOS有阻抗,但是直接測引腳電壓就相當于測的是內阻的電壓,沒有其他電阻分壓測出來就是VDD)

在這里插入圖片描述
如果此時在引腳處接一個LED,LED會被點亮
在這里插入圖片描述
當P-MOS截止,N-MOS導通時,P-MOS處是斷路,上面N-MOS處是短路,此時引腳輸出低電平(將電流挽進來)
在這里插入圖片描述

2,開漏輸出

開漏輸出可以輸出低電平和高阻態,開漏輸出時P-MOS永遠截止,輸出哪個狀態取決于N-MOS的截止和導通(為什么叫開漏?N-MOS管的漏極的開與關決定了開漏模式的輸出)

當N-MOS導通時,開漏輸出與推挽輸出一致,輸出低電平
在這里插入圖片描述
而當N-MOS截止時,輸出的是高阻態,為什么輸出的是高阻態?
了解高阻態的定義:引腳與電源和地之間呈現高電阻狀態,即高阻態。此時輸出引腳不對外提供確定電平信號,其電平由外部電路決定。
在這里插入圖片描述
那高阻態有什么作用呢?
作用1:改變芯片輸出的電平。如下圖,STM32引腳輸出3.3V,但我想讓其輸出5V,可以在引腳外接一個上拉電阻1(假設為10K),根據分壓原理,N-MOS阻值無窮大,綠點處是5V

在這里插入圖片描述
作用2:利用高阻態的線與特性

線與:即只有當所有連接在一起的輸出端口都輸出高電平時,總的輸出才為高電平;只要有一個輸出端口為低電平,總的輸出就是低電平 。
線或:只要連接的輸出端口中有一個輸出高電平,總的輸出就為高電平;只有當所有輸出端口都為低電平時,總的輸出才是低電平 。

如下圖,兩個芯片外接一個上拉電阻,只有當兩個引腳同時為高阻態時,才能輸出高電平,有一個引腳輸出低電平就輸出低電平
在這里插入圖片描述

若 GPIO 配置為開漏輸出模式,默認就是高阻態狀。開漏輸出下,N-MOS 管用于控制輸出,無外部上拉電阻時,N-MOS 管截止就會呈現高阻態 。 此外,當復用功能輸出信號未有效驅動、相關寄存器配置錯誤,或芯片處于特定低功耗模式影響 GPIO 驅動電路時,也可能使輸出進入高阻態。

  1. 推挽輸出模式 (Push-Pull)
    功能:可以驅動高電平(邏輯1)和低電平(邏輯0)
    工作原理:有兩個晶體管配置,一個用于拉高電平,一個用于拉低電平
    優點:驅動能力強,適用于大多數數字輸出應用
    缺點:高頻切換時可能導致較大功耗和信號干擾
    應用示例:LED控制、開關控制、信號輸出

  2. 開漏輸出模式 (Open-Drain)
    功能:只能拉低電平(邏輯0),高電平由外部上拉電阻提供
    工作原理:只有一個下拉晶體管,高電平依賴外部上拉電阻
    優點:支持多路信號線"線與"邏輯,適合共享總線
    缺點:無法直接驅動高電平,需要外部電阻
    應用示例:I2C總線、外部信號線共享

  3. 推挽輸出 vs 開漏輸出

特性推挽輸出開漏輸出
高電平驅動? 內部提供? 需要外部上拉
低電平驅動? 內部提供? 內部提供
多設備共享總線如iic總線? 不適合? 適合
電流驅動能力? 較強? 取決于上拉電阻
LED控制適用性? 非常適合? 需要外部上拉

相對于51單片機只有輸出0和1兩種情況,STM32輸出變復雜有什么好處?

2,輸出速度

先來解釋一下什么是輸出驅動電路帶寬和不失真信號:

輸出驅動電路帶寬:指輸出驅動電路能夠不失真地傳輸信號的頻率范圍,單位通常是赫茲(Hz) 即范圍。也就是說,帶寬越大,電路能夠承受的信號頻率越大,能傳輸的信號頻率越高,信號的變化速度就可以越快。

不失真信號:信號傳輸時,不發生變化的信號。
舉個例子:cpu執行程序先輸出高電平,在輸出低電平,最后輸出高電平,如果信號變化很快,超出了IO的帶寬,IO在輸出高低高時,可能會發生:先輸出高,本該變成低時沒有反應過來,此時CPU又讓IO輸出高,整體來看,IO是一直輸出高電平,發生了信號失真

GPIO 輸出驅動電路主要由晶體管(通常是 MOS 管)構成,通過控制這些晶體管的導通和截止來實現信號的輸出

那么STM32是如何控制輸出高速信號和低速信號的呢?
有一個思路是更改高速晶體管和低速晶體管,但實際上是:改變晶體管導通和截止的速度。

  1. 低速 (Low Speed) 對應2-10MHz
    特性:輸出驅動電路帶寬低,能通過的不失真信號最大頻率低 。信號電平轉換相對慢,功耗小、噪聲低,產生的電磁干擾(EMI)2也較小
    適用場景:按鍵、LED控制等低頻應用

  2. 中速 (Medium Speed) 對應10-50MHz
    特性:輸出驅動電路帶寬適中,信號電平轉換速度適中。
    適用場景:一般通信接口、顯示驅動等

  3. 高速 (High Speed) 對應50-100MHz
    特性:輸出驅動電路帶寬高,能通過高頻信號,信號電平轉換速度快。
    適用場景:高速總線、快速數據傳輸等

  4. 超高速 (Very High Speed) 對應100MHz+
    特性:輸出驅動電路帶寬更高,信號電平轉換迅速。
    適用場景:高速存儲器接口、高速數據采集等

注意
更高的速度會導致:
更多的功耗
更大的電磁干擾(EMI)
更快的信號上升和下降時間
對于LED控制這類應用,通常選擇低速即可,這能降低功耗并減少EMI。
因此,在實際應用中,需要根據具體的需求來合理選擇 GPIO 的輸出速度,在速度、功耗和 EMI 之間找到一個平衡點。

三,GPIO配置選項

再用STM32CubeMX配置GPIO引腳時,需要對下圖紅框的配置選項進行配置,下面我將將所有的配置選擇都介紹一下
在這里插入圖片描述

  1. GPIO Mode (GPIO模式)
    決定引腳的基本工作方式,是STM32CubeMX中最基礎的配置項。
Input Mode (輸入模式)Output Mode (輸出模式)Analog Mode (模擬模式)Alternate Function (復用功能)
配置引腳為輸入,用于讀取外部信號配置引腳為輸出,用于控制外部設備配置引腳為模擬模式,用于ADC/DAC連接內部外設如UART/SPI/I2C等

配置提示: 對于LED控制,通常選擇Output Mode。如果需要通過PWM控制LED亮度,則選擇Alternate Function并連接到定時器。

  1. GPIO Output Type (輸出類型)
    當GPIO配置為輸出模式時,可以選擇不同的輸出類型。
Push-Pull (推挽輸出)Open-Drain (開漏輸出)
可以主動輸出高電平和低電平,驅動能力強。只能主動輸出低電平,高電平需要外部上拉電阻。
高電平:主動拉高 低電平:主動拉低高電平:依靠外部上拉 低電平:主動拉低
LED控制 數字信號輸出I2C總線 多設備共享總線

配置提示: 對于一般的LED控制,選擇Push-Pull輸出類型。對于需要共享總線的場景(如I2C),選擇Open-Drain輸出類型。

  1. GPIO Speed (輸出速度)
    決定GPIO引腳狀態切換的速率和驅動能力。更高的速度設置意味著更快的電平切換速率和更強的電流驅動能力。
速度設置最大頻率適用場景
Low (低速)~2MHz低功耗應用、LED指示燈
Medium (中速)~10MHz一般數字接口、按鍵控制
High (高速)~50MHzSPI通信、快速信號處理
Very High (超高速)~100MHz+高速通信接口、時鐘信號

配置提示: 對于普通LED控制,選擇Low速度即可。更高的速度會增加功耗和電磁干擾,除非應用需要,否則不要選擇過高的速度設置。

  1. GPIO Pull-up/Pull-down (內部的上拉/下拉電阻)
    決定GPIO引腳在未被驅動時的默認狀態。
No Pull-up/Pull-downPull-up (上拉)Pull-down (下拉)
不啟用內部上拉/下拉電阻,引腳浮空。啟用內部上拉電阻,引腳默認為高電平。啟用內部下拉電阻,引腳默認為低電平。
模擬輸入 外部已有定義電平按鍵檢測 I2C總線上拉型開關檢測 默認低電平信號
  1. GPIO Label (引腳標簽)
    為GPIO引腳指定一個有意義的名稱,方便在代碼中引用。
    命名規范:
    使用有描述性的名稱,如 LED_GREEN、BUTTON_USER
    避免使用特殊字符,使用下劃線分隔單詞
    保持命名一致性,便于代碼維護
    命名示例:
功能推薦標簽名
LED指示燈LED_RED, LED_GREEN, LED1, LED2
按鍵輸入BUTTON_USER, KEY1, KEY2
傳感器控制SENSOR_ENABLE, TEMP_ALERT

配置提示: 合理命名GPIO引腳可以大大提高代碼的可讀性和可維護性。CubeMX會根據標簽名自動生成相應的宏定義,方便在代碼中使用。

  1. GPIO Signal (引腳信號)

STM32的每個GPIO引腳通常可以復用為多個不同的外設信號。例如,一個引腳可能既可以作為USART1的TX,也可以作為TIM2的通道3,還可以作為SPI3的MOSI。那么如何在CubeMX中實現GPIO引腳復用呢?

首先將GPIO配置為復用功能(Alternate Function)模式,“Signal” 選項用于指定該引腳連接到STM32內部的哪個外設的哪個具體信號。
然后通過在CubeMX的"Signal"下拉列表中選擇,或者直接在代碼中配置GPIO的 Alternate 字段(使用HAL庫時),可以決定該引腳當前連接到哪個外設信號。
最后提供一些常見的復用功能信號類型:
TIM1_CH1 (定時器通道)
USART1_TX (串口發送)
USART1_RX (串口接收)
SPI1_SCK (SPI時鐘)
SPI1_MISO (SPI主入從出)
SPI1_MOSI (SPI主出從入)
I2C1_SCL (I2C時鐘線)
I2C1_SDA (I2C數據線)
ADC1_IN0 (ADC輸入通道)
DAC1_OUT1 (DAC輸出通道)
TIMx_CHx (定時器通道)
TIMx_ETR (外部觸發)
TIMx_BKIN (剎車輸入)
USARTx_TX (串口發送)
USARTx_RX (串口接收)
USARTx_CK (同步時鐘)
USARTx_CTS (流控)
USARTx_RTS (流控)
I2Cx_SCL (I2C時鐘)
I2Cx_SDA (I2C數據)
SPIx_SCK (SPI時鐘)
SPIx_MISO (主入從出)
SPIx_MOSI (主出從入)
SPIx_NSS (片選)
I2Sx_CK (I2S時鐘)
I2Sx_WS (字選)
I2Sx_SD (串行數據)
CANx_TX (CAN發送)
CANx_RX (CAN接收)
USB_OTG_FS/HS_…
ETH_… (以太網)
SDMMCx_… (SD卡)
QUADSPI_… (QSPI)
SYS_… (系統功能, 如SWD, JTAG)
RCC_… (時鐘輸出, 如MCO)
EVENTOUT (事件輸出)

LED控制相關的信號類型:
TIMx_CHx - 定時器PWM輸出通道,用于控制LED亮度
GPIO_Output - 普通GPIO輸出,用于簡單的LED開關控制

配置示例:通過PWM實現LED亮度控制或呼吸燈效果:
將目標GPIO引腳的模式設置為 Alternate Function Push-Pull (通常推挽輸出效果更好)。
在 “Signal” 下拉列表中,選擇一個可用的 TIMx_CHx (定時器通道) 信號。
轉到對應的 TIMx 外設配置界面。
配置定時器的時鐘源和預分頻器(Prescaler)、自動重載寄存器(ARR)以設定PWM頻率。
啟用所選的 Channel x,并將其模式設置為 PWM Generation CHx。
配置比較寄存器(CCR / Pulse)的值來控制PWM占空比,從而控制LED亮度。
重要提示:務必查閱STM32芯片的數據手冊(查找 “Alternate function mapping” 相關表格),確認所選引腳支持你想要連接的定時器通道。并非所有引腳都支持所有定時器的所有通道。

四,STM32 HAL庫GPIO配置

STM32 HAL(Hardware Abstraction Layer,硬件抽象層)庫提供了一套完整的API來配置和控制GPIO引腳。相比直接操作寄存器,HAL庫更易用且可移植性更好。

1,GPIO初始化結構體

HAL庫使用GPIO_InitTypeDef結構體來配置GPIO引腳:

Pin: 要配置的引腳,如GPIO_PIN_0, GPIO_PIN_1等
Mode: 引腳模式,如GPIO_MODE_OUTPUT_PP(推挽輸出)
Pull: 上拉/下拉設置,如GPIO_NOPULL, GPIO_PULLUP等
Speed: 輸出速度,如GPIO_SPEED_FREQ_LOW
Alternate: 復用功能選擇(僅在復用模式下使用)

2,引腳復用機制

STM32微控制器的GPIO引腳可以分配給不同的外設功能,這稱為引腳復用(Alternate Function):

每個引腳可以有多達16個不同的復用功能(AF0-AF15)
例如,同一個引腳可以配置為UART發送、SPI時鐘或I2C數據線
復用功能在芯片手冊中有詳細說明,不同系列和型號的STM32有所不同
使用GPIO_MODE_AF_PP或GPIO_MODE_AF_OD模式并設置相應的AF值

3,GPIO時鐘使能

在STM32中,使用任何外設前都必須使能其時鐘:

使用__HAL_RCC_GPIOx_CLK_ENABLE()宏來使能GPIO端口時鐘
這一步驟在配置GPIO前必須完成,否則配置無效
不同的GPIO端口(GPIOA, GPIOB等)需要單獨使能

4,GPIO操作函數

HAL庫提供了多種操作GPIO的函數:

HAL_GPIO_WritePin(): 設置引腳輸出高/低電平
HAL_GPIO_ReadPin(): 讀取引腳輸入狀態
HAL_GPIO_TogglePin(): 翻轉引腳狀態
HAL_GPIO_LockPin(): 鎖定引腳配置
HAL_GPIO_EXTI_IRQHandler(): 中斷處理
這些函數屏蔽了底層寄存器操作的復雜性,使得代碼更清晰易讀。


  1. 什么是上拉電阻?什么是下拉電阻
    一,上拉電阻和下拉電阻的概念
    下圖中,單片機引腳輸出5V高電平,什么都不接的情況下,測試為5V
    但接了一個下拉電阻后,輸出3.8V:原因是單片機內部P-MOS含有阻抗,對5V進行了分壓
    在此基礎上,再接一個上拉電阻,輸出變成了4.2V:原因是外部電阻和P-MOS的阻抗并聯,總阻抗減小,輸出有升高了0.4V
    在這里插入圖片描述
    二,上拉電阻的作用:將高阻態鉗位在高電平
    開漏輸出高阻態時,單片機內部兩個MOS截止,阻抗無窮大,此時在外部接一個上拉電阻(10K),它與P-MOS并聯后總阻值約為10K,和N-MOS相比幾乎不分電壓,最終輸出5V
    在這里插入圖片描述 ??

  2. 電磁兼容性(EMC)和電磁干擾(EMI)
    電磁兼容性(EMC)
    定義:設備或系統在其電磁環境中能正常工作,且不對該環境中其他設備產生難以承受的電磁干擾的能力 。
    原理:通過合理的電路設計(如濾波、屏蔽 )、接地處理等措施,減少自身產生的電磁干擾,同時增強對外部電磁干擾的抵抗能力。
    作用:保證多個電子設備在同一環境中能互不干擾、穩定運行,提高整個系統的可靠性。
    電磁干擾(EMI)
    定義:由電磁場引起的對電子設備、電氣設備或電磁設備的有害影響 。可分為傳導干擾(通過導電介質傳播 )和輻射干擾(通過空間以電磁波形式傳播 )。
    原理:電子設備工作時,內部的電流變化、信號傳輸等會產生電磁波,若不加以抑制,就會干擾其他設備。
    作用:會造成信號失真、設備誤動作等問題,影響設備正常工作,所以在電子產品設計中要采取措施抑制 EMI。 ??

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

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

相關文章

58認知干貨:創業經驗分享及企業形式的匯總

機會永遠都是留給有眼光、能發現機會的人,而不是留給有準備的人!往往機會就在身邊,普羅大眾卻無法發現,而真正適合創業的人,天然具備這方面的能力。 當然后天的補足也未嘗不可:“故常有欲以觀其微,常無欲以觀其妙。””引用《道德經》 讀懂這句話自然便會擁有對商業和…

修復筆記:獲取 torch._dynamo 的詳細日志信息

一、問題描述 在運行項目時,遇到與 torch._dynamo 相關的報錯,并且希望獲取更詳細的日志信息以便于進一步診斷問題。 二、相關環境變量設置 通過設置環境變量,可以獲得更詳細的日志信息: set TORCH_LOGSdynamo set TORCHDYNAM…

Spark,Idea中編寫Spark程序 2

Idea中編寫Spark程序 一、修改pom.xml文件 <build><sourceDirectory>src/main/scala</sourceDirectory><testSourceDirectory>src/test/scala</testSourceDirectory> <!-- 添加必要的插件以打包scala程序--><plugins><plu…

【AI提示詞】黑天鵝模型專家

提示說明 詳細解釋黑天鵝模型的理論背景、定義、分類及其在不同領域的應用。 提示詞 # Role: 黑天鵝模型專家## Profile - language: 中文 - description: 詳細解釋黑天鵝模型的理論背景、定義、分類及其在不同領域的應用 - background: 黑天鵝模型是尼爾斯莫爾提出的理論&a…

ARM Linux 設備樹

Linux 設備驅動開發詳解&#xff1a;基于最新的Linux 4.0內核, 機械工業出版社, 宋寶華, 2015 1. 設備樹的起源 ? 背景: ARM架構中大量板級代碼冗余&#xff0c;硬編碼在mach-xxx目錄&#xff0c;設備樹&#xff08;Device Tree&#xff09;引入結構化描述硬件。 ? 目的: 減…

每日c/c++題 備戰藍橋杯(洛谷P1015 [NOIP 1999 普及組] 回文數)

洛谷P1015 [NOIP 1999 普及組] 回文數 題解 題目描述 P1015 回文數 是NOIP 1999普及組的經典模擬題。題目要求如下&#xff1a; 給定一個數N&#xff08;十進制&#xff09;和進制K&#xff08;2≤K≤16&#xff09;&#xff0c;將N轉換為K進制表示后&#xff0c;通過以下操…

Linux線程深度解析:從基礎到實踐

Linux線程深度解析&#xff1a;從基礎到實踐 一、線程基礎概念 1. 進程與線程定義 進程&#xff1a;一個正在運行的程序&#xff0c;是操作系統資源分配的最小單位&#xff08;擁有獨立的地址空間、文件描述符等資源&#xff09;&#xff0c;狀態包括就緒、運行、阻塞。線程…

php學習筆記(全面且適合新手)

以下是專為 PHP 7.4 初學者設計的全面學習文檔&#xff0c;涵蓋基礎語法、細節語法和進階語法&#xff0c;結合 PHP 7.4 新特性與實戰案例&#xff0c;幫助系統掌握 PHP 開發&#xff1a; 為什么特地做7.4的筆記而不做8的&#xff1f;因為公司用的7.4&#xff0c;哈哈 一、基…

開源分布式數據庫(TiDB)

TiDB是由PingCAP 開發的開源分布式數據庫&#xff0c;兼容 MySQL 協議&#xff0c;集成了 HTAP&#xff08;混合事務和分析處理&#xff09;的能力&#xff0c;能夠同時處理在線事務和實時分析任務。 2015 年&#xff0c;TiDB 在 GitHub 創建&#xff0c;2025 年&#xff0c;Ti…

SpringBoot+Mybatis通過自定義注解實現字段加密存儲

&#x1f60a; 作者&#xff1a; 一恍過去 &#x1f496; 主頁&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社區&#xff1a; Java技術棧交流 &#x1f389; 主題&#xff1a; SpringBootMybatis實現字段加密 ?? 創作時間&#xff1a; 2025年04月…

Windows 10系統中找回MySQL 8的root密碼

以下是 在Windows 10系統中找回MySQL 8的root密碼 的詳細步驟&#xff1a; 步驟1&#xff1a;停止MySQL服務 按 Win R 輸入 services.msc&#xff0c;打開「服務」管理器。找到 MySQL80&#xff08;或其他自定義服務名&#xff09;&#xff0c;右鍵選擇 停止。 步驟2&#xf…

【計網】互聯網的組成

回顧&#xff1a; 互聯網(Internet)&#xff1a;它是一個專有名詞&#xff0c;是一個特定的互連網&#xff0c;它是指當下全球最大的、最開放的、由眾多網絡相互連接而形成的特定的的互連網&#xff0c;采用TCP/IP協議族作為通信規則。 一、互聯網的組成部分 從互聯網的工作方…

【vue3】黑馬程序員前端Vue3小兔鮮電商項目【八】

黑馬程序員前端Vue3小兔鮮電商項目【八】登錄頁面 登錄頁面的主要功能就是表單校驗和登錄登出業務。 賬號密碼 accountpasswordcdshi0080123456cdshi0081123456cdshi0082123456cdshi0083123456cdshi0084123456cdshi0085123456cdshi0086123456cdshi0087123456cdshi0088123456 …

C++學習:六個月從基礎到就業——C++11/14:右值引用與移動語義

C學習&#xff1a;六個月從基礎到就業——C11/14&#xff1a;右值引用與移動語義 本文是我C學習之旅系列的第三十九篇技術文章&#xff0c;也是第三階段"現代C特性"的第一篇&#xff0c;主要介紹C11/14中引入的右值引用和移動語義。查看完整系列目錄了解更多內容。 引…

基于Qlearning強化學習的電梯群控系統高效調度策略matlab仿真

目錄 1.算法仿真效果 2.算法涉及理論知識概要 2.1 Q-learning強化學習原理 2.2 基于Q-learning的電梯群控系統建模 3.MATLAB核心程序 4.完整算法代碼文件獲得 1.算法仿真效果 matlab2022a仿真結果如下&#xff08;完整代碼運行后無水印&#xff09;&#xff1a; 仿真操作…

31.軟件時序控制方式抗干擾

軟件時序控制方式扛干擾 1. 軟件時序控制抗干擾的時間邏輯2. 應用案例 1. 軟件時序控制抗干擾的時間邏輯 &#xff08;1&#xff09;將受軟件控制的功能或軟件檢測到的狀態一一羅列&#xff1b; &#xff08;2&#xff09;將其中的潛在干擾和敏感信號分開&#xff1b; &#x…

Ubuntu環境下使用uWSGI服務器【以flask應用部署為例】

0、前置內容說明 首先要知道WSGI是什么&#xff0c;關于WSGI服務器的介紹看這篇&#xff1a;WSGI&#xff08;Web Server Gateway Interface&#xff09;服務器 由于從Python 3.11開始限制了在系統級 Python 環境中使用 pip 安裝第三方包&#xff0c;以避免與系統包管理器&am…

d3_v7繪制折線圖

<!DOCTYPE html> <html><head><meta charsetutf-8><title>需求</title><script src"https://d3js.org/d3.v7.min.js"></script><style>* {margin: 0;padding: 0;}html, body {width: 100%;height: 100%;displ…

Hotspot分析(1):單細胞轉錄組識別信息基因(和基因模塊)

這一期我們介紹一個常見的&#xff0c;高分文章引用很高的一個單細胞轉錄組分析工具Hotspot&#xff0c;它可針對單細胞轉錄組數據識別有意義基因或者基因module&#xff0c;類似于聚類模塊。所謂的”informative "的基因是那些在給定度量中相鄰的細胞之間以相似的方式表達…

爬蟲準備前工作

1.Pycham的下載 網址&#xff1a;PyCharm: The only Python IDE you need 2.Python的下載 網址&#xff1a;python.org&#xff08;python3.9版本之后都可以&#xff09; 3.node.js的下載 網址&#xff1a;Node.js — 在任何地方運行 JavaScript&#xff08;版本使用18就可…