国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

帶你走進(jìn)STM32的世界

發(fā)布時(shí)間:2015-8-9 14:28    發(fā)布者:信盈達(dá)1
帶你走進(jìn)STM32的世界
更多學(xué)習(xí)資料分享群,歡迎大家加入471417140
STM32F10xx時(shí)鐘系統(tǒng)框圖:時(shí)鐘是整個(gè)系統(tǒng)的脈搏

下圖是STM32F10xx時(shí)鐘系統(tǒng)的框圖,通過(guò)這個(gè)圖可以一目了然地看到各個(gè)部件時(shí)鐘產(chǎn)生的路徑,還可以很方便地計(jì)算出各部分的時(shí)鐘頻率。
STM32的四個(gè)時(shí)鐘源(HSI、HSE、LSI和LSE)也在圖中標(biāo)出;圖中間的時(shí)鐘監(jiān)視系統(tǒng)(CSS)是在很多ST7的單片機(jī)中就出現(xiàn)的安全設(shè)置。特別注意:圖的右邊,輸出定時(shí)器時(shí)鐘之前有一個(gè)乘法器,它的操作不是由程序控制的,是由硬件根據(jù)前一級(jí)的APB預(yù)分頻器的輸出自動(dòng)選擇,當(dāng)APB預(yù)分頻器的分頻因子為1時(shí),這個(gè)乘法器無(wú)作用;當(dāng)APB預(yù)分頻器的分頻因子大于1時(shí),這個(gè)乘法器做倍頻操作,即將APB預(yù)分頻器輸出的頻率乘2,這樣可以保證定時(shí)器可以得到最高的72MHz時(shí)鐘脈沖。

STM32上很多管腳功能可以重新映射

STM32上有很多I/O口,也有很多的內(nèi)置外設(shè),為了節(jié)省引出管腳,這些內(nèi)置外設(shè)都是與I/O口共用引出管腳,ST稱(chēng)其為I/O管腳的復(fù)用功能,相信這點(diǎn)大家都很清楚,因?yàn)榛旧纤袉纹瑱C(jī)都是這么做的。但不知有多少人知道,很多復(fù)用功能的引出腳可以通過(guò)重映射,從不同的I/O管腳引出,即復(fù)用功能的引出腳位是可通過(guò)程序改變的。
這一功能的直接好處是,PCB電路板的設(shè)計(jì)人員可以在需要的情況下,不必把某些信號(hào)在板上繞一大圈完成聯(lián)接,方便了PCB的設(shè)計(jì)同時(shí)潛在地減少了信號(hào)的交叉干擾。復(fù)用功能引出腳的重映射功能所帶來(lái)的潛在好處是,在你不需要同時(shí)使用多個(gè)復(fù)用功能時(shí),虛擬地增加復(fù)用功能的數(shù)量。例如,STM32上最多有3個(gè)USART接口,當(dāng)你需要更多UART接口而又不需要同時(shí)使用它們時(shí),可以通過(guò)這個(gè)重映射功能實(shí)現(xiàn)更多的UART接口。

下述復(fù)用功能的引出腳具有重映射功能:
  - 晶體振蕩器的引腳在不接晶體時(shí),可以作為普通I/O口
  - CAN模塊
  - JTAG調(diào)試接口
  - 大部分定時(shí)器的引出接口
  - 大部分USART的引出接口
  - I2C1的引出接口
  - SPI1的引出接口
詳細(xì)內(nèi)容請(qǐng)看STM32的技術(shù)參考手冊(cè)。

請(qǐng)務(wù)必記住:如果使用了任意一種重映射功能,在初始化和使用之前,一定要打開(kāi)AFIO時(shí)鐘。
下圖示出了部分復(fù)用功能引出腳的重映射結(jié)果:

【演示實(shí)例】一個(gè)在EK-STM32F板子上的RTC作為calender的例子

硬件連接:串口線(xiàn)連至板子的UART-0端口。超級(jí)終端設(shè)置為:
Bits Per seconds: 115200
Data bits: 8
Parity: none
Stop bits: 1
Flow control Hardware

板子第一次跑這個(gè)程序時(shí),進(jìn)入時(shí)間配置。
根據(jù)超級(jí)終端上的提示,一次輸入年,月,日,時(shí),分,秒
(1月就輸入01,10月直接輸入10;同理3號(hào)就輸入03)
隨后當(dāng)前的時(shí)間就顯示到了超級(jí)終端上,并且每秒刷新。

沒(méi)有斷電的情況下再跑這個(gè)程序,由于看到bake up區(qū)域有被設(shè)置過(guò)時(shí)間的標(biāo)志,不再進(jìn)入時(shí)間設(shè)置階段,而是直接到時(shí)間顯示間斷,在超級(jí)終端上,每秒刷新。

當(dāng)然如果在EK-STM32F板子上將Vbat和電池相接,具體就是:將紅色的電源跳線(xiàn)帽中的從下往上數(shù)的第5個(gè)取下,從原來(lái)的水平放置改成豎直放置(和上面的VBAT相連)。就算斷電,只要再上電,看到back up區(qū)域中的記號(hào),一樣直接進(jìn)入時(shí)間顯示。因?yàn)閿嚯姾螅琤ack up區(qū)域由電池供電,其中記錄的記號(hào)不會(huì)由于系統(tǒng)掉電而消失。


【演示實(shí)例】使用EK-STM32F板測(cè)量STM32的功耗

這個(gè)例子演示了如何使用EK-STM32F開(kāi)發(fā)評(píng)估板測(cè)量STM32F103VBT6在各種模式下的功耗。例子中演示了如何進(jìn)入STM32的各種模式(RUN、SLEEP、STOP、STANDBY),使用這個(gè)例子您可以通過(guò)EK-STM32F板上的紅色跳線(xiàn)(VDD、VREF+和VDDA)測(cè)量功耗。

本實(shí)例首先通過(guò)UART與Windows的Hyperterminal通信,用戶(hù)可以選擇需要進(jìn)入的功耗模式,然后這個(gè)例程把用戶(hù)選好的配置存到后備寄存器,再次復(fù)位后STM32將進(jìn)入之前選定的模式。

附件包中包含了一個(gè)說(shuō)明文件,詳細(xì)說(shuō)明了如何設(shè)置板上的跳線(xiàn)和操作的過(guò)程。

STM32 GPIO的十大優(yōu)越功能綜述
前幾天Hotpower邀請(qǐng)大家討論一下GPIO的功能、性能和優(yōu)缺點(diǎn)(STM32的GPIO很強(qiáng)大~~~),等了幾天沒(méi)見(jiàn)太多人發(fā)言,但綜合來(lái)看提到了3點(diǎn):1)真雙向IO,2)速度快,3)寄存器功能重復(fù)。關(guān)于第3點(diǎn)有說(shuō)好,有說(shuō)多余的,見(jiàn)仁見(jiàn)智。

下面我就在做個(gè)拋磚引玉,根據(jù)ST手冊(cè)上的內(nèi)容,簡(jiǎn)單地綜述一下GPIO的功能:
一、共有8種模式,可以通過(guò)編程選擇:
  1. 浮空輸入
  2. 帶上拉輸入
  3. 帶下拉輸入
  4. 模擬輸入
  5. 開(kāi)漏輸出——(此模式可實(shí)現(xiàn)hotpower說(shuō)的真雙向IO)
  6. 推挽輸出
  7. 復(fù)用功能的推挽輸出
  8. 復(fù)用功能的開(kāi)漏輸出
模式7和模式8需根據(jù)具體的復(fù)用功能決定。

二、專(zhuān)門(mén)的寄存器(GPIOx_BSRR和GPIOx_BRR)實(shí)現(xiàn)對(duì)GPIO口的原子操作,即回避了設(shè)置或清除I/O端口時(shí)的“讀-修改-寫(xiě)”操作,使得設(shè)置或清除I/O端口的操作不會(huì)被中斷處理打斷而造成誤動(dòng)作。

三、每個(gè)GPIO口都可以作為外部中斷的輸入,便于系統(tǒng)靈活設(shè)計(jì)。

四、I/O口的輸出模式下,有3種輸出速度可選(2MHz、10MHz和50MHz),這有利于噪聲控制。

五、所有I/O口兼容CMOS和TTL,多數(shù)I/O口兼容5V電平。

六、大電流驅(qū)動(dòng)能力:GPIO口在高低電平分別為0.4V和VDD-0.4V時(shí),可以提供或吸收8mA電流;如果把輸入輸出電平分別放寬到1.3V和VDD-1.3V時(shí),可以提供或吸收20mA電流。

七、具有獨(dú)立的喚醒I/O口。

八、很多I/O口的復(fù)用功能可以重新映射,見(jiàn):你知道嗎?STM32上很多管腳功能可以重新映射。

九、GPIO口的配置具有上鎖功能,當(dāng)配置好GPIO口后,可以通過(guò)程序鎖住配置組合,直到下次芯片復(fù)位才能解鎖。此功能非常有利于在程序跑飛的情況下保護(hù)系統(tǒng)中其他的設(shè)備,不會(huì)因?yàn)槟承㊣/O口的配置被改變而損壞——如一個(gè)輸入口變成輸出口并輸出電流。

十、輸出模式下輸入寄存器依然有效,在開(kāi)漏配置模式下實(shí)現(xiàn)真正的雙向I/O功能。

STM32內(nèi)置參照電壓的使用
每個(gè)STM32芯片都有一個(gè)內(nèi)部的參照電壓,相當(dāng)于一個(gè)標(biāo)準(zhǔn)電壓測(cè)量點(diǎn),在芯片內(nèi)部連接到ADC1的通道17。

根據(jù)數(shù)據(jù)手冊(cè)中的數(shù)據(jù),這個(gè)參照電壓的典型值是1.20V,最小值是1.16V,最大值是1.24V。這個(gè)電壓基本不隨外部供電電壓的變化而變化。

不少人把這個(gè)參照電壓與ADC的參考電壓混淆。ADC的參考電壓都是通過(guò)Vref+提供的。100腳以上的型號(hào),Vref+引到了片外,引腳名稱(chēng)為Vref+;64腳和小于64腳的型號(hào),Vref+在芯片內(nèi)部與VCC信號(hào)線(xiàn)相連,沒(méi)有引到片外,這樣AD的參考電壓就是VCC上的電壓。

在ADC的外部參考電壓波動(dòng),或因?yàn)閂ref+在芯片內(nèi)部與VCC相連而VCC變化的情況下,如果對(duì)于ADC測(cè)量的準(zhǔn)確性要求不高時(shí),可以使用這個(gè)內(nèi)部參照電壓得到ADC測(cè)量的電壓值。

具體方法是在測(cè)量某個(gè)通道的電壓值之前,先讀出參照電壓的ADC測(cè)量數(shù)值,記為ADrefint;再讀出要測(cè)量通道的ADC轉(zhuǎn)換數(shù)值,記為ADchx;則要測(cè)量的電壓為:

Vchx = Vrefint * (ADchx/ADrefint)

其中Vrefint為參照電壓=1.20V。

上述方法在使用內(nèi)置溫度傳感器對(duì)因?yàn)闇囟茸兓瑢?duì)系統(tǒng)參數(shù)進(jìn)行補(bǔ)償時(shí)就十分有效。



STM32的ADC輸入通道配置

STM32中最多有3個(gè)ADC模塊,每個(gè)模塊對(duì)應(yīng)的通道不完全重疊。

下圖是STM32F103CDE數(shù)據(jù)手冊(cè)中的總框圖的左下角,圖中可以看出有8個(gè)外部ADC管腳分別接到了3個(gè)ADC模塊,有8個(gè)外部ADC管腳只分別接到了2個(gè)ADC模塊,還有5個(gè)外部ADC管腳只接到了ADC3模塊,這樣總共是21個(gè)通道。


下表是這些ADC管腳與每個(gè)ADC模塊的對(duì)應(yīng)關(guān)系,表中可以看出ADC1還有2個(gè)內(nèi)部通道,分別接到內(nèi)部的溫度傳感器和內(nèi)部的參照電壓:

關(guān)于STM32 ADC速度的問(wèn)題

STM32F103xx系列稱(chēng)為增強(qiáng)型產(chǎn)品,增強(qiáng)型產(chǎn)品的最高時(shí)鐘頻率可以達(dá)到72MHz。增強(qiáng)型產(chǎn)品的英文名稱(chēng)為Performance Line。
STM32F101xx系列稱(chēng)為基本型產(chǎn)品,基本型產(chǎn)品的最高時(shí)鐘頻率可以達(dá)到36MHz。基本型產(chǎn)品的英文名稱(chēng)為Access Line。

根據(jù)設(shè)計(jì),當(dāng)ADC模塊的頻率為14MHz時(shí),可以達(dá)到ADC的最快采樣轉(zhuǎn)換速度。

要得到14MHz的ADC頻率,就要求SYSCLK的頻率是14MHz的倍數(shù),即14MHz、28MHz、42MHz、56MHz、70MHz、84MHz等;對(duì)于基本型產(chǎn)品14MHz和28MHz處于它的最大允許頻率范圍內(nèi);對(duì)于增強(qiáng)型產(chǎn)品,14MHz、28MHz、42MHz、56MHz和70MHz幾種頻率都在它的最大允許頻率范圍內(nèi),但因?yàn)锳DC預(yù)分頻器的分頻系數(shù)只有2、4、6、8這幾個(gè),使用70MHz不能得到最大的14MHz,所以要想得到最快的ADC轉(zhuǎn)換速度,在增強(qiáng)型產(chǎn)品上能用的最快SYSCLK頻率是56MHz。

ADC的速度由2個(gè)參數(shù)決定,它是采樣時(shí)間和轉(zhuǎn)換時(shí)間之和:

  即:TCONV = 采樣時(shí)間 + 12.5個(gè)ADC時(shí)鐘周期

在STM32中,ADC的采樣時(shí)間是由用戶(hù)程序在一組預(yù)定的數(shù)值中選擇,按照ADC的時(shí)鐘周期計(jì)算,共有8種選擇:
    1.5、7.5、13.5、28.5、41.5、55.5、71.5和239.5

按最小的1.5個(gè)時(shí)鐘周期的采樣時(shí)間計(jì)算,最短的TCONV等于14個(gè)時(shí)鐘周期,如果ADC的時(shí)鐘頻率是14MHz,則ADC的速度為每秒100萬(wàn)次。

注意:當(dāng)ADC的時(shí)鐘頻率超過(guò)14MHz時(shí),ADC的精度將會(huì)顯著下降。

STM32內(nèi)置CRC模塊的使用

所有的STM32芯片都內(nèi)置了一個(gè)硬件的CRC計(jì)算模塊,可以很方便地應(yīng)用到需要進(jìn)行通信的程序中,這個(gè)CRC計(jì)算模塊使用常見(jiàn)的、在以太網(wǎng)中使用的計(jì)算多項(xiàng)式:
  X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1
寫(xiě)成16進(jìn)制就是:0x04C11DB7

使用這個(gè)內(nèi)置CRC模塊的方法非常簡(jiǎn)單,既首先復(fù)位CRC模塊(設(shè)置CRC_CR=0x01),這個(gè)操作把CRC計(jì)算的余數(shù)初始化為0xFFFFFFFF;然后把要計(jì)算的數(shù)據(jù)按每32位分割為一組數(shù)據(jù)字,并逐個(gè)地把這組數(shù)據(jù)字寫(xiě)入CRC_DR寄存器(既下圖中的綠色框),寫(xiě)完所有的數(shù)據(jù)字后,就可以從CRC_DR寄存器(既下圖中的蘭色框)讀出計(jì)算的結(jié)果。

注意:雖然讀寫(xiě)操作都是針對(duì)CRC_DR寄存器,但實(shí)際上是訪(fǎng)問(wèn)的不同物理寄存器。

有幾點(diǎn)需要說(shuō)明:

1)上述算法中變量CRC,在每次循環(huán)結(jié)束包含了計(jì)算的余數(shù),它始終是向左移位(既從最低位向最高位移動(dòng)),溢出的數(shù)據(jù)位被丟棄。

2)輸入的數(shù)據(jù)始終是以32位為單位,如果原始數(shù)據(jù)少于32位,需要在低位補(bǔ)0,當(dāng)然也可以高位補(bǔ)0。

3)假定輸入的DWORD數(shù)組中每個(gè)分量是按小端存儲(chǔ)。

4)輸入數(shù)據(jù)是按照最高位最先計(jì)算,最低位最后計(jì)算的順序進(jìn)行。

例如:
如果輸入0x44434241,內(nèi)存中按字節(jié)存放的順序是:0x41, 0x42, 0x43, 0x44。計(jì)算的結(jié)果是:0xCF534AE1
如果輸入0x41424344,內(nèi)存中按字節(jié)存放的順序是:0x44, 0x43, 0x42, 0x41。計(jì)算的結(jié)果是:0xABCF9A63

STM32中定時(shí)器的時(shí)鐘源
STM32中有多達(dá)8個(gè)定時(shí)器,其中TIM1和TIM8是能夠產(chǎn)生三對(duì)PWM互補(bǔ)輸出的高級(jí)定時(shí)器,常用于三相電機(jī)的驅(qū)動(dòng),它們的時(shí)鐘由APB2的輸出產(chǎn)生。其它6個(gè)為普通定時(shí)器,時(shí)鐘由APB1的輸出產(chǎn)生。

下圖是STM32參考手冊(cè)上時(shí)鐘分配圖中,有關(guān)定時(shí)器時(shí)鐘部分的截圖:


從圖中可以看出,定時(shí)器的時(shí)鐘不是直接來(lái)自APB1或APB2,而是來(lái)自于輸入為APB1或APB2的一個(gè)倍頻器,圖中的藍(lán)色部分。

下面以定時(shí)器2~7的時(shí)鐘說(shuō)明這個(gè)倍頻器的作用:當(dāng)APB1的預(yù)分頻系數(shù)為1時(shí),這個(gè)倍頻器不起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率;當(dāng)APB1的預(yù)分頻系數(shù)為其它數(shù)值(即預(yù)分頻系數(shù)為2、4、8或16)時(shí),這個(gè)倍頻器起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率兩倍。

假定AHB=36MHz,因?yàn)锳PB1允許的最大頻率為36MHz,所以APB1的預(yù)分頻系數(shù)可以取任意數(shù)值;當(dāng)預(yù)分頻系數(shù)=1時(shí),APB1=36MHz,TIM2~7的時(shí)鐘頻率=36MHz(倍頻器不起作用);當(dāng)預(yù)分頻系數(shù)=2時(shí),APB1=18MHz,在倍頻器的作用下,TIM2~7的時(shí)鐘頻率=36MHz。

有人會(huì)問(wèn),既然需要TIM2~7的時(shí)鐘頻率=36MHz,為什么不直接取APB1的預(yù)分頻系數(shù)=1?答案是:APB1不但要為T(mén)IM2~7提供時(shí)鐘,而且還要為其它外設(shè)提供時(shí)鐘;設(shè)置這個(gè)倍頻器可以在保證其它外設(shè)使用較低時(shí)鐘頻率時(shí),TIM2~7仍能得到較高的時(shí)鐘頻率。

再舉個(gè)例子:當(dāng)AHB=72MHz時(shí),APB1的預(yù)分頻系數(shù)必須大于2,因?yàn)锳PB1的最大頻率只能為36MHz。如果APB1的預(yù)分頻系數(shù)=2,則因?yàn)檫@個(gè)倍頻器,TIM2~7仍然能夠得到72MHz的時(shí)鐘頻率。能夠使用更高的時(shí)鐘頻率,無(wú)疑提高了定時(shí)器的分辨率,這也正是設(shè)計(jì)這個(gè)倍頻器的初衷。

STM32中外部中斷與外部事件

這張圖是一條外部中斷線(xiàn)或外部事件線(xiàn)的示意圖,圖中信號(hào)線(xiàn)上劃有一條斜線(xiàn),旁邊標(biāo)志19字樣的注釋?zhuān)硎具@樣的線(xiàn)路共有19套。

圖中的藍(lán)色虛線(xiàn)箭頭,標(biāo)出了外部中斷信號(hào)的傳輸路徑,首先外部信號(hào)從編號(hào)1的芯片管腳進(jìn)入,經(jīng)過(guò)編號(hào)2的邊沿檢測(cè)電路,通過(guò)編號(hào)3的或門(mén)進(jìn)入中斷“掛起請(qǐng)求寄存器”,最后經(jīng)過(guò)編號(hào)4的與門(mén)輸出到NVIC中斷控制器;在這個(gè)通道上有4個(gè)控制選項(xiàng),外部的信號(hào)首先經(jīng)過(guò)邊沿檢測(cè)電路,這個(gè)邊沿檢測(cè)電路受上升沿或下降沿選擇寄存器控制,用戶(hù)可以使用這兩個(gè)寄存器控制需要哪一個(gè)邊沿產(chǎn)生中斷,因?yàn)檫x擇上升沿或下降沿是分別受2個(gè)平行的寄存器控制,所以用戶(hù)可以同時(shí)選擇上升沿或下降沿,而如果只有一個(gè)寄存器控制,那么只能選擇一個(gè)邊沿了。

接下來(lái)是編號(hào)3的或門(mén),這個(gè)或門(mén)的另一個(gè)輸入是“軟件中斷/事件寄存器”,從這里可以看出,軟件可以?xún)?yōu)先于外部信號(hào)請(qǐng)求一個(gè)中斷或事件,既當(dāng)“軟件中斷/事件寄存器”的對(duì)應(yīng)位為“1”時(shí),不管外部信號(hào)如何,編號(hào)3的或門(mén)都會(huì)輸出有效信號(hào)。

一個(gè)中斷或事件請(qǐng)求信號(hào)經(jīng)過(guò)編號(hào)3的或門(mén)后,進(jìn)入掛起請(qǐng)求寄存器,到此之前,中斷和事件的信號(hào)傳輸通路都是一致的,也就是說(shuō),掛起請(qǐng)求寄存器中記錄了外部信號(hào)的電平變化。

外部請(qǐng)求信號(hào)最后經(jīng)過(guò)編號(hào)4的與門(mén),向NVIC中斷控制器發(fā)出一個(gè)中斷請(qǐng)求,如果中斷屏蔽寄存器的對(duì)應(yīng)位為“0”,則該請(qǐng)求信號(hào)不能傳輸?shù)脚c門(mén)的另一端,實(shí)現(xiàn)了中斷的屏蔽。

明白了外部中斷的請(qǐng)求機(jī)制,就很容易理解事件的請(qǐng)求機(jī)制了。圖中紅色虛線(xiàn)箭頭,標(biāo)出了外部事件信號(hào)的傳輸路徑,外部請(qǐng)求信號(hào)經(jīng)過(guò)編號(hào)3的或門(mén)后,進(jìn)入編號(hào)5的與門(mén),這個(gè)與門(mén)的作用與編號(hào)4的與門(mén)類(lèi)似,用于引入事件屏蔽寄存器的控制;最后脈沖發(fā)生器把一個(gè)跳變的信號(hào)轉(zhuǎn)變?yōu)橐粋(gè)單脈沖,輸出到芯片中的其它功能模塊。

在這張圖上我們也可以知道,從外部激勵(lì)信號(hào)來(lái)看,中斷和事件是沒(méi)有分別的,只是在芯片內(nèi)部分開(kāi),一路信號(hào)會(huì)向CPU產(chǎn)生中斷請(qǐng)求,另一路信號(hào)會(huì)向其它功能模塊發(fā)送脈沖觸發(fā)信號(hào),其它功能模塊如何相應(yīng)這個(gè)觸發(fā)信號(hào),則由對(duì)應(yīng)的模塊自己決定。

在圖上部的APB總線(xiàn)和外設(shè)模塊接口,是每一個(gè)功能模塊都有的部分,CPU通過(guò)這樣的接口訪(fǎng)問(wèn)各個(gè)功能模塊,這里就不再贅述了。

STM32的USART發(fā)送數(shù)據(jù)時(shí)如何使用TXE和TC標(biāo)志

在USART的發(fā)送端有2個(gè)寄存器,一個(gè)是程序可以看到的USART_DR寄存器(下圖中陰影部分的TDR),另一個(gè)是程序看不到的移位寄存器(下圖中陰影部分Transmit Shift Register)。

對(duì)應(yīng)USART數(shù)據(jù)發(fā)送有兩個(gè)標(biāo)志,一個(gè)是TXE=發(fā)送數(shù)據(jù)寄存器空,另一個(gè)是TC=發(fā)送結(jié)束;對(duì)照下圖,當(dāng)TDR中的數(shù)據(jù)傳送到移位寄存器后,TXE被設(shè)置,此時(shí)移位寄存器開(kāi)始向TX信號(hào)線(xiàn)按位傳輸數(shù)據(jù),但因?yàn)門(mén)DR已經(jīng)變空,程序可以把下一個(gè)要發(fā)送的字節(jié)(操作USART_DR)寫(xiě)入TDR中,而不必等到移位寄存器中所有位發(fā)送結(jié)束,所有位發(fā)送結(jié)束時(shí)(送出停止位后)硬件會(huì)設(shè)置TC標(biāo)志。

另一方面,在剛剛初始化好USART還沒(méi)有發(fā)送任何數(shù)據(jù)時(shí),也會(huì)有TXE標(biāo)志,因?yàn)檫@時(shí)發(fā)送數(shù)據(jù)寄存器是空的。

TXEIE和TCIE的意義很簡(jiǎn)單,TXEIE允許在TXE標(biāo)志為'1'時(shí)產(chǎn)生中斷,而TCIE允許在TC標(biāo)志為'1'時(shí)產(chǎn)生中斷。

至于什么時(shí)候使用哪個(gè)標(biāo)志,需要根據(jù)你的需要自己決定。但我認(rèn)為T(mén)XE允許程序有更充裕的時(shí)間填寫(xiě)TDR寄存器,保證發(fā)送的數(shù)據(jù)流不間斷。TC可以讓程序知道發(fā)送結(jié)束的確切時(shí)間,有利于程序控制外部數(shù)據(jù)流的時(shí)序。

STM32設(shè)置了很多非常有用和靈活的控制和狀態(tài)位,只要你很好地掌握了它們的用法,可以讓你的應(yīng)用更加精確和高效。深圳STM32技術(shù)實(shí)訓(xùn)提升QQ754634522

這是STM32技術(shù)參考手冊(cè)中的一頁(yè):


在STM32中如何配置片內(nèi)外設(shè)使用的IO端口

首先,一個(gè)外設(shè)經(jīng)過(guò)配置輸入的時(shí)鐘和初始化后即被激活(開(kāi)啟)。

如果需要使用該外設(shè)的輸入輸出管腳,則需要配置相應(yīng)的GPIO端口;否則該外設(shè)對(duì)應(yīng)的輸入輸出管腳可以做普通GPIO管腳使用。
技術(shù)咨詢(xún)李老師,電話(huà)13544345450,QQ2966383766。

本文地址:http://m.qingdxww.cn/thread-152159-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
信盈達(dá)1 發(fā)表于 2015-8-10 11:38:18
資料共享群471417140
信盈達(dá)1 發(fā)表于 2015-10-4 14:52:05
更多C語(yǔ)言 C++、JAVA、數(shù)電模電、51單片機(jī)、PIC stm32 ARM Linux驅(qū)動(dòng) 嵌入式、安卓系統(tǒng) FPGA、DSP Cortex-M3學(xué)習(xí)

請(qǐng)咨詢(xún)李老師:騰訊QQ2966383766 中國(guó)移動(dòng)全球通18928805217
更多學(xué)習(xí)資料分享群,歡迎大家加入群471417140
廣州、深圳南山、民治、龍崗、西鄉(xiāng)、長(zhǎng)沙、鄭州、南寧同步學(xué)習(xí)中!
yuhuikeji 發(fā)表于 2015-12-18 13:42:37
謝謝分享!!!!!!!!!!!!
唐輝電子92 發(fā)表于 2016-6-15 15:56:02
這個(gè)是廣告吶
chenyixian 發(fā)表于 2018-9-3 19:51:16
介紹基礎(chǔ)。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠(chǎng)商推薦

  • Microchip視頻專(zhuān)區(qū)
  • PIC32CM LS00 Curiosity Pro評(píng)估工具包
  • dsPIC® DSC:攻克各種觸摸傳感挑戰(zhàn)的電容式觸摸解決方案
  • dsPIC® DSC集成電機(jī)驅(qū)動(dòng)器:非常適合在緊湊空間內(nèi)進(jìn)行實(shí)時(shí)控制
  • PIC32CM LS60 Curiosity Pro評(píng)估工具包
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产最新在线一区二区| 日韩亚洲欧美综合| 亚洲美女精品视频| 亚洲色图综合网| 性久久久久久久久久| 亚洲另在线日韩综合色| 日韩影视在线| 青草国产| 亚洲国产精品久久久久久| 亚洲三级黄色| 亚洲娇小性hd| 一级a毛片免费观看| 一级a毛片免费| 天天综合亚洲| 亚洲最大中文字幕| 亚洲69| 日韩国产午夜一区二区三区| 欧洲亚洲一区| 亚洲欧美黄色片| 欧美色成人综合| 午夜性色一区二区三区不卡视频| 亚洲精品午夜国产va久久| 三级成人网| 四虎国产精品永久地址48| 碰碰久久| 色无极亚洲| 丝丝热| 色天天久久| 日韩区欧美区| 一级大片视频| 天天天操| 奇米精品一区二区三区在线观看| 日本在线亚州精品视频在线| 色洛色中文综合网站| 亚洲国产系列久久精品99人人| 欧美高清精品videossex| 青青久久国产| 欧美日韩综合网| 香蕉欧美成人精品a∨在线观看| 日本jizz| 欧美一级片网址|