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

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

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

UART的收發(fā)數(shù)據(jù)操作介紹

電子工程師 ? 來源:網(wǎng)絡(luò)整理 ? 2018-02-01 03:27 ? 次閱讀

PIC32MZEF一共有6個UART端口,資源還是比較豐富的。UART是比較常用的外設(shè),特別是在調(diào)試的時候,串口打印信息很方便,測試起來很方便,這篇就來測試一下UART數(shù)據(jù)的發(fā)送和中斷接收。

先來看看板卡原理圖中的引腳接口,UART1和UART2都引出到接插件了,但是UART2的引腳用作OLED驅(qū)動使用了,我們就來測試UART1吧。

1

2

UART模塊的主要特性有:

? 全雙工8位或9位數(shù)據(jù)發(fā)送

? 偶校驗(yàn)、奇校驗(yàn)或無奇偶校驗(yàn)選項(xiàng)(對于8位數(shù)據(jù))

? 一個或兩個停止位

? 硬件自動波特率特性

? 硬件流控制選項(xiàng)

? 完全集成的波特率發(fā)生器(Baud Rate Generator,BRG),具有16位預(yù)分頻器

? 在100 MHz時,波特率范圍為76 bps至25 Mbps(PBCLK2)

?8級深先進(jìn)先出(First-In-First-Out,F(xiàn)IFO)發(fā)送數(shù)據(jù)緩沖區(qū)

?8級深FIFO接收數(shù)據(jù)緩沖區(qū)

? 奇偶校驗(yàn)、幀和緩沖區(qū)溢出錯誤檢測

? 支持僅在地址檢測時中斷(第9位 = 1)

? 獨(dú)立的發(fā)送和接收中斷

? 用于診斷支持的環(huán)回模式

?LIN協(xié)議支持

?IrDA編碼器和解碼器,具有用于支持外部IrDA編碼器/解碼器的16倍頻波特率時鐘輸出

先來看看UART的內(nèi)部框圖

3

下面詳細(xì)說一下UART的配置。打開MHC,打開HarmonyFramework Configuration》Drivers》USART。在“Use USARTDrive?”之前的選擇框中打勾。使能UART外設(shè)功能。

4

1,Driver Implementation:這個有動態(tài)和靜態(tài)的可以,我們這里選擇動態(tài)的。

2,中斷模式選擇使能,這里打鉤,表示使能中斷。

3,Number of USART Driver Instances:選擇需要的USART實(shí)例的數(shù)量,根據(jù)“Number of USART Driver Instances” 對話框中的數(shù)量,會產(chǎn)生“USARTDriver Instance N”(N = 0,1,2…)。

展開“USART Driver Instance N”(N = 0,1,2…),根據(jù)應(yīng)用的需要,對每個USART實(shí)例的靜態(tài)驅(qū)動程序進(jìn)行配置。

4,USART Module ID:選擇ID1,就是使用的UART1,這里可以選擇1-6。

5,Buad Rate:波特率設(shè)置,這里我們設(shè)置為19200

6,發(fā)送中斷優(yōu)先級設(shè)置,發(fā)送我一般使用查詢方式,而接收使用中斷方式,所以這里發(fā)送選擇禁止中斷。

7,接收中斷優(yōu)先級設(shè)置,InterruptPriority和Interrupt Sub-priority這兩項(xiàng)是選擇中斷優(yōu)先級。每個向量有7個用戶可選的優(yōu)先級,每個優(yōu)先級內(nèi)有4個用戶可選的次優(yōu)先級。

8,Operation Mode:模式選擇,模式有IrDA模式,正常模式,地址檢測模式,環(huán)回模式。我們選擇正常模式就可以了。

9,Line Control:數(shù)據(jù)格式選擇,數(shù)據(jù)位有8,9位,校驗(yàn)有奇校驗(yàn),偶校驗(yàn),無校驗(yàn),停止位有1,2位。我們選擇N81數(shù)據(jù)格式。

10,Handshake Mode:握手模式,有單工模式,流控制模式和正常模式。我們選擇正常模式。

11,Power State:用來選擇UART可以運(yùn)行在哪些節(jié)能模式下,這里選擇FULL表示所有模式下都可以運(yùn)行。

打開引腳設(shè)置窗口,進(jìn)行48,69兩個引腳設(shè)置,設(shè)置成UART引腳

5

6

點(diǎn)擊生成代碼,選擇自動覆蓋以前的程序

7

看了生成后新的工程文件

8

在APP.H文件里增加一些變量定義

9

還是把中斷函數(shù)直接移到APP.C下面,再編寫程序。下篇的話再介紹如何使用回調(diào)函數(shù)進(jìn)行程序的編寫。App.c中增加函數(shù),程序。程序收到一個字節(jié)數(shù)據(jù)后立馬回發(fā),并在顯示屏上顯示接收到的字節(jié)數(shù)

10

11

12

上位機(jī)測試軟件,上電后先發(fā)個55,AA

13

顯示效果和硬件接線,直接使用的是TTL轉(zhuǎn)USB轉(zhuǎn)接頭

14

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

    關(guān)注

    22

    文章

    1219

    瀏覽量

    101118
收藏 人收藏

    評論

    相關(guān)推薦

    uart數(shù)據(jù)收發(fā)不成功

    我在做uart實(shí)驗(yàn)時,波特率57600,能夠成功收發(fā)數(shù)據(jù),我改成115200,根據(jù)公式UBRDIVn = (int)(12000000/(115200 x 16)) -1= (int)(6.5) -1= 6 -1 = 5計(jì)算UB
    發(fā)表于 05-20 05:45

    如何去實(shí)現(xiàn)UART阻塞方式收發(fā)數(shù)據(jù)

    如何去實(shí)現(xiàn)UART阻塞方式收發(fā)數(shù)據(jù)呢?如何去實(shí)現(xiàn)UART中斷方式收發(fā)數(shù)據(jù)呢?
    發(fā)表于 12-08 06:50

    淺談HAL庫uart數(shù)據(jù)收發(fā)與部分源碼

    HAL 庫uart 數(shù)據(jù)收發(fā)與部分源碼介紹提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加例如:第一章 Python 機(jī)器學(xué)習(xí)入門之pandas的使用提示:寫完文章后,
    發(fā)表于 01-21 07:31

    UART通用異步收發(fā)傳輸器接收數(shù)據(jù)是怎樣的

    UART是什么? UART通用異步收發(fā)傳輸器接收數(shù)據(jù)是怎樣的?
    發(fā)表于 02-16 07:47

    實(shí)測ch554_uart_2_uart.rar操作CH340G收發(fā),接收總是少收到幾個怎么處理

    實(shí)測ch554_uart_2_uart.rar這個示例,波特率調(diào)為115200,主頻24M,操作CH340G(TXD與RXD短接)收發(fā),批量發(fā)送8K數(shù)據(jù),接收總是少收到幾個,是速度只能
    發(fā)表于 06-13 07:27

    CW32單片機(jī)UART基本數(shù)據(jù)收發(fā)功能介紹

    通用異步收發(fā)器(Universal Asynchronous Receiver/Transmitter:UART),是一種通用串行數(shù)據(jù)總線,常用于系統(tǒng)內(nèi)各子模塊間的數(shù)據(jù)交換。以CW32
    發(fā)表于 04-19 10:18

    UART收發(fā)器設(shè)計(jì)實(shí)例

    UART(Universal Asynchronous Receiver Transmitter,通用異步收發(fā)器)是廣泛使用的異步串行數(shù)據(jù)通信協(xié)議。下面首先介紹
    發(fā)表于 07-22 11:24 ?113次下載
    <b class='flag-5'>UART</b><b class='flag-5'>收發(fā)</b>器設(shè)計(jì)實(shí)例

    通用異步收發(fā)器(UART

    通用異步收發(fā)器(UART
    發(fā)表于 10-11 14:53 ?21次下載
    通用異步<b class='flag-5'>收發(fā)</b>器(<b class='flag-5'>UART</b>

    UART收發(fā)器的設(shè)計(jì)實(shí)例詳細(xì)說明

    UART(Universal Asynchronous Receiver Transmitter,通用異步收發(fā)器)是廣泛使用的異步串行數(shù)據(jù)通信協(xié)議。下面首先介紹
    發(fā)表于 12-27 08:00 ?4次下載
    <b class='flag-5'>UART</b><b class='flag-5'>收發(fā)</b>器的設(shè)計(jì)實(shí)例詳細(xì)說明

    STM8S_ 004_UART基本收發(fā)數(shù)據(jù)

    STM8S_004_UART基本收發(fā)數(shù)據(jù)
    的頭像 發(fā)表于 03-20 10:41 ?4385次閱讀
    STM8S_ 004_<b class='flag-5'>UART</b>基本<b class='flag-5'>收發(fā)</b><b class='flag-5'>數(shù)據(jù)</b>

    【CubeIDE】STM32 HAL庫史上最詳細(xì)教程(一):UART串口收發(fā)

    博主能力有限,有錯誤望大佬指出  0x00 文章內(nèi)容:UART阻塞方式收發(fā)UART中斷方式收發(fā)UART中斷回調(diào)函數(shù)
    發(fā)表于 11-23 17:51 ?12次下載
    【CubeIDE】STM32 HAL庫史上最詳細(xì)教程(一):<b class='flag-5'>UART</b>串口<b class='flag-5'>收發(fā)</b>

    CC2640R2F開發(fā)之:UART串口收發(fā)&TI-RTOS任務(wù)創(chuàng)建(二)

    對于藍(lán)牙的數(shù)據(jù)傳輸來說UART串口起到至關(guān)重要的作用,本篇將介紹CC2640R2F的UART串口使用方法,結(jié)合TI-RTOS操作系統(tǒng)與Rin
    發(fā)表于 11-30 10:21 ?10次下載
    CC2640R2F開發(fā)之:<b class='flag-5'>UART</b>串口<b class='flag-5'>收發(fā)</b>&TI-RTOS任務(wù)創(chuàng)建(二)

    CW32單片機(jī)UART基本數(shù)據(jù)收發(fā)功能介紹

    CW32單片機(jī)UART基本數(shù)據(jù)收發(fā)功能介紹
    的頭像 發(fā)表于 10-24 16:50 ?699次閱讀
    CW32單片機(jī)<b class='flag-5'>UART</b>基本<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>收發(fā)</b>功能<b class='flag-5'>介紹</b>

    UART通用異步收發(fā)器原理是什么

    /Transmitter,通常稱為UART)是一種異步收發(fā)傳輸器,用處非常廣泛,幾乎兩個單片機(jī)間的通訊、USB-TTL、RS-232都是使用UART協(xié)]協(xié)議,將數(shù)據(jù)通過串列通訊進(jìn)行傳輸
    的頭像 發(fā)表于 11-09 17:32 ?707次閱讀
    <b class='flag-5'>UART</b>通用異步<b class='flag-5'>收發(fā)</b>器原理是什么

    SDIO UART和音頻電壓轉(zhuǎn)換收發(fā)器TWL1200數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《SDIO UART和音頻電壓轉(zhuǎn)換收發(fā)器TWL1200數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-29 10:16 ?0次下載
    SDIO <b class='flag-5'>UART</b>和音頻電壓轉(zhuǎn)換<b class='flag-5'>收發(fā)</b>器TWL1200<b class='flag-5'>數(shù)據(jù)</b>表