0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于STM32中UART的一些特性分享

strongerHuang ? 來(lái)源:AI電堂 ? 作者:AI電堂 ? 2021-03-20 11:34 ? 次閱讀

今天給大家分享關(guān)于STM32UART的一些特性,主要針對(duì)較新系列STM32(如:STM32H7、G0、G4等)的UART,可通過(guò)軟件改變Rx和Tx引腳、電平反轉(zhuǎn)、高低反序、介紹超時(shí)等。

1

支持RXD和TXD管腳互換有些時(shí)候,我們?cè)谕饨?a target="_blank">RS232芯片時(shí),可能會(huì)將RXD和TXD兩根線接反。這類低級(jí)錯(cuò)誤,一般是老司機(jī)才會(huì)犯。

如果大家知道USART的TXD和RXD管腳可以互換,那么在連接外設(shè)RS232芯片時(shí),如果發(fā)生錯(cuò)誤,就不必再修改硬件,只需直接在軟件中將RXD和TXD的管腳反轉(zhuǎn)過(guò)來(lái)即可修正錯(cuò)誤。

參考上圖,設(shè)置SWAP位,即可將RXD和TXD管腳互換。

2

支持接收和發(fā)送的電平極性反轉(zhuǎn)第二個(gè)新特性:Tx和Rx電平極性反轉(zhuǎn)。

通常默認(rèn)串口電平是高電平為邏輯1,低電平為邏輯0。而在STM32的USART新特性中是可以將高電平設(shè)置為邏輯0,低電平設(shè)置為邏輯1的。

這一特性,讓我們?cè)谝恍┨厥獾膱?chǎng)景下靈活使用,如:USART外接了反相器時(shí)就可以直接使用。

在數(shù)據(jù)接收發(fā)送寄存器中,數(shù)據(jù)也是可以反轉(zhuǎn)的,原來(lái)的0變?yōu)?,原來(lái)的1變?yōu)?,這和電平極性反轉(zhuǎn)是類似。需要特別注意的是,在極性反轉(zhuǎn)的時(shí)候,起始位和結(jié)束位也都反轉(zhuǎn)了,所有的信號(hào)電平都反轉(zhuǎn);而在數(shù)據(jù)寄存器中只反轉(zhuǎn)了數(shù)據(jù)位,其中也包含了校驗(yàn)位,沒(méi)有反轉(zhuǎn)信號(hào)的起始位和結(jié)束位的極性。

參考上圖,在USART_CR2寄存器中TXINV、RXINV和DATAINV位來(lái)進(jìn)行設(shè)置。

3

支持?jǐn)?shù)據(jù)高位與低位反序發(fā)送或接收第三個(gè)新特性:發(fā)送和接收數(shù)據(jù)時(shí),可在寄存器中設(shè)置是先發(fā)低位還是先發(fā)高位。

默認(rèn)的配置都是先發(fā)送或接收低位的信號(hào)(bit 0),實(shí)際應(yīng)用中,通過(guò)USART_CR2中的MSBFIRST設(shè)置后,也可以讓USART先發(fā)送或接收高位信號(hào)(bit 7/8),這一點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行反序的時(shí)候會(huì)經(jīng)常用到它。

我們可以考慮這種情況,如果需要把串口接收到的數(shù)據(jù)先進(jìn)行反序操作之后,再進(jìn)行計(jì)算,那這個(gè)硬件的功能就可以幫助我們節(jié)省很多軟件的工作量。

4

USART支持DMA傳輸最后,STM32的USART都是支持DMA的,這一點(diǎn)有利于做數(shù)據(jù)的連續(xù)發(fā)送和數(shù)據(jù)的緩沖接收。在某些STM32產(chǎn)品系列中,如STM32F4和H7系列具有專門(mén)的串口FIFO,這就可以用來(lái)做串口喚醒,先讓MCU進(jìn)入到Sleep模式,當(dāng)接收到一個(gè)完整的數(shù)據(jù)包,這個(gè)數(shù)據(jù)包可能是100個(gè)字節(jié)或者200個(gè)字節(jié),之后再喚醒單片機(jī),這樣既可以做到不丟數(shù)據(jù)又可以降低MCU的喚醒頻率。

另外,USART的接收還具有超時(shí)功能,可以人為設(shè)定一個(gè)時(shí)間,在USART的RTOR寄存器中進(jìn)行設(shè)置,當(dāng)串口接收的數(shù)據(jù)幀之間超過(guò)了這個(gè)設(shè)定值,就會(huì)引發(fā)一個(gè)超時(shí)中斷,串口中會(huì)有一個(gè)叫RTOF的標(biāo)志位來(lái)顯示發(fā)生的超時(shí)事件,我們通過(guò)這個(gè)中斷中應(yīng)用的代碼就可以知道串口的數(shù)據(jù)發(fā)生了中斷現(xiàn)象,近似可認(rèn)為對(duì)方的數(shù)據(jù)已經(jīng)發(fā)送完成。這種方式,在串口上層協(xié)議的開(kāi)發(fā)中,有很多應(yīng)用場(chǎng)景。

USART 新特性小結(jié)

支持RXD和TXD管腳的互換

支持管腳上的電平邏輯反轉(zhuǎn)和數(shù)據(jù)寄存器中的邏輯反轉(zhuǎn)

支持?jǐn)?shù)據(jù)高位與低位反序發(fā)送或接收,既可以先發(fā)送或接收低位,也可以先發(fā)送或接收高位

支持接收數(shù)據(jù)的超時(shí)功能,并且每個(gè)USART都可以支持DMA傳輸

原文標(biāo)題:UART的Rx和Tx引腳如何互換,電平如何反轉(zhuǎn)

文章出處:【微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10900

    瀏覽量

    356042
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1235

    瀏覽量

    101397

原文標(biāo)題:UART的Rx和Tx引腳如何互換,電平如何反轉(zhuǎn)

文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一些關(guān)于ldc1000的spi通信的問(wèn)題求解

    我有一些關(guān)于ldc1000的spi通信的問(wèn)題。 應(yīng)用情況是spi16f887與ldc1000的spi通信 1.是否對(duì)于讀、寫(xiě),都是只需要把CSB變成低電平即可。 2.對(duì)于寫(xiě)操作,寫(xiě)地址時(shí)(例如
    發(fā)表于 12-26 08:23

    串口設(shè)計(jì)一些關(guān)鍵注意點(diǎn)!千萬(wàn)別踩雷!

    本文將以Air700ECQ/EAQ/EMQ為例,帶你從硬件設(shè)計(jì)的角度,起來(lái)了解串口設(shè)計(jì)一些關(guān)鍵注意點(diǎn);軟件開(kāi)發(fā)或者AT設(shè)置方面不做深入探討。 ? 、串口相關(guān)管腳 Air700E
    的頭像 發(fā)表于 12-25 17:01 ?109次閱讀
    串口設(shè)計(jì)<b class='flag-5'>一些</b>關(guān)鍵注意點(diǎn)!千萬(wàn)別踩雷!

    USB/UART橋接器的應(yīng)用優(yōu)勢(shì)

    切都要?dú)w功于USB/UART橋接器——它們是嵌入式系統(tǒng)的強(qiáng)大工具。無(wú)論您是從事調(diào)試、物聯(lián)網(wǎng)還是工業(yè)應(yīng)用,了解此橋接器都可以簡(jiǎn)化硬件集成并提高通信可靠性。以下是USB/UART橋接
    的頭像 發(fā)表于 12-03 13:52 ?220次閱讀
    USB/<b class='flag-5'>UART</b>橋接器的應(yīng)用優(yōu)勢(shì)

    一些常見(jiàn)的動(dòng)態(tài)電路

    無(wú)論是模電還是數(shù)電,理論知識(shí)相對(duì)來(lái)說(shuō)還是比較枯燥,各種電路原理理解清楚不算容易,換種生動(dòng)形象的方式或許會(huì)增加一些趣味性,也更容易理解這些知識(shí)。下面整理了一些常見(jiàn)的電路,以動(dòng)態(tài)圖形的方式展示。 整流
    的頭像 發(fā)表于 11-16 09:26 ?355次閱讀
    <b class='flag-5'>一些</b>常見(jiàn)的動(dòng)態(tài)電路

    分享一些常見(jiàn)的電路

    理解模電和數(shù)電的電路原理對(duì)于初學(xué)者來(lái)說(shuō)可能比較困難,但通過(guò)一些生動(dòng)的教學(xué)方法和資源,可以有效地提高學(xué)習(xí)興趣和理解能力。 下面整理了一些常見(jiàn)的電路,以動(dòng)態(tài)圖形的方式展示。 整流電路 單相橋式整流
    的頭像 發(fā)表于 11-13 09:28 ?308次閱讀
    分享<b class='flag-5'>一些</b>常見(jiàn)的電路

    求助,關(guān)于TLV320AIC3106濾波器配置有一些疑問(wèn)求解

    關(guān)于TLV320AIC3106濾波器配置有一些疑問(wèn),如附件公式N3 N4 N5和D4 D5在寄存器里面沒(méi)用明確怎么配置。用TIBQ配置寄存器的時(shí)候也沒(méi)有這幾項(xiàng)參數(shù),哪位大蝦能幫忙解釋
    發(fā)表于 11-04 06:22

    LED驅(qū)動(dòng)器應(yīng)用的一些指南和技巧

    電子發(fā)燒友網(wǎng)站提供《LED驅(qū)動(dòng)器應(yīng)用的一些指南和技巧.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:35 ?0次下載
    LED驅(qū)動(dòng)器應(yīng)用的<b class='flag-5'>一些</b>指南和技巧

    求CSU8RP1186一些關(guān)于電子秤開(kāi)發(fā)例程,最好是C的,跪謝

    有無(wú)CSU8RP1186一些關(guān)于電子秤的參考資料及源碼,最好是C的,或者其他相近芯片的電子秤資料,幫忙發(fā)到郵箱871030114@qq.com,非常感謝!
    發(fā)表于 08-26 14:33

    關(guān)于THS4521的一些使用問(wèn)題求解

    我想請(qǐng)問(wèn)關(guān)于THS4521的一些使用問(wèn)題。 1、THS4521是否能將0-3V的單端信號(hào)轉(zhuǎn)換成共模信號(hào)為1,5V的差分信號(hào)。想把ths4521用于TMS320F28377S的16位ad采樣的前級(jí)電路,之間采用的12位adc,為單端信號(hào),現(xiàn)在想對(duì)單端信號(hào)轉(zhuǎn)為差分信號(hào)。不知
    發(fā)表于 08-20 08:28

    咨詢一些關(guān)于LED燈具的問(wèn)題

    各位大佬,咨詢一些關(guān)于LED燈具的問(wèn)題 120W的吸頂燈,用的非隔離式電源,用不到1年,燈具就會(huì)閃爍、頻閃或不亮,主要是什么原因造成的?是不是驅(qū)動(dòng)芯片太差?
    發(fā)表于 07-02 22:33

    STM32L053在STM32CubeMX里面沒(méi)有關(guān)于NVIC的設(shè)置,是否這個(gè)可以像普通UART樣進(jìn)行設(shè)置呢?

    STM32L053在STM32CubeMX里面沒(méi)有關(guān)于NVIC的設(shè)置,是否這個(gè)可以像普通UART樣進(jìn)行設(shè)置呢?
    發(fā)表于 04-17 07:20

    STM32L476利用雙bank的方式進(jìn)行升級(jí),在flash設(shè)置的一些flag讀不到是什么問(wèn)題?

    STM32L476利用雙bank的方式進(jìn)行升級(jí),這個(gè)是通過(guò)Syscfg_Memrmp的FB_Mode來(lái)做的,我試了下,可以快速切換到另外個(gè)bank,但是在flash設(shè)置的
    發(fā)表于 03-12 07:43

    stm32h743是不是可以直接用ICache加快一些速度?

    stm32h743是不是可以直接用ICache加快一些速度,而不用DCache,DCache配置ram麻煩?
    發(fā)表于 03-08 08:01

    晶振電路電容電阻的一些基本原理和作用解析

    晶振電路的電容和電阻是調(diào)整和維持晶振振蕩穩(wěn)定性的關(guān)鍵元件。KOAN凱擎小妹帶大家了解下晶振電路電容電阻的一些基本原理和作用。
    的頭像 發(fā)表于 02-20 16:22 ?1746次閱讀
    晶振電路<b class='flag-5'>中</b>電容電阻的<b class='flag-5'>一些</b>基本原理和作用解析

    往Aducm320 Flash寫(xiě)入了一些數(shù)據(jù),如何才能讀出來(lái)?

    往Aducm320Flash寫(xiě)入了一些數(shù)據(jù),如何才能讀出來(lái)? ADUCM320關(guān)于擦除,寫(xiě)入,讀寫(xiě)保護(hù)等操作在數(shù)據(jù)手冊(cè)及例程上均有明確說(shuō)明與相關(guān)例程,但是在讀取方面我未發(fā)現(xiàn)有明確的描述如何操作,也無(wú)相關(guān)例程有所參考,故請(qǐng)?zhí)峁?/div>
    發(fā)表于 01-12 07:41