• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      STM32的輸入/輸出端口課堂教學(xué)方法探討

      2020-11-25 10:20:10
      科教導(dǎo)刊·電子版 2020年30期
      關(guān)鍵詞:浮空低電平高電平

      (洛陽(yáng)師范學(xué)院信息技術(shù)學(xué)院 河南·洛陽(yáng) 471934)

      0 引言

      輸入/輸出端口是STM32微控制器最基本的片上外設(shè)。I/O端口工作在輸入狀態(tài)時(shí),既可接收數(shù)字信號(hào),亦可接收模擬信號(hào);I/O端口工作在輸出狀態(tài)時(shí),根據(jù)程序的運(yùn)行結(jié)果,輸出驅(qū)動(dòng)外部負(fù)載工作。STM32的常規(guī)輸入/輸出 GPIO 具有浮空輸入、上拉輸入、下拉輸入、模擬輸入、推挽輸出、開(kāi)漏輸出、復(fù)用推挽輸出、復(fù)用開(kāi)漏輸出8種工作模式,根據(jù)用戶需要進(jìn)行編程設(shè)置。

      STM32F103ZET6具有7組I/O端口,PA~PG,每組端口16位,共112個(gè)I/O口。這些端口大都具有多重功能,既可作為常規(guī)I/O端口,又可編程為其它功能,如EXTI引腳、ADC通道引腳、SPI引腳、FSMC引腳、USART引腳等。

      1 輸入/輸出端口的結(jié)構(gòu)

      1.1 輸入/輸出端口的結(jié)構(gòu)

      輸入/輸出端口電路是可編程的,主要由保護(hù)電路、輸入驅(qū)動(dòng)器、輸出驅(qū)動(dòng)器、輸入數(shù)據(jù)寄存器和輸出數(shù)據(jù)寄存器等構(gòu)成,如圖1所示。STM32F103ZET6具有112個(gè)這樣的 I/O端口電路。

      保護(hù)電路中的兩個(gè)保護(hù)二極管,防止I/O引腳輸入過(guò)高、過(guò)低的電壓,燒毀芯片。因此I/O端口不能直接外接大功率器件。輸入驅(qū)動(dòng)器(Inputdriver)由TTL施密特觸發(fā)器構(gòu)成,相當(dāng)于一個(gè)開(kāi)關(guān),把I/O端口的電平狀態(tài)通過(guò)觸發(fā)器送入輸入數(shù)據(jù)寄存器。

      輸出驅(qū)動(dòng)器(Output driver)由選擇器、輸出控制、含有PMOS管和N-MOS管的推挽結(jié)構(gòu)電路組成,輸出控制的輸出是一對(duì)互補(bǔ)信號(hào),推挽結(jié)構(gòu)電路由互補(bǔ)信號(hào)控制,工作時(shí)兩個(gè)管只有一個(gè)導(dǎo)通,功耗低。輸出數(shù)據(jù)寄存器輸出高電平時(shí),控制輸出亦為高電平,此時(shí)P-MOS管導(dǎo)通、N-MOS管截止,I/O端口輸出高電平;輸出數(shù)據(jù)寄存器輸出低電平時(shí),控制輸出亦為低電平,那么P-MOS管截止、N-MOS管導(dǎo)通,I/O端口輸出低電平。I/0端口輸出的狀態(tài)即是輸出數(shù)據(jù)寄存器的狀態(tài)。

      1.2 輸入/輸出端口的工作模式

      輸入工作模式有浮空輸入、上拉輸入、下拉輸入、模擬輸入4種。浮空輸入時(shí),引腳內(nèi)部什么也不用接,I/O的端口狀態(tài)取決于用于外部信號(hào);上拉輸入時(shí),上拉開(kāi)關(guān)閉合,將不確定的信號(hào)通過(guò)內(nèi)部電阻上拉到高電平,適用于輸入信號(hào)為低電平有效的情況;下拉輸入時(shí),下拉開(kāi)關(guān)閉合,將不確定的信號(hào)通過(guò)內(nèi)部電阻接GND,適用于輸入信號(hào)為高電平有效的情況;模擬輸入時(shí),把連續(xù)的模擬信號(hào)直接引入,常用于AD轉(zhuǎn)換。注意,輸入模式下,輸出驅(qū)動(dòng)器不工作,相當(dāng)于斷開(kāi)。

      圖1:可編程I/O端口電路的基本結(jié)構(gòu)

      圖2:端口配置低寄存器的設(shè)置位

      圖3:重映射和調(diào)試I/O配置寄存器的設(shè)置位

      輸出工作模式有推挽輸出、開(kāi)漏輸出、復(fù)用推挽輸出和復(fù)用開(kāi)漏輸出4種。推挽輸出時(shí),可以輸出高/低電平,處理的是數(shù)字信號(hào),輸出高電平時(shí),P-MOS管導(dǎo)通,N-MOS管截止,I/O端口聯(lián)通VDD,輸出低電平時(shí),N-MOS管導(dǎo)通,P-MOS管截止,I/O端口聯(lián)通VSS;開(kāi)漏輸出時(shí),P-MOS管是關(guān)閉狀態(tài),無(wú)法直接輸出高電平,需要外接上拉電阻,輸出電壓由上拉電阻連接的電源決定,輸出低電平時(shí),和推挽輸出一樣,I/O端口聯(lián)通VSS,因此開(kāi)漏輸出模式適用于匹配電平的工況;復(fù)用推挽輸出和復(fù)用開(kāi)漏輸出用于其它片內(nèi)外設(shè)。注意,輸出模式下,輸入驅(qū)動(dòng)器工作,開(kāi)關(guān)閉合,可讀取I/O端口的狀態(tài)。

      2 輸入/輸出端口的寄存器設(shè)置

      2.1 GPIO寄存器的設(shè)置

      GPIO是常規(guī)輸入/輸出端口,STM32F103ZET6有7組16位的GPIO,通過(guò)對(duì)GPIO寄存器編程,設(shè)置每個(gè)端口的工作模式。GPIO寄存器包括端口配置低寄存器(GPIOX_CRL)、端口配置高寄存器 (GPIOX_CRH)、輸入數(shù)據(jù)寄存器 (GPIOX_IDR)、輸出數(shù)據(jù)寄存器(GPIOX_ODR)、端口位設(shè)置/清除寄存器(GPIOX_BSRR)、端口位清除寄存器(GPIOX_BRR)、端口配置鎖定寄存器(GPIOX_LCKR),均為32位寄存器(有的帶保留位),所有x的范圍為(A~G),A~G標(biāo)識(shí)的是分組號(hào)。例如,GBIOB_CRL是B組的GPIO端口配置低寄存器,GPIOC_CRL是C組GPIO的端口配置低寄存器。

      端口配置低寄存器(GPIOX_CRL)用于設(shè)置各組GPIO低8位端口的工作模式,寄存器的各設(shè)置位如圖2所示,每位均可讀寫(xiě),每4位設(shè)置1位端口,其中低兩位設(shè)置輸入或輸出(00表示輸入模式,也是復(fù)位后的值;01表示輸出模式,最大速度10MHZ;10表示輸出模式,最大速度2MHZ;11表示輸出模式,最大速度50MHZ),高兩位設(shè)置具體工作模式(輸入模式時(shí),00表示模擬輸入,01表示浮空輸入,也是復(fù)位后的值,10表示上拉/下拉輸入,聯(lián)合設(shè)置輸出數(shù)據(jù)寄存器ODR,區(qū)分上拉和下拉,11為保留;輸出模式時(shí),00表示通用推挽輸出,01表示通用開(kāi)漏輸出,10表示復(fù)用推挽輸出,11表示復(fù)用開(kāi)漏輸出)。例如,當(dāng)設(shè)置GPIOA5為通用推挽輸出模式時(shí),GPIOA的端口配置低寄存器的內(nèi)容可以設(shè)置為0x4424 4444。

      端口配置高寄存器(GPIOX_CRH)用于設(shè)置各組GPIO高8位端口的工作模式,同GPIOX_CRL設(shè)置一樣,不再贅述。輸入數(shù)據(jù)寄存器(GPIOX_IDR),只讀屬性,高16位保留,16位形式讀出,讀出的值為對(duì)應(yīng)I/O端口的狀態(tài)。輸出數(shù)據(jù)寄存器(GPIOX_ODR),讀/寫(xiě)屬性,高 16 位保留,16 位形式讀/寫(xiě),可以對(duì)各位清零或置1,那么對(duì)應(yīng)的I/O端口便可以輸出高電平或低電平。端口位設(shè)置/清除寄存器、端口位清除寄存器是用于為輸出數(shù)據(jù)寄存器ODR的對(duì)應(yīng)位清零或置1,不再贅述。端口配置鎖定寄存器用來(lái)鎖定端口位的配置,當(dāng)對(duì)應(yīng)的端口位鎖定后,在下次系統(tǒng)復(fù)位之前不能再更改端口位的配置。

      2.2 AFIO寄存器的設(shè)置

      具有復(fù)用功能的I/O端口,其復(fù)用功能需要重新配置。例如,配置某個(gè)I/O端口為ADC的通道,這個(gè)I/O端口不能再作為GPIO使用,這個(gè)過(guò)程叫做復(fù)用重映射。復(fù)用重映射的過(guò)程是設(shè)置重映射和調(diào)試I/O配置寄存器(AFIO_MAPR),寄存器的各設(shè)置位如圖3所示。

      3 輸入/輸出端口的應(yīng)用舉例

      利用輸入/輸出端口可實(shí)現(xiàn)一些信號(hào)控制,例如,STM32外接了按鍵電路和LED指示燈電路,控制要求如下:當(dāng)按下S1按鍵時(shí),讓LED1和LED3燈閃爍,按下S2按鍵時(shí)LED1和LED3燈關(guān)閉;當(dāng)按下S3按鍵時(shí),讓LED2和LED4燈閃爍,按下S4按鍵時(shí)LED2和LED4燈關(guān)閉。按鍵電路如圖4所示,LED指示燈電路如圖5所示。

      圖4 LED指示燈電路

      圖5:按鍵電路

      圖4中的4個(gè)LED為共陽(yáng)極接法,另一端分別接了I/O端口B組的PB5口、E組的PE5口、A組的PA5和PA6,當(dāng)這些端口輸出低電平時(shí),對(duì)應(yīng)的LED指示燈亮,反之LED指示燈不亮。根據(jù)外接指示燈電路分析,這4個(gè)I/O端口的工作模式應(yīng)設(shè)置為通用推挽輸出。

      圖5中的4個(gè)按鍵開(kāi)關(guān)分別接了I/O端口A組的PA0口和 E 組的 PE2、PE3、PE4口,其中 S1、S2、S3 是低電平信號(hào)有效,無(wú)信號(hào)時(shí)為高電平,而S4是高電平信號(hào)有效,無(wú)信號(hào)時(shí)為低電平。根據(jù)外接按鍵電路分析,這4個(gè)I/O端口的工作模式應(yīng)設(shè)置為浮空輸入。

      LED指示燈對(duì)應(yīng)I/O端口的設(shè)置(初始化)如下:

      4個(gè)按鍵對(duì)應(yīng)I/O端口的設(shè)置(初始化)如下:

      以上代碼中RCC、GPIOA、GPIOB、GPIOE被定義為結(jié)構(gòu)體類型指針,對(duì)它們的各寄存器地址進(jìn)行了描述,并且對(duì)相應(yīng)的寄存器進(jìn)行了設(shè)置,按照要求實(shí)現(xiàn)了浮空輸入和通用推挽輸出的設(shè)置。

      4 小結(jié)

      對(duì)于STM32的輸入/輸出端口設(shè)置,應(yīng)先了解I/O端口的電路結(jié)構(gòu)和工作模式,之后按使用要求對(duì)GPIO和AFIO寄存器進(jìn)行合理配置,通過(guò)I/O端口使用的例子進(jìn)一步掌握輸入/輸出端口的使用。

      猜你喜歡
      浮空低電平高電平
      數(shù)字電路中“邏輯非”的用法辨析
      空中“大白鯨”——浮空艇
      一種基于FPGA的PWM防錯(cuò)輸出控制電路
      鐵道車輛高/低電平信號(hào)智能發(fā)生器設(shè)計(jì)
      TS-03C全固態(tài)PDM中波發(fā)射機(jī)開(kāi)關(guān)機(jī)控制電路原理及故障分析
      科技傳播(2019年15期)2019-08-22 08:07:44
      基于單片機(jī)的全方位智能浮空廣告機(jī)
      電子制作(2019年9期)2019-05-30 09:41:52
      2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
      DM 50KW中波廣播發(fā)射機(jī)欠推動(dòng)故障分析
      PDM 1kW中波廣播發(fā)射機(jī)保護(hù)電路分析
      工業(yè)設(shè)計(jì)(2016年11期)2016-04-16 02:44:38
      东乌珠穆沁旗| 慈利县| 屯昌县| 定安县| 泰顺县| 长子县| 富川| 恭城| 宁安市| 盐山县| 云南省| 潞西市| 三明市| 辛集市| 威远县| 肇东市| 永平县| 泽库县| 华坪县| 新竹市| 方城县| 桐柏县| 称多县| 蕲春县| 泗水县| 黑山县| 米易县| 昭苏县| 新昌县| 东安县| 大洼县| 沂源县| 光泽县| 鹤峰县| 永和县| 东丽区| 鸡西市| 铁力市| 通化县| 蓬安县| 塔河县|