總體概述
開關(guān)矩陣顧名思義就是一個由多個,甚至多組開關(guān)組成的陣列,這個陣列的目的就是把片內(nèi)外設(shè)的輸入輸出信號線,按照用戶的意向,通過編程連接到特定的外部引腳上。
開關(guān)矩陣可以為LPC800的使用者帶來很多方便和實用的特性:
-
很多用戶都碰到過,設(shè)計PCB時芯片引腳的順序與板上的器件不匹配,走線繞來繞去;有了這個開關(guān)矩陣,用戶可以按照最佳布線要求,安排MCU的功能引出腳。
-
有些工程師在設(shè)計PCB時,由于疏忽或?qū)ζ骷睦斫庥姓`,可能會造成連線錯誤,例如把I2C的SDA和SCL搞反了,把UART的TX和RX搞反了等。遇到這種情況,不必割線、飛線、重新設(shè)計PCB,只需要在配置開關(guān)矩陣時,在代碼中按照實際的連線編程配置即可,完全不必改動硬件。
-
用戶經(jīng)常會因為產(chǎn)品升級換代,需要重新設(shè)計PCB,但只是做少量的修改或擴充,或者僅僅是更換一個功能更強的MCU,而希望盡可能地保持原有的布局和布線走向不變;開關(guān)矩陣同樣能滿足用戶的這個需要。
-
通常一款MCU都會內(nèi)置多個及多種外設(shè),例如LPC824的串行通信外設(shè)就包含3個USART、4個I2C和2個SPI,即使不計算其它外設(shè)(例如SCT、GPIO等)的引出腳,所有這些串行通信外設(shè)的引出腳數(shù)目,就已經(jīng)超過芯片總的引腳數(shù)目。有了開關(guān)矩陣,用戶可以按照自己的意愿引出需要的功能,在引腳總數(shù)允許的情況下,可以進行隨意的功能組合。
開關(guān)矩陣也有其局限性,模擬功能和電源/地線引腳不能通過開關(guān)矩陣重新分配引出腳;模擬功能具有固定的不能被重新分配的引出腳,但用戶可以按照需要關(guān)閉引出腳對應(yīng)的模擬功能,從而騰出該引出腳用于其它數(shù)字功能。
1.1 SWM模型特性LPC800全系列的每個型號都標配SWM開關(guān)矩陣。
開關(guān)矩陣的功能有兩個:
-
把數(shù)字外設(shè)的輸入輸出功能自由地分配到指定的外部引腳。能夠自由分配外部引腳的功能稱為可移動功能。
-
使能或關(guān)閉模擬功能或需要特定電氣特性的功能,例如ADC和/或模擬比較器的輸入功能,晶體振蕩器的輸入輸出引腳,具有超快速模式的I2C0功能等。對于這些不能自由分配外部引腳的功能,稱為固定功能。
下面兩張表分別列出了所有可移動功能和固定功能,以及它們在各個系列中的配置情況。* 括號中為LPC81x的信號名稱。
表1 可移動功能一覽表
上表中列出了所有目前LPC800產(chǎn)品系列的可移動功能信號,可以看出這些信號全部是數(shù)字信號。右邊四列分別是各個系列的配置情況,數(shù)字代表所在行的信號在對應(yīng)的系列中是可移動功能,編號的意義將在1.3節(jié)的應(yīng)用例程中介紹;格中“-”表示對應(yīng)的系列沒有這個信號。
I2C0_SDA和I2C0_SCL這兩個信號只在LPC81x中是可移動功能,在其它系列中都是不可移動的。LPC82x和LPC84x的其它I2C模塊,I2C1~3的信號是可移動功能信號。
這里需要注意的是,在LPC81x系列中,I2C0_SDA和I2C0_SCL這兩個信號是可移動的,但只有把它們安排在PIO0_10和PIO0_11引腳時,才能達到超高速(1Mbit/s),移動到其它的引腳時只能實現(xiàn)最高400 kbit/s的速率。
固定功能信號分兩類:數(shù)字信號和模擬信號;這樣的區(qū)分將涉及到信號間互聯(lián)的策略,本章后面的段落將討論這個策略。* 對應(yīng)的信號與其它信號復(fù)用相同引腳。
表2固定功能一覽表
表2中右邊四列分別是各個系列的配置情況,數(shù)字代表所在行的信號在對應(yīng)的系列中是否有該功能,編號的意義將在1.3節(jié)的應(yīng)用例程中介紹;格中“-”表示對應(yīng)的系列沒有這個信號。
每一個可移動功能,可以被分配使用任意一個引腳。而固定功能只能使用芯片指定的引腳。GPIO的輸出端口也只能使用芯片指定的引腳。
下面是LPC80x的可移動功能和固定功能列表,這個新的子系列的SWM寄存器排列與其它系列略有不同,但不會影響用戶的使用。
表3LPC80x可移動功能一覽表
* 對應(yīng)的信號與其它信號復(fù)用相同引腳? ??表4LPC80x固定功能一覽表
另外,在LPC804中的PLU模塊共有6個輸入端和8個輸出端,它們也是可移動功能,但不能向其它可移動功能那樣可以被任意地分配到任一個引腳,每個PLU的輸入/輸出端分別只能在PINASSIGNFIXED0寄存器中被分配到3個引腳,如下表:
每個PLU的信號在PINASSIGNFIXED0寄存器中占據(jù)2個二進制控制位,具體配置方法請參考用戶手冊。
1.2 SWM模塊的內(nèi)部構(gòu)成1.2.1 模塊框圖
下面這個框圖來自LPC800的用戶手冊:
圖1.開關(guān)矩陣(SWM)框圖
這個圖全面地描繪了開關(guān)矩陣與各個內(nèi)部外設(shè)、連接外部引腳的焊盤、GPIO模塊以及引腳中斷單元之間的關(guān)系。這張圖只畫出了一個外部引腳和與之對應(yīng)的內(nèi)部結(jié)構(gòu),其它引腳及內(nèi)部結(jié)構(gòu)和這張圖基本一樣;以LPC824封裝為HVQFN33的芯片為例,它有29個GPIO引腳,則其內(nèi)部就有29套上圖這樣的電路。
對于某些不具備模擬功能的引腳,它們的片內(nèi)結(jié)構(gòu)將不包含上圖中的模擬部分(黃色區(qū)域)。
按照用戶手冊的功能描述,可以把LPC824的最大引腳封裝的開關(guān)矩陣,用圖2示意性地展現(xiàn)出來。這張圖清晰地展示了一個完整的開關(guān)陣列(矩陣)的結(jié)構(gòu);此圖只是一個幫助理解和記憶的示意圖,并不代表芯片內(nèi)部的真實電路。圖中左邊一列的PIO0_0~PIO0_28表示外部引腳,而右邊一列的PIO0_0~PIO0_28表示GPIO模塊的內(nèi)部輸出端。

下面把SWM的功能分成三個組,分別進行介紹。(注:這里的分組只是為了方便說明,實際在芯片手冊中并沒有此類分組)
1.2.2 固定功能開關(guān)組
上圖左側(cè)以黃色標注的一組開關(guān),可以稱它為固定功能開關(guān)組,每一個開關(guān)旁邊,都用黃字標示該開關(guān)對應(yīng)的固定功能信號。這組開關(guān)中,在芯片復(fù)位后,多數(shù)開關(guān)默認為斷開固定功能與外部引腳的連接;但有三個信號特殊,在芯片復(fù)位后,SWDIO、SWCLK和RESETN對應(yīng)的開關(guān)將這三個信號連接到外部引腳上。
另外PIO0_1對應(yīng)的固定功能信號有一個模擬功能(ACMP_I2)和一個數(shù)字功能(CLKIN);PIO0_6、PIO0_14和PIO0_23,分別對應(yīng)兩個固定功能模擬信號;這些信號的連接示意圖如下。
? ? ? 圖3.LPC824的復(fù)用固定功能模擬信號開關(guān)示意圖
▲固定功能開關(guān)組:決定需要把某個固定功能信號連接到對應(yīng)的外部引腳,這組開關(guān)是一對一的;以LPC82x為例,表2列出了25個固定功能,其中有四對固定功能信號復(fù)用輸入引腳,因此共有25個固定功能開關(guān)。(注:LPC82x中最大配置的芯片有25個固定功能,其它芯片中固定功能則少于這個數(shù)目)
模擬的固定功能信號對應(yīng)的開關(guān)是排他性的,當對應(yīng)的模擬信號連接到外部引腳時,其它任何信號不能再連接到該引腳;數(shù)字的固定功能信號對應(yīng)的開關(guān),用于把使能的信號連接到對應(yīng)的引腳,但不排斥其它可移動功能也連接到這個相同的引腳。
? ? ? ? ? ? ? ??圖4.固定功能開關(guān)組(模擬信號)示意圖
圖5.固定功能開關(guān)組(數(shù)字信號)示意圖
引腳使能寄存器0(PINENABLE0)中的每一位,對應(yīng)圖4或圖5所示的一個開關(guān)。
圖2中部蘭色陰影框起來的部分,可以稱為可移動功能開關(guān)組。在這個縱橫矩陣中,每個交叉點都是一個開關(guān);每列(縱向)只能有一個開關(guān)閉合;每行(橫向)可以有多個開關(guān)閉合;復(fù)位后所有開關(guān)默認為斷開。
▲可移動功能開關(guān)組:該組開關(guān)決定需要把某個可移動功能信號連接到哪個外部引腳。表1的第一列的每一個可移動功能,都對應(yīng)這樣的可移動功能開關(guān)組;表1列出了48個可移動功能,也就是說芯片內(nèi)部實現(xiàn)了48個這樣的開關(guān)組。(注:最大配置的芯片有48個可移動功能,其它芯片中可移動功能數(shù)目可參看表1)
圖6.可移動功能開關(guān)組(共48組)示意圖A
每個引腳分配寄存器0~11(Pin assign register)都有4個字節(jié),每個字節(jié)控制上圖所示的一個可移動功能開關(guān)組,即每個引腳分配寄存器控制四個可移動功能信號的引腳分配。
圖7.可移動功能開關(guān)組(共48組)示意圖B
上圖是圖6的另一種畫法,虛線框起來的一組開關(guān),由引腳分配寄存器的對應(yīng)字節(jié)控制,任何時候,只能有一個開關(guān)閉合或所有開關(guān)斷開。
圖2右側(cè)以橘紅色標注的一組開關(guān),稱為GPIO開關(guān)組。當其中任一開關(guān)閉合時,對應(yīng)的GPIO輸出端口已固定功能開關(guān)的狀態(tài),將有可能連接到外部引腳。當某個開關(guān)K所在行中有任意一個開關(guān)閉合時,這個開關(guān)K會自動斷開,很顯然這樣可以避免GPIO模塊的輸出與可移動功能信號相互沖突。
▲GPIO開關(guān)組:該組開關(guān)決定是否要把GPIO模塊的某個端口輸出到對應(yīng)的引腳。
圖8.GPIO開關(guān)組示意圖
將GPIO模塊的某個端口的輸出連接到外部引腳的條件有兩個:一是沒有任何作為輸出的可移動功能分配到對應(yīng)的引腳;二是沒有使能對應(yīng)的固定功能,例如:如果要輸出GPIO模塊的PIO0_6信號,則應(yīng)該關(guān)閉對應(yīng)的固定功能ADC_1和VDDCMP。
從圖1可以看出,每個引腳都有兩個內(nèi)部連接點(焊盤),分別處理數(shù)字信號和模擬信號;實際使用中,對IOCON(輸入輸出配置)模塊的設(shè)置決定數(shù)字焊盤的輸入輸出特性;而使用數(shù)字焊盤還是模擬焊盤與外部引腳相連接,則由開關(guān)矩陣決定;當在開關(guān)矩陣中使能了某個端口的固定模擬功能,則該外部引腳將使用模擬焊盤;其它情況下,不論引腳是分配了可移動的功能信號,還是固定功能的數(shù)字信號,或是GPIO的輸出端,該外部引腳都是對應(yīng)數(shù)字焊盤的信號。
1.2.3 開關(guān)矩陣的使用特性
從圖2和以上的描述,可以總結(jié)出以下一些特性:
■一旦使能某個固定模擬功能時,該功能將占用對應(yīng)的引腳,所有其它任何信號都不能使用該引腳。
■當使能某個固定數(shù)字功能信號時,其他的可移動數(shù)字信號,也可以被分配使用該引腳,即多個信號線在芯片內(nèi)部是互通的。例如使能了CLKIN輸入功能后,還可以分配一個或多個SCT的輸入端至相同的引腳,這樣CLKIN信號也同時輸入至SCT中。
■如果某個引腳對應(yīng)的固定功能未使能時,一個或多個可移動功能可以被分配使用該引腳;當沒有任何可移動功能使用該引腳時,對應(yīng)的GPIO輸出端口將能夠取得該引腳的控制權(quán)。使用GPIO輸出功能時,需要關(guān)閉對應(yīng)的固定功能并且沒有任何可移動功能使用對應(yīng)的引腳。
■一個或多個可移動功能可以被分配使用相同的引腳,但其中只能有一個可移動輸出功能(包含雙向功能信號)。多個可移動輸入功能可以使用同一個引腳;例如多個SCT的輸入端可以使用同一個引腳,這樣可以用一個外部信號同步SCT的多組定時。
■當可移動輸入功能與某個可移動輸出功能被分配到同一個引腳時,這些輸入功能將接收前述輸出功能的信號。使用者可以用這個特性實現(xiàn)很多環(huán)回的操作;例如把USART的RXD和TXD信號通過此方式連接,實現(xiàn)自循環(huán)。
■不管引腳連接到哪種數(shù)字功能信號(固定數(shù)字功能、可移動功能或GPIO模塊),GPIO模塊的輸入端都始終與它對應(yīng)的引腳連接,GPIO輸入寄存器將反映引腳的數(shù)字電平狀態(tài)。
■當任意模擬信號被分配使用外部引腳,該引腳的模擬焊盤被使能,同時數(shù)字焊盤將被斷開。
■當任意數(shù)字輸出信號被分配到外部引腳,該引腳的數(shù)字焊盤被使能。
■只要引腳的數(shù)字焊盤被使能(未斷開),對應(yīng)的引腳中斷就會有輸入信號,即該引腳的輸入信號(如果被使能的話)將可能觸發(fā)引腳中斷。
下面這個簡單的流程圖,以另一種方式描述了開關(guān)矩陣的用法。圖9.開關(guān)矩陣的使用
第一個例子是使用SCT在板載LED燈上實現(xiàn)一個呼吸燈(SCT的呼吸燈不是本章重點,將不做注解),然后通過改變開關(guān)矩陣的設(shè)置,實現(xiàn)一組LED燈的輪流顯示。
第二個例子是使用LPC824的開關(guān)矩陣,把芯片上的兩個USART模塊進行對接,實現(xiàn)一發(fā)一收而不需片外連線。
1.3.1 設(shè)置開關(guān)矩陣的函數(shù)
開關(guān)矩陣的設(shè)置是通過一組32位寄存器PINASSIGN[n],和一個32位寄存器PINENABLE0實現(xiàn)。
寄存器PINENABLE0中的每一位,是對應(yīng)的固定功能的使能位,即圖4或圖5中的一個開關(guān);表2最右邊三列中的數(shù)字,分別是每個系列中各個固定功能信號使能位在寄存器PINENABLE0中的索引號。
對于PINASSIGN[n] 寄存器組,我們把它相像成一個字節(jié)數(shù)組,每個字節(jié)對應(yīng)圖6或圖7所示的一個可移動功能開關(guān)組,即每個字節(jié)對應(yīng)一個可移動功能,這個字節(jié)中填寫的內(nèi)容就是該功能被分配到的引腳編號。表1最右邊三列中的數(shù)字,分別是每個系列中各個可移動功能信號,在上述字節(jié)數(shù)組中的索引號。例如在LPC82x和LPC83x系列中,功能SCT_OUT0的索引號是31,由于每個PINASSIGN寄存器里有四個字節(jié),所以SCT_OUT0的配置字節(jié)是PINASSIGN[7]的第三個字節(jié),即位24~31,如下圖:
讀者可以方便地使用下面這個函數(shù)設(shè)置可移動功能信號。
代碼片段1.置可移動功能信號引腳的函數(shù)
這個函數(shù)簡化了SWM寄存器的配置,以后會經(jīng)常用到。
1.3.2 設(shè)置開關(guān)矩陣簡例
■例1:使能I2C0的兩個信號。
在LPC82x和LPC83x中,I2C0的兩個信號是固定功能,需要使用PINENABLE0使能,分別使用P0_11和P0_12兩個引腳:在LPC81x中,I2C0的兩個信號是可移動功能,可以使用上一節(jié)的函數(shù)設(shè)置引腳分配。
■例2:使能CLKIN輸入功能,同時把這個信號作為所有SCT的輸入。這個例子演示了把多個可移動功能分配至同一個引腳,同時使能這個引腳的固定功能。
引腳P0_1是固定功能CLKIN對應(yīng)的引腳,使能CLKIN后P0_1即成為它的輸入引腳,再把所有SCT的輸入端也分配使用這個輸入腳,這樣輸入信號也同時同步地導(dǎo)入至所有SCT的輸入端。
1.3.3 通過開關(guān)矩陣實現(xiàn)呼吸燈的輪轉(zhuǎn)
在LPC824-Lite開發(fā)板上共有八個LED燈,這部分線路圖如下:
從上圖中可以看出,八個LED燈分別連接到MCU的P0_7、13、16、17、19、27、28、18引腳上。
本例程使用LPC824的SCT產(chǎn)生一個PWM波形,當這個PWM信號輸出到某個LED時,對應(yīng)的LED就會忽明忽暗地顯現(xiàn)呼吸燈的效果。例程中通過開關(guān)矩陣(SWM),在不改變?nèi)魏蜸CT配置的情況下,實現(xiàn)輪流逐個點亮LED燈的效果。在此基礎(chǔ)上,通過變換GPIO輸出,實現(xiàn)另一個LED燈的閃爍。
本例程可以讓讀者體會到,在不改變信號源的配置的情況下,僅改變SWM的配置即可改變信號的輸出引腳;作為對比,GPIO的輸出是不能通過開關(guān)矩陣改變輸出引腳的,LED燈的閃爍操作則必須通過改變對應(yīng)的GPIO輸出狀態(tài),才能改變輸出引腳的狀態(tài)。
下圖是SCT的PWM波形輪流輸出至八個LED燈的示意圖。
圖10.輪流輸出PWM信號至八個LED燈的示意圖
為了實現(xiàn)呼吸燈的效果,即LED燈逐漸地由暗變亮,再逐漸地由亮變暗,需要控制輸出PWM波形的占空比,從100%(全滅)逐漸減少至0%(全亮),再從0%逐漸增加到100%。
本例程使用SysTick和幾個全局變量控制PWM占空比的改變和時序。
代碼片段2.SysTick中斷處理函數(shù)——改變PWM占空比
SysTick的中斷處理函數(shù)的操作非常簡單,每次進入都會改變輸出占空比;改變的速度快慢是由SysTick的設(shè)置決定。
下面代碼就是主程序部分。
代碼片段3.開關(guān)矩陣實現(xiàn)呼吸燈輪轉(zhuǎn)主程序
初始化完所有用到的資源后,在主循環(huán)中有兩個操作,其一是當SCT輸出的占空比達到100%,轉(zhuǎn)換SCT輸出的外部引腳,實現(xiàn)呼吸燈的輪轉(zhuǎn);其二是使用GPIO輸出控制另一個LED燈的閃爍。
數(shù)組LED_Pins[8],是為了方便程序輪流操作八個LED燈;數(shù)組中存放了每個燈對應(yīng)的引腳編號。
用GPIO輸出,實現(xiàn)LED燈閃爍的實現(xiàn)代碼如下。
代碼片段4. GPIO實現(xiàn)LED燈閃爍
函數(shù)Toggle_LED_Pins()的作用就是定時變換LED燈的亮或滅,實現(xiàn)閃爍的效果。該函數(shù)以呼吸燈信號的占空比為定時依據(jù),實現(xiàn)LED循環(huán)閃爍:
上述LED_On和LED_Off是兩個宏定義,直接控制GPIO輸出端口的狀態(tài):
#define LED_On(led) LPC_GPIO_PORT->CLR0 = (1<<(led))
|
|
#define LED_Off(led) LPC_GPIO_PORT->SET0 = (1<<(led))
|
1.3.4 兩個USART模塊對接
這個實例演示了通過開關(guān)矩陣實現(xiàn)片內(nèi)外設(shè)模塊的互連,完成互相通信。
LPC800的每個USART模塊都可以實現(xiàn)同步的串行傳輸,即比普通的異步傳輸多一條時鐘信號線。本實例配置USART1作為發(fā)送方,配置USART2作為接收方,需要分別連接三個信號線,如下圖:
通過開關(guān)矩陣的配置,上述連接可以在芯片內(nèi)部直接實現(xiàn)。如果不需要連接其它外設(shè),用戶不必再對開發(fā)板進行任何改動。
下圖是開關(guān)矩陣的配置代碼, USART1和USART2的初始化代碼和通信的測試代碼不在此說明。 代碼片段5.為USART1和USART2配置輸入輸出引腳
讀者在運行這個例程時,可以嘗試更改上述06~11行代碼,分別把USART1和USART2的三個信號配置到不同的引腳,然后再在開發(fā)板上把對應(yīng)的信號短接,以此體會開關(guān)矩陣在內(nèi)部信號互連的特點。
在實際的項目開發(fā)中,用戶可以使用開關(guān)矩陣的這一特性,配置本項目中沒有用到的片內(nèi)模塊,對那些對外通信的模塊實行適當?shù)谋O(jiān)測,在不干擾正常通信并且不增加任何外部硬件的情況下,提供更多的調(diào)試跟蹤手段。
1.4注意事項
開關(guān)矩陣的使用相當簡單,但有以下幾點需要注意的:
1. 配置開關(guān)矩陣時,必須先打開SWM的時鐘,配置完成后,可以關(guān)閉SWM的時鐘節(jié)省功耗。
2. 不能把多于一個的輸出功能或雙向功能信號,分配至同一個引腳上。
3. 只要引腳不是模擬功能,不管是輸出功能還是輸入功能,對應(yīng)的GPIO輸入端始終連接到引腳,這樣通過GPIO端口隨時可以讀出引腳的電平狀態(tài)。同時,如果在SYSCON中選擇了該端口作為中斷觸發(fā)源,該引腳將可能觸發(fā)中斷,尤其當該引腳為數(shù)字輸出功能時,芯片內(nèi)部的輸出信號也會觸發(fā)中斷。
通過開關(guān)矩陣SWM能夠?qū)崿F(xiàn)一個輸出對多個輸入信號的鏈接,這是通過把輸出信號送到引腳上,再通過引腳的輸入端口“穿回”到芯片內(nèi)部。如果選擇了模擬信號,那么只有模擬信號送到引腳上,數(shù)字信號不能送到引腳上,否則就會干擾模擬信號。而且這時候數(shù)字輸入的那部分也是關(guān)閉的。如果不是最大封裝,那些沒封出來的引腳是可以用來做這種穿回,來實現(xiàn)內(nèi)部信號互聯(lián)。
END
更多恩智浦AI-IoT市場和產(chǎn)品信息,邀您同時關(guān)注“NXP客?!蔽⑿殴娞?/span>

NXP客棧
恩智浦致力于打造安全的連接和基礎(chǔ)設(shè)施解決方案,為智慧生活保駕護航。
長按二維碼,關(guān)注我們
恩智浦MCU加油站
這是由恩智浦官方運營的公眾號,著重為您推薦恩智浦MCU的產(chǎn)品信息、開發(fā)技巧、教程文檔、培訓(xùn)課程等內(nèi)容。

長按二維碼,關(guān)注我們
原文標題:LPC800前生今世 第六章-開關(guān)矩陣(SWM: Switch Matrix)
文章出處:【微信公眾號:恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
mcu
+關(guān)注
關(guān)注
146文章
17918瀏覽量
362772 -
恩智浦
+關(guān)注
關(guān)注
14文章
5963瀏覽量
114833
原文標題:LPC800前生今世 第六章-開關(guān)矩陣(SWM: Switch Matrix)
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
電源設(shè)計中功率因數(shù)校正講解
激光器電源技術(shù)電子書
施耐德電氣創(chuàng)贏計劃第六季正式啟動
飛凌嵌入式ElfBoard ELF 1板卡-uboot移植之IOMUX介紹
第六章 外部中斷

第六章 GPIO輸入——按鍵檢測

SESIP的前生今世和未來
《DNESP32S3使用指南-IDF版_V1.6》第六章 新建基礎(chǔ)工程
《DNK210使用指南 -CanMV版 V1.0》第六章 Kendryte K210固件燒錄
第六章-電機驅(qū)動和PWM STM32項目

XLT開關(guān)矩陣

評論