h1_key

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


 

先說為什么會(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)行控制也可以庫函數(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)行控制也可以庫函數(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) ; //2JTAG-DP + SW-DP NOJNRST

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

  庫函數(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、都被占用

 

庫函數(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) ; //2、JTAG-DP + SW-DP NOJNRST

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

  庫函數(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、都被占用

庫函數(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);

 

  • 和芯星通公司簡(jiǎn)介、GNSS產(chǎn)品、運(yùn)用
  • 和芯星通(Unicore Communications)是一家專注于高精度衛(wèi)星導(dǎo)航定位技術(shù)的中國(guó)企業(yè),成立于2009年,總部位于北京。公司以自主研發(fā)的全球?qū)Ш叫l(wèi)星系統(tǒng)(GNSS)芯片、模塊和解決方案為核心,服務(wù)于多個(gè)行業(yè),尤其在北斗衛(wèi)星導(dǎo)航系統(tǒng)的產(chǎn)業(yè)化應(yīng)用中占據(jù)重要地位。
    2025-05-08 17次
  • U-BLOX GNSS產(chǎn)品及應(yīng)用介紹
  • U-BLOX是一家總部位于瑞士的全球領(lǐng)先定位與無線通信技術(shù)公司,其 GNSS(全球?qū)Ш叫l(wèi)星系統(tǒng))產(chǎn)品以高精度、低功耗、高集成度和可靠性著稱,廣泛應(yīng)用于汽車、物聯(lián)網(wǎng)、工業(yè)、消費(fèi)電子等多個(gè)領(lǐng)域。
    2025-05-07 24次
  • 一文讀懂芯訊通GNSS模組產(chǎn)品特點(diǎn)、運(yùn)用
  • 芯訊通(SIMCom Wireless Solutions)是中國(guó)領(lǐng)先的物聯(lián)網(wǎng)無線通信模組供應(yīng)商,成立于2002年,總部位于上海。其產(chǎn)品涵蓋2G/3G/4G/5G、NB-IoT、Cat-M、Wi-Fi、藍(lán)牙及GNSS定位模組,廣泛應(yīng)用于車載、智能表計(jì)、共享設(shè)備、工業(yè)物聯(lián)網(wǎng)等領(lǐng)域。芯訊通的GNSS模組以“通信+定位一體化”為特色,尤其適合需要實(shí)時(shí)數(shù)據(jù)傳輸與高精度定位的物聯(lián)網(wǎng)場(chǎng)景。
    2025-04-28 46次
  • 一文讀懂GNSS模組產(chǎn)品分類、品牌、運(yùn)用
  • 全球?qū)Ш叫l(wèi)星系統(tǒng)(GNSS,Global Navigation Satellite System)是一種通過衛(wèi)星信號(hào)提供地理定位、導(dǎo)航和時(shí)間同步服務(wù)的技術(shù)。常見的GNSS包括美國(guó)的GPS、俄羅斯的GLONASS、歐盟的伽利略(Galileo)和中國(guó)的北斗(BDS)。以下從產(chǎn)品、品牌和應(yīng)用領(lǐng)域三個(gè)方面進(jìn)行介紹:
    2025-04-28 90次
  • 時(shí)科再獲華強(qiáng)電子網(wǎng)優(yōu)秀國(guó)產(chǎn)品牌榮譽(yù)
  • 2025年4月11日,2025年半導(dǎo)體產(chǎn)業(yè)發(fā)展趨勢(shì)大會(huì)暨2024年度(第十七屆)華強(qiáng)電子網(wǎng)優(yōu)質(zhì)供應(yīng)商&電子元器件行業(yè)優(yōu)秀國(guó)產(chǎn)品牌頒獎(jiǎng)盛典在深圳華僑城洲際大酒店成功舉辦。此次盛典吸引了業(yè)內(nèi)眾多領(lǐng)先企業(yè)與專家學(xué)者參與,分享產(chǎn)業(yè)發(fā)展趨勢(shì)和未來機(jī)遇。時(shí)科公司歷時(shí)四個(gè)月,經(jīng)過企業(yè)提名、專家篩選、公眾投票和專家評(píng)審四大環(huán)節(jié),最終脫穎而出,榮獲“2024年度華強(qiáng)電子網(wǎng)優(yōu)秀國(guó)產(chǎn)品牌企業(yè)”大獎(jiǎng)。這一殊榮的獲得,不僅是對(duì)時(shí)科多年努力的肯定,更是對(duì)其在行業(yè)中的卓越貢獻(xiàn)的認(rèn)可。
    2025-04-17 60次

    萬聯(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ù)
    返回頂部