日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

NXP(I.MX6uLL) UART串口通信原理————这个未复习

發(fā)布時(shí)間:2023/12/10 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NXP(I.MX6uLL) UART串口通信原理————这个未复习 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考:Linux NXP (I.MX6uLL) UART串口通信原理
作者:一只青木呀
發(fā)布時(shí)間: 2020-09-20 16:48:33
網(wǎng)址:https://blog.csdn.net/weixin_45309916/article/details/108694634

目錄

  • 1、UART簡(jiǎn)介
    • 1.1、UART串口通訊格式
    • 1.2、UART 的通信格式:
    • 1.3、UART 電平標(biāo)準(zhǔn)
  • 2、I.MX6U UART 簡(jiǎn)介
    • 2.1、UART的時(shí)鐘源選擇
  • 3、UART 幾個(gè)重要的寄存器
    • 3.1、UART 的控制寄存器 1,即UARTx_UCR1(x=1~8)
    • 3.2、UART 的控制寄存器 2,即: UARTx_UCR2
    • 3.3、寄存器UARTx_UCR3
    • 3.4、寄存器 UARTx_USR2
    • 3.5、寄 存 器 UARTx_UFCR 、 UARTx_UBIR 和 UARTx_UBMR
  • UART1 的配置步驟
  • 硬件原理分析
  • 實(shí)驗(yàn)程序編寫
  • 編譯下載驗(yàn)證
    • 編寫Makefile 和鏈接腳本
    • 編譯下載

不管是單片機(jī)開(kāi)發(fā)還是嵌入式 Linux 開(kāi)發(fā),串口都是最常用到的外設(shè)。可以通過(guò)串口將開(kāi)發(fā)板與電腦相連,然后在電腦上通過(guò)串口調(diào)試助手來(lái)調(diào)試程序。還有很多的模塊,比如藍(lán)牙、GPS、 GPRS 等都使用的串口來(lái)與主控進(jìn)行通信的,在嵌入式 Linux 中一般使用串口作為控制臺(tái),所以掌握串口是必備的技能。

1、UART簡(jiǎn)介

1.1、UART串口通訊格式

串口全稱叫做串行接口,通常也叫做 COM 接口,串行接口指的是數(shù)據(jù)一個(gè)一個(gè)的順序傳輸,通信線路簡(jiǎn)單。使用兩條線即可實(shí)現(xiàn)雙向通信,一條用于發(fā)送,一條用于接收。串口通信距離遠(yuǎn),但是速度相對(duì)會(huì)低,串口是一種很常用的工業(yè)接口。 I.MX6U 自帶的 UART 外設(shè)就是串口的一種, UART 全稱是 Universal Asynchronous Receiver/Trasmitter,也就是異步串行收發(fā)器。既然有異步串行收發(fā)器,那肯定也有同步串行收發(fā)器,學(xué)過(guò) STM32 的同學(xué)應(yīng)該知道, STM32除 了 有 UART 外 ,還有 另 外一 個(gè) 叫 做 USART 的 東 西。 USART 的全 稱 是 UniversalSynchronous/Asynchronous Receiver/Transmitter,也就是同步/異步串行收發(fā)器。 相比 UART 多了一個(gè)同步的功能,在硬件上體現(xiàn)出來(lái)的就是多了一條時(shí)鐘線。 一般 USART 是可以作為 UART使用的,也就是不使用其同步的功能。

UART 作為串口的一種,其工作原理也是將數(shù)據(jù)一位一位的進(jìn)行傳輸,發(fā)送和接收各用一條線,因此通過(guò) UART 接口與外界相連最少只需要三條線: TXD(發(fā)送)、RXD(接收) 和 GND(地線)。

1.2、UART 的通信格式:


上圖中的每個(gè)位的含義如下:

位含義
空閑位數(shù)據(jù)線在空閑狀態(tài)的時(shí)候?yàn)檫壿嫛?”狀態(tài),也就是高電平,表示沒(méi)有數(shù)據(jù)線空閑,沒(méi)有數(shù)據(jù)傳輸。
起始位當(dāng)要傳輸數(shù)據(jù)的時(shí)候先傳輸一個(gè)邏輯“0”,也就是將數(shù)據(jù)線拉低,表示開(kāi)始數(shù)據(jù)傳輸。
數(shù)據(jù)位數(shù)據(jù)位就是實(shí)際要傳輸?shù)臄?shù)據(jù),數(shù)據(jù)位數(shù)可選擇 5~8 位,我們一般都是按照字節(jié)傳輸數(shù)據(jù)的,一個(gè)字節(jié) 8 位,因此數(shù)據(jù)位通常是 8 位的。低位在前,先傳輸,高位最后傳輸。
奇偶校驗(yàn)位這是對(duì)數(shù)據(jù)中“1”的位數(shù)進(jìn)行奇偶校驗(yàn)用的,可以不使用奇偶校驗(yàn)功能。
停止位數(shù)據(jù)傳輸完成標(biāo)志位,停止位的位數(shù)可以選擇 1 位、 1.5 位或 2 位高電平,一般都選擇 1 位停止位。
波特率波特率就是 UART 數(shù)據(jù)傳輸?shù)乃俾?#xff0c;也就是每秒傳輸?shù)臄?shù)據(jù)位數(shù),一般選擇 9600、19200、 15200(用的最多)等。

1.3、UART 電平標(biāo)準(zhǔn)

UART 一般的接口電平有 TTL 和 RS-232,一般開(kāi)發(fā)板上都有 TXD 和 RXD 這樣的引腳,這些引腳低電平表示邏輯 0,高電平表示邏輯 1,這個(gè)就是 TTL 電平。 RS-232 采用差分線, -3~ -15V 表示邏輯 1, +3~+15V 表示邏輯 0。一般下圖中的接口就是 TTL 電平:

上圖中的模塊就是 USB 轉(zhuǎn) TTL 模塊, TTL 接口部分有 VCC、 GND、 RXD、 TXD、RTS 和 CTS。 RTS 和 CTS 基本用不到,使用的時(shí)候通過(guò)杜邦線和其他模塊的 TTL 接口相連即可。

RS-232 電平需要 DB9 接口, I.MX6U-ALPHA 開(kāi)發(fā)板上的 COM3(UART3)口就是 RS-232 接口的,如下圖所示:

由于現(xiàn)在的電腦都沒(méi)有 DB9 接口了,取而代之的是 USB 接口,所以就催生出了很多 USB轉(zhuǎn)串口 TTL 芯片,比如 CH340、PL2303 等 。通過(guò)這些芯片就可以實(shí)現(xiàn)串口 TTL 轉(zhuǎn) USB。I.MX6UALPHA開(kāi)發(fā)板就使用CH340 芯片來(lái)完成UART1 和電腦之間的連接,只需要一條USB 線即可,

2、I.MX6U UART 簡(jiǎn)介

上面介紹了 UART 接口,下面具體看一下 I.MX6U 的 UART 接口, I.MX6U 一共有 8 個(gè) UART,其主要特性如下:

  • ①、兼容 TIA/EIA-232F 標(biāo)準(zhǔn),速度最高可到 5Mbit/S
  • ②、支持串行 IR 接口,兼容 IrDA,最高可到 115.2Kbit/s。
  • ③、支持 9 位或者多節(jié)點(diǎn)模式(RS-485)。
  • ④、 1 或 2 位停止位。
  • ⑥、可編程的奇偶校驗(yàn)(奇校驗(yàn)和偶校驗(yàn))。
  • ⑦、自動(dòng)波特率檢測(cè)(最高支持 115.2Kbit/S)

2.1、UART的時(shí)鐘源選擇

UART 的時(shí)鐘源是由寄存器 CCM_CSCDR1 的 UART_CLK_SEL(bit)位來(lái)選擇的,當(dāng)為 0 的時(shí)候 UART 的時(shí)鐘源為 pll3_80m(80MHz),如果為 1 的時(shí)候 UART 的時(shí)鐘源為 osc_clk(24M),一般選擇 pll3_80m 作為 UART 的時(shí)鐘源。寄存器 CCM_CSCDR1 的 UART_CLK_PODF(bit5:0)位是 UART 的時(shí)鐘分頻值,可設(shè)置 0~ 63,分別對(duì)應(yīng) 1~64 分頻,一般設(shè)置為 1 分頻,因此最終進(jìn)入 UART 的時(shí)鐘為 80MHz

3、UART 幾個(gè)重要的寄存器

3.1、UART 的控制寄存器 1,即UARTx_UCR1(x=1~8)


寄存器 UARTx_UCR1 我們用到的重要位如下:

重要位含義
ADBR(bit14)自動(dòng)波特率檢測(cè)使能位,為 0 的時(shí)候關(guān)閉自動(dòng)波特率檢測(cè),為 1 的時(shí)候使能自動(dòng)波特率檢測(cè)。
UARTEN(bit0)UART 使能位,為 0 的時(shí)候關(guān)閉 UART,為 1 的時(shí)候使能 UART。

3.2、UART 的控制寄存器 2,即: UARTx_UCR2

寄存器 UARTx_UCR2 用到的重要位如下:

位含義
IRTS(bit14)為 0 的時(shí)候使用 RTS 引腳功能,為 1 的時(shí)候忽略 RTS 引腳。
PREN(bit8)奇偶校驗(yàn)使能位,為 0 的時(shí)候關(guān)閉奇偶校驗(yàn),為 1 的時(shí)候使能奇偶校驗(yàn)。
PROE(bit7)奇偶校驗(yàn)?zāi)J竭x擇位,開(kāi)啟奇偶校驗(yàn)以后此位如果為 0 的話就使用偶校驗(yàn),此位為 1 的話就使能奇校驗(yàn)。
STOP(bit6)停止位數(shù)量,為 0 的話 1 位停止位,為 1 的話 2 位停止位。
WS(bit5)數(shù)據(jù)位長(zhǎng)度,為 0 的時(shí)候選擇 7 位數(shù)據(jù)位,為 1 的時(shí)候選擇 8 位數(shù)據(jù)位。
TXEN(bit2)發(fā)送使能位,為 0 的時(shí)候關(guān)閉 UART 的發(fā)送功能,為 1 的時(shí)候打開(kāi) UART的發(fā)送功能。
RXEN(bit1)接收使能位,為 0 的時(shí)候關(guān)閉 UART 的接收功能,為 1 的時(shí)候打開(kāi) UART的接收功能。
SRST(bit0)軟件復(fù)位,為 0 的是時(shí)候軟件復(fù)位 UART,為 1 的時(shí)候表示復(fù)位完成。復(fù)位完成以后此位會(huì)自動(dòng)置 1, 表示復(fù)位完成。此位只能寫 0,寫 1 會(huì)被忽略掉。

3.3、寄存器UARTx_UCR3


寄存器 UARTx_UCR3 用到的重要位如下:

位含義
RXDMUXSEL(bit2)這個(gè)位應(yīng)該始終為 1

3.4、寄存器 UARTx_USR2


寄存器 UARTx_USR2 用到的重要位如下:

位含義
TXDC(bit3)發(fā)送完成標(biāo)志位,為 1 的時(shí)候表明發(fā)送緩沖(TxFIFO)和移位寄存器為空,也就是發(fā)送完成,向 TxFIFO 寫入數(shù)據(jù)此位就會(huì)自動(dòng)清零。
RDR(bit0)數(shù)據(jù)接收標(biāo)志位,為 1 的時(shí)候表明至少接收到一個(gè)數(shù)據(jù),從寄存器UARTx_URXD 讀取數(shù)據(jù)接收到的數(shù)據(jù)以后此為會(huì)自動(dòng)清零

3.5、寄 存 器 UARTx_UFCR 、 UARTx_UBIR 和 UARTx_UBMR

通過(guò)這三個(gè)寄存器可以設(shè)置 UART 的波特率,波特率的計(jì)算公式如下:

  • Ref Freq:經(jīng)過(guò)分頻以后進(jìn)入 UART 的最終時(shí)鐘頻率。
  • UBMR:寄存器 UARTx_UBMR 中的值。
  • UBIR:寄存器 UARTx_UBIR 中的值。

通過(guò) UARTx_UFCR 的 RFDIV 位、 UARTx_UBMR 和 UARTx_UBIR 這三者的配合即可得到我們想要的波特率。比如現(xiàn)在要設(shè)置 UART 波特率為 115200,那么可以設(shè)置 RFDIV 為5(0b101),也就是 1 分頻,因此 Ref Freq=80MHz。設(shè)置 UBIR=71, UBMR=3124,根據(jù)上面的公式可以得到:

最后來(lái)看一下寄存器 UARTx_URXD 和 UARTx_UTXD,這兩個(gè)寄存器分別為 UART 的接收和發(fā)送數(shù)據(jù)寄存器,這兩個(gè)寄存器的低八位為接收到的和要發(fā)送的數(shù)據(jù)。讀取寄存器UARTx_URXD 即可獲取到接收到的數(shù)據(jù),如果要通過(guò) UART 發(fā)送數(shù)據(jù),直接將數(shù)據(jù)寫入到寄存器 UARTx_UTXD 即可。

寄 存 器UARTx_UFCR中我們要用到的是位 RFDIV(bit9:7),用來(lái)設(shè)置參考時(shí)鐘分頻,如下表:

RFDIV(bit9:7)分頻值
0006 分頻
0015 分頻
0104 分頻
0113 分頻
1002 分頻
1011 分頻
1107 分頻
111保留

UART1 的配置步驟

關(guān)于UART 的寄存器就介紹到這里,關(guān)于這些寄存器詳細(xì)的描述,請(qǐng)參考《I.MX6ULL 參考手冊(cè)》第3608 頁(yè)的55.15 小節(jié)。本章我們使用I.MX6U 的UART1 來(lái)完成開(kāi)發(fā)板與電腦串口調(diào)試助手之間串口通信,UART1 的配置步驟如下:

1、設(shè)置UART1 的時(shí)鐘源
設(shè)置UART 的時(shí)鐘源為pll3_80m,設(shè)置寄存器CCM_CSCDR1 的UART_CLK_SEL 位為0即可。

2、初始化UART1
初始化UART1 所使用IO,設(shè)置UART1 的寄存器UART1_UCR1~UART1_UCR3,設(shè)置內(nèi)容包括波特率,奇偶校驗(yàn)、停止位、數(shù)據(jù)位等等。

4、使能UART1
UART1 初始化完成以后就可以使能UART1 了,設(shè)置寄存器UART1_UCR1 的位UARTEN為1。

5、編寫UART1 數(shù)據(jù)收發(fā)函數(shù)
編寫兩個(gè)函數(shù)用于UART1 的數(shù)據(jù)收發(fā)操作。

硬件原理分析

本試驗(yàn)用到的資源如下:
①、一個(gè)LED 燈:LED0。
②、串口1。
I.MX6U-ALPHA 開(kāi)發(fā)板串口1 硬件原理圖如圖21.2.1 所示:

在做實(shí)驗(yàn)之前需要用USB 串口線將串口1 和電腦連接起來(lái),并且還需要設(shè)置JP5 跳線帽,將串口1 的RXD、TXD 兩個(gè)引腳分別與P116、P117 連接一起,如圖21.2.2 所示:


硬件連接設(shè)置好以后就可以開(kāi)始軟件編寫了,本章實(shí)驗(yàn)我們初始化好UART1,然后等待SecureCRT 給開(kāi)發(fā)板發(fā)送一個(gè)字節(jié)的數(shù)據(jù),開(kāi)發(fā)板接收到SecureCRT 發(fā)送過(guò)來(lái)的數(shù)據(jù)以后在同通過(guò)串口1 發(fā)送給SecureCRT。

實(shí)驗(yàn)程序編寫

本實(shí)驗(yàn)對(duì)應(yīng)的例程路徑為:開(kāi)發(fā)板光盤-> 1、裸機(jī)例程-> 13_uart。

本章實(shí)驗(yàn)在上一章例程的基礎(chǔ)上完成,更改工程名字為“uart”,然后在bsp 文件夾下創(chuàng)建名為“uart”的文件夾,然后在bsp/uart 中新建bsp_uart.c 和bsp_uart.h 這兩個(gè)文件。在bsp_uart.h中輸入如下內(nèi)容:

1 #ifndef _BSP_UART_H 2 #define _BSP_UART_H 3 #include "imx6ul.h" 4 /*************************************************************** 5 Copyright ? zuozhongkai Co., Ltd. 1998-2019. All rights reserved. 6 文件名: bsp_uart.h 7 作者: 左忠凱 8 版本: V1.0 9 描述: 串口驅(qū)動(dòng)文件頭文件。 10 其他: 無(wú) 11 論壇: www.openedv.com 12 日志: 初版V1.0 2019/1/15 左忠凱創(chuàng)建 13 ***************************************************************/ 14 15 /* 函數(shù)聲明*/ 16 void uart_init(void); 17 void uart_io_init(void); 18 void uart_disable(UART_Type *base);

文件bsp_uart.h 內(nèi)容很簡(jiǎn)單,就是一些函數(shù)聲明。繼續(xù)在文件bsp_uart.c 中輸入如下所示內(nèi)容:

/*************************************************************** Copyright ? zuozhongkai Co., Ltd. 1998-2019. All rights reserved. 文件名: bsp_uart.c 作者: 左忠凱 版本: V1.0 描述: 串口驅(qū)動(dòng)文件。 其他: 無(wú) 論壇: www.openedv.com 日志: 初版V1.0 2019/1/15 左忠凱創(chuàng)建 ***************************************************************/ 1 #include "bsp_uart.h" 2 3 /* 4 * @description : 初始化串口1,波特率為115200 5 * @param : 無(wú) 6 * @return : 無(wú) 7 */ 8 void uart_init(void) 9 { 10 /* 1、初始化串口IO */ 11 uart_io_init(); 12 13 /* 2、初始化UART1 */ 14 uart_disable(UART1); /* 先關(guān)閉UART1 */ 15 uart_softreset(UART1); /* 軟件復(fù)位UART1 */ 16 17 UART1->UCR1 = 0; /* 先清除UCR1寄存器*/ 18 UART1->UCR1 &= ~(1<<14); /* 關(guān)閉自動(dòng)波特率檢測(cè)*/ 19

文件bsp_uart.c 中共有10 個(gè)函數(shù),我們依次來(lái)看一下這些函數(shù)都是做什么的,第一個(gè)函數(shù)是uart_init,這個(gè)函數(shù)是UART1 初始化函數(shù),用于初始化UART1 相關(guān)的IO、并且設(shè)置UART1的波特率、字長(zhǎng)、停止位和校驗(yàn)?zāi)J降?#xff0c;初始化完成以后就使能UART1。第二個(gè)函數(shù)是uart_io_init,用于初始化UART1 所使用的IO。第三個(gè)函數(shù)是uart_setbaudrate,這個(gè)函數(shù)是從
NXP 官方的SDK 包里面移植過(guò)來(lái)的,用于設(shè)置波特率。我們只需將要設(shè)置的波特率告訴此函數(shù),此函數(shù)就會(huì)使用逐次逼近方式來(lái)計(jì)算出寄存器UART1_UFCR 的FRDIV 位、寄存器UART1_UBIR 和寄存器UART1_UBMR 這三個(gè)的值。第四和第五這兩個(gè)函數(shù)為uart_disable 和uart_enable,分別是使能和關(guān)閉UART1。第6 個(gè)函數(shù)是uart_softreset,用于軟件復(fù)位指定的UART。第七個(gè)函數(shù)是putc,用于通過(guò)UART1 發(fā)送一個(gè)字節(jié)的數(shù)據(jù)。第八個(gè)函數(shù)是puts,用于通過(guò)UART1發(fā)送一串?dāng)?shù)據(jù)。第九個(gè)函數(shù)是getc,用于通過(guò)UART1 獲取一個(gè)字節(jié)的數(shù)據(jù),最后一個(gè)函數(shù)是raise,這是一個(gè)空函數(shù),防止編譯器報(bào)錯(cuò)。

最后在main.c 中輸入如下所示內(nèi)容:

/************************************************************** Copyright ? zuozhongkai Co., Ltd. 1998-2019. All rights reserved. 文件名: main.c

第5 行調(diào)用函數(shù)uart_init 初始化UART1,最終在while 循環(huán)里面獲取串口接收到的數(shù)據(jù),并且將獲取到的數(shù)據(jù)通過(guò)串口打印出來(lái)。

編譯下載驗(yàn)證

編寫Makefile 和鏈接腳本

在Makefile 文件中輸入如下內(nèi)容:

1 CROSS_COMPILE ?= arm-linux-gnueabihf- 2 TARGET ?= uart 3 4 CC := $(CROSS_COMPILE)gcc 5 LD := $(CROSS_COMPILE)ld 6 OBJCOPY := $(CROSS_COMPILE)objcopy 7 OBJDUMP := $(CROSS_COMPILE)objdump 8 9 LIBPATH := -lgcc -L /usr/local/arm/gcc-linaro-4.9.4-2017.01- x86_64_arm-linux-gnueabihf/lib/gcc/arm-linux-gnueabihf/4.9.4 10 11 12 INCDIRS := imx6ul \ 13 bsp/clk \ 14 bsp/led \ 15 bsp/delay \ 16 bsp/beep \ 17 bsp/gpio \ 18 bsp/key \ 19 bsp/exit \ 20 bsp/int \ 21 bsp/epittimer \ 22 bsp/keyfilter \ 23 bsp/uart 24 25 SRCDIRS := project \ 26 bsp/clk \

上述的Makefile 文件內(nèi)容和上一章實(shí)驗(yàn)的區(qū)別不大。將TARGET 為uart,在INCDIRS 和SRCDIRS 中加入“bsp/uart”。但是,相比上一章中的Makefile 文件,本章實(shí)驗(yàn)的Makefile 有兩處重要的改變:

①、本章Makefile 文件在鏈接的時(shí)候加入了數(shù)學(xué)庫(kù),因?yàn)樵赽sp_uart.c 中有個(gè)函數(shù)uart_setbaudrate,在此函數(shù)中使用到了除法運(yùn)算,因此在鏈接的時(shí)候需要將編譯器的數(shù)學(xué)庫(kù)也鏈接進(jìn)來(lái)。第9 行的變量LIBPATH 就是數(shù)學(xué)庫(kù)的目錄,在第56 行鏈接的時(shí)候使用了變量LIBPATH。

在后面的學(xué)習(xí)中,我們常常要用到一些第三方庫(kù),那么在連接程序的時(shí)候就需要指定這些第三方庫(kù)所在的目錄,Makefile 在鏈接的時(shí)候使用選項(xiàng)“-L”來(lái)指定庫(kù)所在的目錄,比如“示例代碼21.4.1”中第9 行的變量LIBPATH 就是指定了我們所使用的編譯器庫(kù)所在的目錄。

②、在第61 行和64 行中,加入了選項(xiàng)“-fno-builtin”,否則編譯的時(shí)候提示“putc”、“puts”這兩個(gè)函數(shù)與內(nèi)建函數(shù)沖突,錯(cuò)誤信息如下所示:

warning: conflicting types for built-in function ‘putc’ warning: conflicting types for built-in function ‘puts’

在編譯的時(shí)候加入選項(xiàng)“-fno-builtin”表示不使用內(nèi)建函數(shù),這樣我們就可以自己實(shí)現(xiàn)putc和puts 這樣的函數(shù)了。

鏈接腳本保持不變。

編譯下載

使用Make 命令編譯代碼,編譯成功以后使用軟件imxdownload 將編譯完成的uart.bin 文件下載到SD 卡中,命令如下:

chmod 777 imxdownload //給予imxdownload 可執(zhí)行權(quán)限,一次即可 ./imxdownload uart.bin /dev/sdd //燒寫到SD 卡中,不能燒寫到/dev/sda 或sda1 設(shè)備里面!

燒寫成功以后將SD 卡插到開(kāi)發(fā)板的SD 卡槽中,然后復(fù)位開(kāi)發(fā)板。打開(kāi)SourceCRT,點(diǎn)擊File->Quick Connect…,打開(kāi)快速連接設(shè)置界面,設(shè)置好相應(yīng)的串口參數(shù),比如在我的電腦上是COM8,設(shè)置如圖21.4.2.1 所示:

設(shè)置好以后就點(diǎn)擊“Connect”就可以了,連接成功以后SecureCRT 收到來(lái)自開(kāi)發(fā)板的數(shù)據(jù),但是SecureCRT 顯示可能會(huì)是亂碼,如圖21.4.2.2 所示:

這是因?yàn)橛行┰O(shè)置還沒(méi)做,點(diǎn)擊Options->Session Options…,打開(kāi)會(huì)話設(shè)置窗口,按照?qǐng)D21.4.2.3 所示設(shè)置:

設(shè)置好以后點(diǎn)擊“OK”按鈕就可以了,清屏,然后重新復(fù)位一次開(kāi)發(fā)板,此時(shí)SecureCRT顯示就正常了,如圖21.4.2.4 所示:

根據(jù)提示輸入一個(gè)字符,這個(gè)輸入的字符就會(huì)通過(guò)串口發(fā)送給開(kāi)發(fā)板,開(kāi)發(fā)板接收到字符以后就會(huì)通過(guò)串口提示你接收到的字符是什么,如圖21.4.2.5 所示:

至此,I.MX6U 的串口1 就工作起來(lái)了,以后我們就可以通過(guò)串口來(lái)調(diào)試程序。但是本章只實(shí)現(xiàn)了串口最基本的收發(fā)功能,如果我們要想使用格式化輸出話就不行了,比如最常用的printf 函數(shù),下一章就講解如何移植printf 函數(shù)。

總結(jié)

以上是生活随笔為你收集整理的NXP(I.MX6uLL) UART串口通信原理————这个未复习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。