一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

UART的Rx和Tx引腳如何互換 電平如何反轉(zhuǎn)

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-02-26 16:42 ? 次閱讀

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

支持RXD和TXD管腳互換

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

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

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

支持接收和發(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)是類(lèi)似。需要特別注意的是,在極性反轉(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è)置。

支持?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é)省很多軟件的工作量。

USART支持DMA傳輸

最后,STM32的USART都是支持DMA的,這一點(diǎn)有利于做數(shù)據(jù)的連續(xù)發(fā)送和數(shù)據(jù)的緩沖接收。在某些STM32產(chǎn)品系列中,如STM32F4和H7系列具有專(zhuān)門(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傳輸

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guā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)注

    2283

    文章

    10986

    瀏覽量

    361371
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1478

    瀏覽量

    51978
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1251

    瀏覽量

    102888
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Sky5? TX/RX 前端模塊,帶 15 個(gè)線(xiàn)性 TRx 交換機(jī)端口(無(wú) 2G 集成) skyworksinc

    交換機(jī)端口(無(wú) 2G 集成)的引腳圖、接線(xiàn)圖、封裝手冊(cè)、中文資料、英文資料,Sky5? TX/RX 前端模塊,帶 15 個(gè)線(xiàn)性 TRx 交換機(jī)端口(無(wú) 2G 集成)真值表,Sky5? TX
    發(fā)表于 04-11 18:31
    Sky5? <b class='flag-5'>TX</b>/<b class='flag-5'>RX</b> 前端模塊,帶 15 個(gè)線(xiàn)性 TRx 交換機(jī)端口(無(wú) 2G 集成) skyworksinc

    stm32的TXRX引腳出現(xiàn)了對(duì)地短路是怎么回事?如何解決?

    最近在做某個(gè)項(xiàng)目的時(shí)候發(fā)現(xiàn)stm32芯片中的TXRX引腳出現(xiàn)了對(duì)地短路的情況,目前在使用過(guò)程出現(xiàn)了2次這樣的問(wèn)題。stm32的TXRX
    發(fā)表于 03-06 07:12

    光纖的txrx怎么接

    光纖的TX(發(fā)送)和RX(接收)端口的連接方法主要取決于所使用的設(shè)備和光纖收發(fā)器的類(lèi)型。以下是一些基本的連接步驟和注意事項(xiàng): 一、連接步驟 識(shí)別端口: TX端口:用于發(fā)送數(shù)據(jù)的光纖端口。 RX
    的頭像 發(fā)表于 10-25 10:23 ?4715次閱讀

    stm32芯片 TXRX引腳出現(xiàn)對(duì)地短路的情況

    最近在做某個(gè)項(xiàng)目的時(shí)候發(fā)現(xiàn)stm32芯片中的TXRX引腳出現(xiàn)了對(duì)地短路的情況,目前在使用過(guò)程出現(xiàn)了2次這樣的問(wèn)題。 如下圖所示,stm32的TX
    發(fā)表于 09-26 10:54

    通過(guò)UART0連接到esp8266與服務(wù)器進(jìn)行通信,報(bào)UART Rx溢出和消息RX OVF錯(cuò)誤怎么解決?

    buffer length of tx buffer #define UART_RX_BUFFER_SIZE 768 //Ring buffer length of rx buffer 但是,這無(wú)助于阻止
    發(fā)表于 07-11 08:05

    UART0和UART1之間是否共享Tx緩沖區(qū)?

    ); /****************************************************************************** * FunctionName : uart_config * Description: Internal used function *
    發(fā)表于 07-11 07:50

    在ESP Wemos D1 Mini Pro上將FTDI連接到RXTX遇到的疑問(wèn)求解

    我在 ESP Wemos D1 Mini Pro 上將 FTDI 連接到我的 RXTX。我必須物理斷開(kāi) Wemos D1 上的 RX 引腳才能刷新新固件。我的猜測(cè)是
    發(fā)表于 07-10 07:29

    esp32的twai控制器的txrx可以用任一gpio定義嗎?

    各位大神們好,我想請(qǐng)教個(gè)問(wèn)題,esp32的twai控制器的txrx可以用任一gpio定義嘛,比如要連接tja1050收發(fā)器,它的rxtx引腳
    發(fā)表于 07-01 07:38

    ESP32-S3-WROOM-1U-N8R8 UART1用默認(rèn)引腳調(diào)試不通怎么解決?

    ;uart_rx_task\", 1024*2, NULL, configMAX_PRIORITIES, NULL); xTaskCreate(tx_task, \"uart_tx_task\", 1024*2, NULL,
    發(fā)表于 06-27 07:26

    ESP32C3想修改UART0的UART_TX_SIZE為2該如何操作?

    在ESP32C3的技術(shù)參考手冊(cè)中,UART的RAM共分為4個(gè)Block,每個(gè)Block128個(gè)字節(jié),分別給UART0/1中不同的TX/RX,其中提到了可以修改幾個(gè)空間的大小。這個(gè)大小在
    發(fā)表于 06-14 06:32

    ESP32可以直接寫(xiě)入RX的高低電平,和直接讀取TX的高低電平嗎?

    頭文件中,有沒(méi)有不指定RX TX引腳的情況下,直接寫(xiě)入RX的高低電平,和直接讀取TX的高低
    發(fā)表于 06-07 08:20

    請(qǐng)問(wèn)esp32的twai控制器的txrx可以用任一gpio定義嗎?

    各位大神們好,我想請(qǐng)教個(gè)問(wèn)題,esp32的twai控制器的txrx可以用任一gpio定義嘛,比如要連接tja1050收發(fā)器,它的rxtx引腳
    發(fā)表于 06-07 06:04

    tc3x7 uart接口輸入輸出配置遇到的疑問(wèn)求解

    你好,請(qǐng)教一個(gè)問(wèn)題,我們?cè)谠O(shè)置 tc3x7 的引腳UART TXUART RX 的時(shí)候,如 U
    發(fā)表于 06-03 08:11

    請(qǐng)問(wèn)cyUSB3014 USB3.0的TXRX可以互換嗎?

    親愛(ài)的各位請(qǐng)問(wèn)cyUSB3014 USB3.0的TXRX可以互換嗎?
    發(fā)表于 05-29 06:44

    CAN中斷對(duì)RXTX無(wú)效怎么解決?

    ;transmissionCompletedEnabled\" for TX \"rxFifo0NewMessageEnabled\" for RX 我在中央處理器寄存器上檢查過(guò),確實(shí)已啟用。 以下是我的 TX 中斷配置
    發(fā)表于 05-22 07:42