h1_key

當(dāng)前位置:首頁(yè) >新聞資訊 > 行業(yè)資訊>STM32F103單片機(jī)IO不夠用應(yīng)該這么來
STM32F103單片機(jī)IO不夠用應(yīng)該這么來
2022-06-23 565次


 

先說為什么會(huì)不夠用

  一般在項(xiàng)目開發(fā)階段需求都是慢慢的添加的,預(yù)計(jì)需要18個(gè)IO結(jié)果20個(gè)還不夠,甚至有的時(shí)候已經(jīng)全部用完了現(xiàn)有的資源,還需要多出一個(gè)或者兩個(gè)IO來做一個(gè)系統(tǒng)運(yùn)行指示燈這樣的功能,就沒必要換一款更高性能的單片機(jī)來做了,這時(shí)候就會(huì)想能不能再壓榨一下單片機(jī)把多余的資源釋放出來。其實(shí)STM32F103單片機(jī)JTAG端口重映射可以完成這樣的事情。

  STM32F103單片機(jī)JTAG端口重映射

  JTAG接口

  簡(jiǎn)單理解這是一個(gè)下載程序用的接口使用的工具是Jlink

  SWD接口

  簡(jiǎn)單理解就是一個(gè)下載程序的接口使用的工具是STlink

  IO

  簡(jiǎn)單理解就是一個(gè)可以進(jìn)行輸入輸出的普通接口

  STM32IO

  STM32有很多IO口,IO口占據(jù)了絕大多數(shù)的管腳,但是有的管腳天生就不平凡被安排了更牛逼的工作那就是下載程序用,如果想要它由牛逼變成普通就要對(duì)本事下載接口的管腳進(jìn)行功能重新映射。

  映射的關(guān)系由寄存器進(jìn)行控制也可以庫(kù)函數(shù)來實(shí)現(xiàn),但是映射的方式不多,也就三種

  §全功能 SWJJTAG沒有JTRST。

  §禁用JTAG,啟用SWJ。(PB3/PB4/PA15 可重映射為其他功能)

  §完全禁用 SWJJTAG。(PB3/PB4/PA13/PA14/PA15 均可重映射為其他功能)

  §為什么要這樣搞?

  因?yàn)檫@樣設(shè)計(jì)可以允許更多的GPIO被解放出來。

  比如

  第一種可以解放PB4

  第二種可以解放PB3 PB4 PA15

第三種可以解放PB3 PB4 PA13 PA14 PA15

 

 

為什么可以這樣搞?

  

7.png8.png

  

如何解放對(duì)應(yīng)的IO?

    STM32F103單片機(jī)IO不夠用應(yīng)該這么來

  先說為什么會(huì)不夠用

  一般在項(xiàng)目開發(fā)階段需求都是慢慢的添加的,預(yù)計(jì)需要18個(gè)IO結(jié)果20個(gè)還不夠,甚至有的時(shí)候已經(jīng)全部用完了現(xiàn)有的資源,還需要多出一個(gè)或者兩個(gè)IO來做一個(gè)系統(tǒng)運(yùn)行指示燈這樣的功能,就沒必要換一款更高性能的單片機(jī)來做了,這時(shí)候就會(huì)想能不能再壓榨一下單片機(jī)把多余的資源釋放出來。其實(shí)STM32F103單片機(jī)JTAG端口重映射可以完成這樣的事情。

  STM32F103單片機(jī)JTAG端口重映射

  JTAG接口

  簡(jiǎn)單理解這是一個(gè)下載程序用的接口使用的工具是Jlink

  SWD接口

  簡(jiǎn)單理解就是一個(gè)下載程序的接口使用的工具是STlink

  IO

  簡(jiǎn)單理解就是一個(gè)可以進(jìn)行輸入輸出的普通接口

  STM32IO

  STM32有很多IO口,IO口占據(jù)了絕大多數(shù)的管腳,但是有的管腳天生就不平凡被安排了更牛逼的工作那就是下載程序用,如果想要它由牛逼變成普通就要對(duì)本事下載接口的管腳進(jìn)行功能重新映射。

  映射的關(guān)系由寄存器進(jìn)行控制也可以庫(kù)函數(shù)來實(shí)現(xiàn),但是映射的方式不多,也就三種

  §

  全功能 SWJ,JTAG沒有JTRST

  §

  §

  禁用JTAG,啟用SWJ(PB3/PB4/PA15 可重映射為其他功能)

  §

  §

  完全禁用 SWJJTAG。(PB3/PB4/PA13/PA14/PA15 均可重映射為其他功能)

  §

  §

  為什么要這樣搞?

  因?yàn)檫@樣設(shè)計(jì)可以允許更多的GPIO被解放出來。

  比如

  第一種可以解放PB4

  第二種可以解放PB3 PB4 PA15

  第三種可以解放PB3 PB4 PA13 PA14 PA15

  為什么可以這樣搞?

  

9.png10.png 

 

如何解放對(duì)應(yīng)的IO?

 

進(jìn)行端口復(fù)用

  ·

  ·

  ·

  ·

  ·

  ·

  ·

  ·

  ·

  ·

  ·

  AFIO -> MAPR &= ~(0x7 << 24); //1、清除[26 : 24]AFIO -> MAPR |= (0x4 << 24); //2、關(guān)閉JTAG-DP,關(guān)閉SW-DP

  AFIO -> MAPR &= ~(0x7 << 24); //1、清除[26 : 24]AFIO -> MAPR |= (0x2 << 24) ; //2、關(guān)閉JTAG-DP,開啟SW-DP

  AFIO -> MAPR &= ~(0x7 << 24); //1、清除[26 : 24]AFIO -> MAPR |= (0x1 << 24) ; //2、JTAG-DP + SW-DP NOJNRST

  AFIO -> MAPR &= ~(0x7 << 24); //1、清除[26 : 24]AFIO -> MAPR |= (0x0 << 24) ; //2、都被占用

  庫(kù)函數(shù)寫法

  

 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

AFIO -> MAPR &=  ~(0x7 << 24);   //1、清除[26 : 24]AFIO -> MAPR |=   (0x4 << 24);   //2、關(guān)閉JTAG-DP,關(guān)閉SW-DP
AFIO -> MAPR &=  ~(0x7 << 24);   //1、清除[26 : 24]AFIO -> MAPR |=   (0x2 << 24) ;  //2、關(guān)閉JTAG-DP,開啟SW-DP
AFIO -> MAPR &=  ~(0x7 << 24);   //1、清除[26 : 24]AFIO -> MAPR |=   (0x1 << 24) ;  //2、JTAG-DP + SW-DP NOJNRST
AFIO -> MAPR &=  ~(0x7 << 24);   //1、清除[26 : 24]AFIO -> MAPR |=   (0x0 << 24) ;  //2、都被占用

 

庫(kù)函數(shù)寫法

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

//開啟AFIO時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //Full SWJ Disabled (JTAG-DP + SW-DP)GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
 //開啟AFIO時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//JTAG-DP Disabled and *SW-DP Enabled*GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //開啟AFIO時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRSTGPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE);

 

  ·

  ·

  ·

  ·

  ·

  ·

  ·

  ·

  ·

  ·

  ·

  AFIO -> MAPR &= ~(0x7 << 24); //1、清除[26 : 24]AFIO -> MAPR |= (0x4 << 24); //2、關(guān)閉JTAG-DP,關(guān)閉SW-DP

  AFIO -> MAPR &= ~(0x7 << 24); //1、清除[26 : 24]AFIO -> MAPR |= (0x2 << 24) ; //2、關(guān)閉JTAG-DP,開啟SW-DP

  AFIO -> MAPR &= ~(0x7 << 24); //1、清除[26 : 24]AFIO -> MAPR |= (0x1 << 24) ; //2JTAG-DP + SW-DP NOJNRST

  AFIO -> MAPR &= ~(0x7 << 24); //1、清除[26 : 24]AFIO -> MAPR |= (0x0 << 24) ; //2、都被占用

  庫(kù)函數(shù)寫法

  

 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

AFIO -> MAPR &=  ~(0x7 << 24);   //1、清除[26 : 24]AFIO -> MAPR |=   (0x4 << 24);   //2、關(guān)閉JTAG-DP,關(guān)閉SW-DP
AFIO -> MAPR &=  ~(0x7 << 24);   //1、清除[26 : 24]AFIO -> MAPR |=   (0x2 << 24) ;  //2、關(guān)閉JTAG-DP,開啟SW-DP
AFIO -> MAPR &=  ~(0x7 << 24);   //1、清除[26 : 24]AFIO -> MAPR |=   (0x1 << 24) ;  //2、JTAG-DP + SW-DP NOJNRST
AFIO -> MAPR &=  ~(0x7 << 24);   //1、清除[26 : 24]AFIO -> MAPR |=   (0x0 << 24) ;  //2、都被占用

庫(kù)函數(shù)寫法

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

//開啟AFIO時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //Full SWJ Disabled (JTAG-DP + SW-DP)GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
 //開啟AFIO時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//JTAG-DP Disabled and *SW-DP Enabled*GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //開啟AFIO時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRSTGPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE);

 

  • 成興光丨LED燈珠點(diǎn)亮壁燈,綻放獨(dú)特光彩
  • 成興光LED壁燈作為一種獨(dú)特的照明裝飾燈具,在家居裝飾中扮演著越來越重要的角色。它不僅提供必要的照明,還能為家居環(huán)境增添溫馨與時(shí)尚感,成為家居裝飾的新寵。LED壁燈以其獨(dú)特的設(shè)計(jì)和多樣化的風(fēng)格,滿足了各種家居裝飾的需求。無論是簡(jiǎn)約現(xiàn)代還是古典奢華,LED壁燈都能完美融入,為空間增添一抹獨(dú)特的韻味。
    2024-10-31 220次
  • 時(shí)科榮獲“國(guó)際影響力品牌”大獎(jiǎng),引領(lǐng)半導(dǎo)體行業(yè)創(chuàng)新發(fā)展
  • 5月29日,2024電子信息產(chǎn)業(yè)新質(zhì)生產(chǎn)力交流大會(huì)暨第七屆“藍(lán)點(diǎn)獎(jiǎng)”頒獎(jiǎng)盛典在深圳龍華隆重舉行。本次大會(huì)匯聚了來自政府、學(xué)術(shù)界、產(chǎn)業(yè)界及企業(yè)界的近600位嘉賓,共同探討和展望電子信息產(chǎn)業(yè)新質(zhì)生產(chǎn)力的發(fā)展趨勢(shì)與前景,并表彰了在電子信息創(chuàng)新發(fā)展、品牌價(jià)值提升及技術(shù)競(jìng)爭(zhēng)等方面做出卓越貢獻(xiàn)的企業(yè)
    2024-06-03 23380次
  • 瑞薩收購(gòu)Transphorm擴(kuò)展電源產(chǎn)品陣容
  • 瑞薩與Transphorm宣布雙方已達(dá)成最終協(xié)議,根據(jù)該協(xié)議,瑞薩子公司將以每股5.10美元現(xiàn)金收購(gòu)Transphorm所有已發(fā)行普通股,較Transphorm在2024年1月10日的收盤價(jià)溢價(jià)約35%,較過去十二個(gè)月的成交量加權(quán)平均價(jià)格溢價(jià)約56%,較過去六個(gè)月的成交量加權(quán)平均價(jià)格溢價(jià)約78%。
    2024-01-11 23574次
  • 瑞薩電子預(yù)先公布了第五代R-Car SoC
  • 瑞薩電子預(yù)先公布了第五代R-Car SoC的相關(guān)信息,該SoC面向高性能應(yīng)用,采用先進(jìn)的Chiplet小芯片封裝集成技術(shù),將為車輛工程師在設(shè)計(jì)時(shí)帶來更大的靈活度。舉例來說,若高級(jí)駕駛輔助系統(tǒng)(ADAS)需要兼顧更突出的AI性能時(shí),工程師可將AI加速器集成至單個(gè)芯片中。
    2023-12-12 23865次
  • ROHM羅姆半導(dǎo)體采用SOT-223-3小型封裝的600V耐壓Super Junction MOSFET
  • ROHM羅姆半導(dǎo)體開發(fā)出采用SOT-223-3小型封裝(6.50mm×7.00mm×1.66mm)的600V耐壓Super Junction MOSFET*1,新產(chǎn)品非常適用于照明用小型電源、電泵和電機(jī)等應(yīng)用。
    2023-12-12 1380次

    萬聯(lián)芯微信公眾號(hào)

    元器件現(xiàn)貨+BOM配單+PCBA制造平臺(tái)
    關(guān)注公眾號(hào),優(yōu)惠活動(dòng)早知道!
    10s
    溫馨提示:
    訂單商品問題請(qǐng)移至我的售后服務(wù)提交售后申請(qǐng),其他需投訴問題可移至我的投訴提交,我們將在第一時(shí)間給您答復(fù)
    返回頂部