mFrame
載入中...
搜尋中...
無符合項目
mcxa153::core::CoreGeneralPin 類別 參考文件

MCXA153 通用數位腳位控制器 更多...

#include <CoreGeneralPin.h>

類別mcxa153::core::CoreGeneralPin的繼承圖:
ufm::lang::Object hal::digital::GeneralPin ufm::lang::Interface hal::digital::GeneralOutput hal::digital::GeneralInput

公開方法(Public Methods)

 CoreGeneralPin (const CoreGeneralPort &port, unsigned int pin)
 建構通用數位腳位物件
 
virtual ~CoreGeneralPin (void) override
 解構通用數位腳位物件
 
virtual hal::digital::GeneralPin::Mode getPinMode (void) override
 取得腳位模式
 
virtual hal::digital::GeneralPin::Mode setPinMode (hal::digital::GeneralPin::Mode mode) override
 設定腳位模式
 
virtual bool getDir (void) override
 取得腳位方向
 
virtual hal::digital::GeneralPinsetDir (bool dir) override
 設定腳位方向
 
virtual hal::digital::GeneralPinsetInput (void) override
 設定腳位為輸入方向
 
virtual hal::digital::GeneralPinsetOutput (void) override
 設定腳位為輸出方向
 
virtual hal::digital::GeneralOutputsetHigh (void) override
 設定腳位為高電平
 
virtual hal::digital::GeneralOutputsetLow (void) override
 設定腳位為低電平
 
virtual hal::digital::GeneralOutputsetToggle (void) override
 切換腳位電平狀態
 
virtual hal::digital::GeneralOutputsetValue (bool level) override
 設定腳位邏輯值
 
virtual bool getValue (void) override
 讀取腳位邏輯值
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Object
void * operator new (size_t n)
 使用運算子 new 分配記憶體
 
void * operator new (size_t n, void *p)
 在指定記憶體上調用運算子 new
 
virtual ufm::lang::ObjectgetObject (void) override
 取得對應的 Object 物件
 
void delay (int milliseconds) const
 延遲指定的毫秒數進行執行緒等待
 
bool equals (Object *object) const
 判斷與另一物件是否為相同參照(指標型態比較)
 
bool equals (Object &object) const
 判斷與另一物件是否為相同參照(參照型態比較)
 
void wait (void) const
 使當前線程等待直到被通知
 
bool wait (int timeout) const
 等待通知或超時
 
bool yield (void) const
 讓執行緒讓渡控制權給同優先權的下一個執行緒
 
int lock (void) const
 核心鎖定,鎖定期間禁止線程切換
 
int unlock (void) const
 核心解鎖
 
ufm::sys::ThreadcurrentThread (void) const
 取得當前執行緒指標
 
virtual int hashcode (void) const
 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Interface
virtual ~Interface (void)=default
 虛擬析構函式
 

公開屬性

mcxa153::chip::gpio::Register *const vBase
 GPIO模組基底暫存器位址
 
mcxa153::chip::port::Register *const vBasePort
 GPIO埠基底暫存器位址
 
const unsigned int vPin = 0
 腳位編號
 

額外的繼承成員

- 公開型態 繼承自 hal::digital::GeneralPin
enum struct  Mode : uint8 {
  NOT_SUPPORT , FLOAT , PUSH_PULL , PULL_UP ,
  PULL_DOWN , OPEN_DRAIN , OPEN_DRAIN_PULL_UP
}
 GPIO引腳電氣特性模式。 更多...
 

詳細描述

MCXA153 通用數位腳位控制器

CoreGeneralPin 提供單一GPIO腳位的完整硬體抽象層實作。 此類別封裝了GPIO腳位的所有基本操作,包括:

主要功能:

  • 輸入/輸出方向控制
  • 數位電平讀取與設定
  • 腳位模式配置(推輓、開漏等)
  • 高速位元操作

技術特色:

  • 直接暫存器操作,性能優異
  • 支援原子性位元操作
  • 與CoreGeneralPort緊密整合
  • 完整的HAL介面實作

適用場景:

  • LED控制
  • 按鍵輸入檢測
  • 通訊協定實作(I2C、SPI模擬)
  • 通用數位I/O控制

硬體特性:

  • 支援3.3V邏輯電平
  • 最大輸出電流依腳位規格而定
  • 內建上拉/下拉電阻選項
此類別需配合CoreGeneralPort使用,確保正確的硬體初始化
警告
直接操作硬體暫存器,使用時需注意執行緒安全
參閱
CoreGeneralPort, hal::digital::GeneralPin

建構子與解構子說明文件

◆ CoreGeneralPin()

mcxa153::core::CoreGeneralPin::CoreGeneralPin ( const CoreGeneralPort & port,
unsigned int pin )

建構通用數位腳位物件

初始化GPIO腳位控制器,綁定到指定埠的特定腳位。 建構時會:

  • 設定硬體暫存器基底位址
  • 記錄腳位編號
  • 準備硬體訪問介面
參數
port通用GPIO埠物件參考,提供埠層級控制功能
pin腳位編號,指定要控制的具體腳位(通常0-31)
建構後腳位處於未定義狀態,需設定方向和模式
警告
腳位編號必須在埠支援範圍內,否則會導致未定義行為
參閱
CoreGeneralPort, setPinMode(), setDir()

◆ ~CoreGeneralPin()

virtual mcxa153::core::CoreGeneralPin::~CoreGeneralPin ( void )
overridevirtual

解構通用數位腳位物件

釋放腳位控制器相關資源。 解構時不會改變腳位的硬體狀態, 以避免影響其他可能使用該腳位的程序。

解構不會重設腳位為預設狀態
警告
確保在解構前適當處理腳位狀態

函式成員說明文件

◆ getDir()

virtual bool mcxa153::core::CoreGeneralPin::getDir ( void )
overridevirtual

取得腳位方向

讀取腳位的輸入/輸出方向設定。

傳回值
bool 腳位方向狀態
  • true: 輸出方向,腳位用於驅動外部負載
  • false: 輸入方向,腳位用於讀取外部信號
方向設定影響腳位的功能行為
參閱
setDir(), setInput(), setOutput()

實作 hal::digital::GeneralPin.

◆ getPinMode()

virtual hal::digital::GeneralPin::Mode mcxa153::core::CoreGeneralPin::getPinMode ( void )
overridevirtual

取得腳位模式

讀取目前腳位的工作模式設定。

傳回值
hal::digital::GeneralPin::Mode 目前的腳位模式
  • PUSH_PULL: 推輓輸出模式,可輸出高/低電平
  • OPEN_DRAIN: 開漏輸出模式,需外部上拉電阻
  • INPUT: 輸入模式,用於讀取外部信號
  • 其他硬體支援的特殊模式
模式影響腳位的電氣特性和驅動能力
參閱
setPinMode()

實作 hal::digital::GeneralPin.

◆ getValue()

virtual bool mcxa153::core::CoreGeneralPin::getValue ( void )
overridevirtual

讀取腳位邏輯值

讀取腳位目前的邏輯電平狀態。 可用於輸入或輸出模式:

  • 輸入模式:讀取外部信號電平
  • 輸出模式:讀取實際輸出電平
傳回值
bool 腳位的邏輯狀態
  • true: 高電平(邏輯1)
  • false: 低電平(邏輯0)

電平判定標準:

  • 高電平:通常>0.7*VDD
  • 低電平:通常<0.3*VDD
  • 中間電平:結果未定義
輸入模式需考慮信號的驅動能力和雜訊免疫
警告
浮接輸入可能產生不穩定讀值
參閱
setValue(), setInput(), setOutput()

實作 hal::digital::GeneralInput.

◆ setDir()

virtual hal::digital::GeneralPin & mcxa153::core::CoreGeneralPin::setDir ( bool dir)
overridevirtual

設定腳位方向

配置腳位為輸入或輸出方向。 方向變更會即時生效。

參數
dir方向設定
  • true: 設定為輸出方向
  • false: 設定為輸入方向
傳回值
hal::digital::GeneralPin& 回傳自身參考,支援鏈式呼叫。
警告
輸出方向時需注意驅動電流限制
建議使用setInput()或setOutput()方法,語意更清晰

實作 hal::digital::GeneralPin.

◆ setHigh()

virtual hal::digital::GeneralOutput & mcxa153::core::CoreGeneralPin::setHigh ( void )
overridevirtual

設定腳位為高電平

將輸出腳位設定為邏輯高電平(通常為VDD電壓)。 此操作使用原子性位元設定,不影響其他腳位。

傳回值
hal::digital::GeneralOutput& 回傳自身參考,支援鏈式呼叫。
僅在輸出模式下有效,輸入模式時操作無效果
警告
確保腳位已設定為輸出方向,否則可能無效
參閱
setLow(), setValue(), setOutput()

實作 hal::digital::GeneralOutput.

◆ setInput()

virtual hal::digital::GeneralPin & mcxa153::core::CoreGeneralPin::setInput ( void )
overridevirtual

設定腳位為輸入方向

將腳位配置為輸入模式,用於讀取外部信號。 輸入模式下腳位呈現高阻抗狀態。

傳回值
hal::digital::GeneralPin& 回傳自身參考,支援鏈式呼叫。
輸入模式可搭配內部上拉/下拉電阻使用
參閱
setOutput(), getDir(), getValue()

實作 hal::digital::GeneralPin.

◆ setLow()

virtual hal::digital::GeneralOutput & mcxa153::core::CoreGeneralPin::setLow ( void )
overridevirtual

設定腳位為低電平

將輸出腳位設定為邏輯低電平(通常為0V/GND)。 此操作使用原子性位元清除,不影響其他腳位。

傳回值
hal::digital::GeneralOutput& 回傳自身參考,支援鏈式呼叫。
僅在輸出模式下有效,輸入模式時操作無效果
警告
確保腳位已設定為輸出方向,否則可能無效
參閱
setHigh(), setValue(), setOutput()

實作 hal::digital::GeneralOutput.

◆ setOutput()

virtual hal::digital::GeneralPin & mcxa153::core::CoreGeneralPin::setOutput ( void )
overridevirtual

設定腳位為輸出方向

將腳位配置為輸出模式,用於驅動外部負載。 輸出模式下可控制腳位的電平狀態。

傳回值
hal::digital::GeneralPin& 回傳自身參考,支援鏈式呼叫。
警告
輸出模式需注意電流驅動能力限制
參閱
setInput(), getDir(), setValue()

實作 hal::digital::GeneralPin.

◆ setPinMode()

virtual hal::digital::GeneralPin::Mode mcxa153::core::CoreGeneralPin::setPinMode ( hal::digital::GeneralPin::Mode mode)
overridevirtual

設定腳位模式

配置腳位的工作模式,影響其電氣特性。 模式變更會即時生效,可能影響連接的外部電路。

參數
mode要設定的腳位模式
  • PUSH_PULL: 推輓模式,適合LED控制
  • OPEN_DRAIN: 開漏模式,適合I2C等協定
  • INPUT: 輸入模式,用於信號檢測
傳回值
hal::digital::GeneralPin::Mode 實際設定的模式 通常與輸入參數相同,除非硬體不支援
警告
模式變更可能導致輸出電平改變
參閱
getPinMode(), setDir()

實作 hal::digital::GeneralPin.

◆ setToggle()

virtual hal::digital::GeneralOutput & mcxa153::core::CoreGeneralPin::setToggle ( void )
overridevirtual

切換腳位電平狀態

反轉腳位的目前輸出電平:

  • 高電平→低電平
  • 低電平→高電平

此操作使用原子性位元切換,適合頻繁的狀態變更。

傳回值
hal::digital::GeneralOutput& 回傳自身參考,支援鏈式呼叫。
僅在輸出模式下有效
警告
切換前確保了解目前電平狀態
參閱
setHigh(), setLow(), getValue()

實作 hal::digital::GeneralOutput.

◆ setValue()

virtual hal::digital::GeneralOutput & mcxa153::core::CoreGeneralPin::setValue ( bool level)
overridevirtual

設定腳位邏輯值

根據布林值設定腳位的輸出電平。 提供程序化的電平控制方式。

參數
level要設定的邏輯值
  • true: 設定為高電平
  • false: 設定為低電平
傳回值
hal::digital::GeneralOutput& 回傳自身參考,支援鏈式呼叫。
等效於條件性調用setHigh()或setLow()
參閱
setHigh(), setLow(), getValue()

實作 hal::digital::GeneralOutput.


此類別(class) 文件是由下列檔案中產生: