亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

        0 引言

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        GPIO是常規(guī)輸入/輸出端口,STM32F103ZET6有7組16位的GPIO,通過對GPIO寄存器編程,設(shè)置每個端口的工作模式。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)識的是分組號。例如,GBIOB_CRL是B組的GPIO端口配置低寄存器,GPIOC_CRL是C組GPIO的端口配置低寄存器。

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

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

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

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

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

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

        圖4 LED指示燈電路

        圖5:按鍵電路

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

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

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

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

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

        4 小結(jié)

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

        猜你喜歡
        浮空低電平高電平
        數(shù)字電路中“邏輯非”的用法辨析
        空中“大白鯨”——浮空艇
        一種基于FPGA的PWM防錯輸出控制電路
        鐵道車輛高/低電平信號智能發(fā)生器設(shè)計
        TS-03C全固態(tài)PDM中波發(fā)射機(jī)開關(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ī)欠推動故障分析
        PDM 1kW中波廣播發(fā)射機(jī)保護(hù)電路分析
        工業(yè)設(shè)計(2016年11期)2016-04-16 02:44:38
        午夜少妇高潮在线观看| 日本丰满人妻xxxxxhd| 精品久久久久久久久午夜福利| 国产强伦姧在线观看| 尤物蜜桃视频一区二区三区| 一区二区三区中文字幕脱狱者 | 福利视频在线一区二区三区| 久久久久免费精品国产| 永久免费看啪啪网址入口| 国产精品香蕉在线观看| 日韩精品欧美激情国产一区| 少妇被粗大的猛进69视频| 老子影院午夜伦不卡| 狠狠色噜噜狠狠狠狠米奇777| 日本成人一区二区三区| 日日噜噜夜夜久久密挑| 午夜秒播久久精品麻豆| 性激烈的欧美三级视频| 国产欧美日韩在线观看一区二区三区| 亚洲色图在线视频免费观看| 亚洲精品中文字幕导航| 国产精品免费_区二区三区观看 | 青草福利在线| 最新亚洲av日韩av二区一区| 国产偷国产偷亚洲综合av| 成年免费a级毛片免费看无码| 人妻丰满熟妇av无码区免| 欧美二区视频| 一区二区三区精品婷婷| 成人午夜高潮a∨猛片| 日本高清色倩视频在线观看| 欧美破处在线观看| av天堂免费在线播放| 精品少妇无码av无码专区| 五月天国产精品| 亚洲国产综合精品中文| 亚洲av永久无码精品古装片| 亚洲碰碰人人av熟女天堂| 国产亚洲精品综合99久久| 电驱蚊液可以插一晚上吗| 欧美日韩一区二区综合|