在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Alientek SMT32開(kāi)發(fā)板 跑馬燈實(shí)驗(yàn)

            Alientek SMT32開(kāi)發(fā)板 跑馬燈實(shí)驗(yàn)

            作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
            通過(guò)本節(jié)的學(xué)習(xí),你將了解到STM32的IO口作為輸出使用的方法。本節(jié)分為如下幾個(gè)小節(jié):

            3.1.1 STM32 IO口簡(jiǎn)介

            本文引用地址:http://www.biyoush.com/article/201611/321133.htm

            3.1.2硬件設(shè)計(jì)

            3.1.3軟件設(shè)計(jì)

            3.1.4仿真與下載

            3.1.1STM32 IO簡(jiǎn)介

            作為所有開(kāi)發(fā)板的經(jīng)典入門實(shí)驗(yàn),莫過(guò)于跑馬燈了。ALIENTEKMiniSTM32開(kāi)發(fā)板板載了2個(gè)LED,DS0和DS1,本實(shí)驗(yàn)將通過(guò)教你如何控制這兩個(gè)燈實(shí)現(xiàn)交替閃爍的類跑馬燈效果。

            該實(shí)驗(yàn)的關(guān)鍵在于如何控制STM32的IO口輸出。了解了STM32的IO口如何輸出的,就可以實(shí)現(xiàn)跑馬燈了。通過(guò)這一節(jié)的學(xué)習(xí),你將初步掌握STM32基本IO口的使用,而這是邁向STM32的第一步。

            STM32的IO口可以由軟件配置成8種模式:

            1、輸入浮空

            2、輸入上拉

            3、輸入下拉

            4、模擬輸入

            5、開(kāi)漏輸出

            6、推挽輸出

            7、推挽式復(fù)用功能

            8、開(kāi)漏復(fù)用功能

            每個(gè)IO口可以自由編程,單IO口寄存器必須要按32位字被訪問(wèn)。STM32的很多IO口都是5V兼容的,這些IO口在與5V電平的外設(shè)連接的時(shí)候很有優(yōu)勢(shì),具體哪些IO口是5V兼容的,可以從該芯片的數(shù)據(jù)手冊(cè)管腳描述章節(jié)查到(I/OLevel標(biāo)FT的就是5V電平兼容的)。

            STM32的每個(gè)IO端口都有7個(gè)寄存器來(lái)控制。他們分別是:配置模式的2個(gè)32位的端口配置寄存器CRL和CRH;2個(gè)32位的數(shù)據(jù)寄存器IDR和ODR;1個(gè)32位的置位/復(fù)位寄存器BSRR;一個(gè)16位的復(fù)位寄存器BRR;1個(gè)32位的鎖存寄存器LCKR;這里我們僅介紹常用的幾個(gè)寄存器,我們常用的IO端口寄存器只有4個(gè):CRL、CRH、IDR、ODR。

            CRL和CRH控制著每個(gè)IO口的模式及輸出速率。

            STM32的IO口位配置表如表3.1.1.1所示:


            表3.1.1.1STM32的IO口位配置表

            STM32輸出模式配置如表3.1.1.2所示:

            表3.1.1.2STM32輸出模式配置表

            接下來(lái)我們看看端口低配置寄存器CRL的描述,如下圖所示:


            圖3.1.1.1端口低配置寄存器CRL各位描述

            該寄存器的復(fù)位值為0X4444 4444,從上圖可以看到,復(fù)位值其實(shí)就是配置端口為浮空輸入模式。從上圖還可以得出:STM32的CRL控制著每個(gè)IO端口(A~G)的低8位的模式。每個(gè)IO端口的位占用CRL的4個(gè)位,高兩位為CNF,低兩位為MODE。這里我們可以記住幾個(gè)常用的配置,比如0X4表示模擬輸入模式(ADC用)、0X3表示推挽輸出模式(做輸出口用,50M速率)、0X8表示上/下拉輸入模式(做輸入口用)、0XB表示復(fù)用輸出(使用IO口的第二功能,50M速率)。

            CRH的作用和CRL完全一樣,只是CRL控制的是低8位輸出口,而CRH控制的是高8位輸出口。這里我們對(duì)CRH就不做詳細(xì)介紹了。

            給個(gè)實(shí)例,比如我們要設(shè)置PORTC的11位為上拉輸入,12位為推挽輸出。代碼如下:

            GPIOC->CRH&=0XFFF00FFF;//清掉這2個(gè)位原來(lái)的設(shè)置,同時(shí)也不影響其他位的設(shè)置

            GPIOC->CRH|=0X00038000;//PC11輸入,PC12輸出

            GPIOC->ODR=1<<11;//PC11上拉

            通過(guò)這3句話的配置,我們就設(shè)置了PC11為上拉輸入,PC12為推挽輸出。

            IDR是一個(gè)端口輸入數(shù)據(jù)寄存器,只用了低16位。該寄存器為只讀寄存器,并且只能以16位的形式讀出。該寄存器各位的描述如下圖所示:


            圖3.1.1.2端口輸入數(shù)據(jù)寄存器IDR各位描述

            要想知道某個(gè)IO口的狀態(tài),你只要讀這個(gè)寄存器,再看某個(gè)位的狀態(tài)就可以了。使用起來(lái)是比較簡(jiǎn)單的。

            ODR是一個(gè)端口輸出數(shù)據(jù)寄存器,也只用了低16位。該寄存器雖然為可讀寫(xiě),但是從該寄存器讀出來(lái)的數(shù)據(jù)都是0。只有寫(xiě)是有效的。其作用就是控制端口的輸出。該寄存器的各位描述如下圖所示:


            圖3.1.1.3端口輸出數(shù)據(jù)寄存器ODR各位描述

            了解了這幾個(gè)寄存器,我們就可以開(kāi)始跑馬燈實(shí)驗(yàn)的真正設(shè)計(jì)了。關(guān)于IO口更詳細(xì)的介紹,請(qǐng)參考《STM32參考手冊(cè)》第69頁(yè)7.1節(jié)。

            在此,我們可以總結(jié)一下,對(duì)于學(xué)過(guò)AVR的人來(lái)說(shuō),我們都知道AVR的IO口由3個(gè)寄存器控制:DDR、PORT、PIN。這里我們可以拿STM32的IO控制寄存器和AVR的來(lái)個(gè)類比:

            1,STM32的CRL和CRH就相當(dāng)于AVR的DDR寄存器,用來(lái)控制IO口的方向,只不過(guò)STM32的CRL和CRH功能更強(qiáng)大一點(diǎn)罷了。

            2,STM32的ODR就相當(dāng)于AVR的PORT,都是用來(lái)控制IO口的輸出電平或者上下拉電阻的。

            3,STM32的IDR就相當(dāng)于AVR的PIN,都是用來(lái)存儲(chǔ)IO口當(dāng)前的輸入狀態(tài)(高低電平)的。

            除此之外,STM32還有BSRR、BRR、LCKR等幾個(gè)寄存器用于控制IO口,這點(diǎn)是AVR所沒(méi)有的。

            3.1.2硬件設(shè)計(jì)

            該實(shí)驗(yàn)的硬件電路在ALIENTEM Mini STM32開(kāi)發(fā)板上已經(jīng)連接好了。DS0接PA8,DS1接PD2。所以在硬件上不需要?jiǎng)尤魏螙|西。其連接原理圖如下:


            圖3.1.2.1LED與STM32連接原理圖

            3.1.3軟件設(shè)計(jì)

            首先,找到之前新建的TEST工程,在該文件夾下面新建一個(gè)HARDWARE的文件夾,用來(lái)存儲(chǔ)以后與硬件相關(guān)的代碼。然后在HARDWARE文件夾下新建一個(gè)LED文件夾,用來(lái)存放與LED相關(guān)的代碼。


            上一頁(yè) 1 2 下一頁(yè)

            關(guān)鍵詞: AlientekSMT32跑馬燈實(shí)

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉