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

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

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

USART基礎(chǔ)知識(shí)點(diǎn)復(fù)習(xí)

PCB_001_YXF ? 來源:自豪三王 ? 作者:自豪三王 ? 2022-11-21 11:32 ? 次閱讀

本文解答三問題:

1 串口是什么,

2 串口數(shù)據(jù)從哪里來,

3 串口數(shù)據(jù)去向何方。

術(shù)語:

1formula 對(duì)應(yīng)公式

2parity even奇校驗(yàn) odd偶校驗(yàn)

3TXE 發(fā)送數(shù)據(jù)寄存器空 (Transmitdataregisterempty)

4TC發(fā)送完成 (Transmissioncomplete)

5RXNE讀數(shù)據(jù)寄存器非空readdataregisternotempty

6 abandon 放棄

串口通訊中物理層:

1規(guī)定數(shù)據(jù)傳輸介質(zhì)

協(xié)議層:

1規(guī)定傳輸?shù)男问剑y(tǒng)一雙方的數(shù)據(jù)打包方式,解包標(biāo)準(zhǔn)

電平標(biāo)準(zhǔn):

1TTL 電平為3.3V 0v

2RS232 +15v到-15v

3 485電平 +2-+6表示1,-2--6表示0

232標(biāo)準(zhǔn)串口主要用于工業(yè)設(shè)備直接通信

1高低電平標(biāo)準(zhǔn)較高,用于抗干擾,以及抗靜電 使用峰峰值 進(jìn)行抗干擾

2max3232 sp3232 轉(zhuǎn)換芯片上有獨(dú)立的供電接口

3DB9端口上 大頭開始的端口為1腳,對(duì)于公頭 2/3分別為 R/T 對(duì)于母頭2/3為T/R

串口校驗(yàn)位

1奇校驗(yàn) 數(shù)據(jù)1對(duì)應(yīng)的數(shù)量不為奇數(shù),校驗(yàn)位,補(bǔ)充一位1

2偶校驗(yàn) 數(shù)據(jù)1對(duì)應(yīng)的數(shù)據(jù)量不為偶數(shù),校驗(yàn)位,補(bǔ)充一位1

3無校驗(yàn) 數(shù)據(jù)位中不包含校驗(yàn)位

串口模式:

對(duì)應(yīng)兩種模式,發(fā)送模式,以及接收模式 硬件控制流,

異步發(fā)送數(shù)據(jù),數(shù)據(jù)發(fā)送幀中插入有效的標(biāo)志位

polarity極性 phase相位

時(shí)鐘極性:

1 0總線空閑時(shí)CK引腳上保持低電平

1總線空閑時(shí)CK引腳上保持高電平

2部分串口上不支持時(shí)鐘極性的配置方式

時(shí)鐘相位 :

1 0 :在時(shí)鐘的第一個(gè)邊沿進(jìn)行數(shù)據(jù)采集

2 1:在時(shí)鐘的第二個(gè)邊沿進(jìn)行數(shù)據(jù)采集

總結(jié):

時(shí)鐘中極性以及相位:方式保持一致即可,主機(jī)需要適配從機(jī)上通訊方式

LBCL:最后一位時(shí)鐘脈沖

1 0最后一位數(shù)據(jù)的時(shí)鐘脈沖不從CK輸出

2 1最后一位的時(shí)鐘脈沖會(huì)從CK輸出

deInit復(fù)位寄存器數(shù)值

編程之前,需要對(duì)庫中使用到函數(shù)進(jìn)行查看,否則會(huì)導(dǎo)致編程中出現(xiàn)不知道如何使用函數(shù)這種問題

串口初始化:

1BSP BoardSupport Package板極支持包 硬件設(shè)計(jì)相關(guān)的代碼都被封裝在BSP中,代碼層次設(shè)計(jì),進(jìn)行抽象 單獨(dú)設(shè)計(jì)

2使用條件編譯,定義頭文件,主要用來防止多個(gè)文件中重復(fù)對(duì)此頭文件進(jìn)行調(diào)用,之后對(duì)應(yīng)變量被重復(fù)定義使用

3串口模式可以進(jìn)行設(shè)置,可發(fā)送可接收,可兩者同時(shí)操作

4數(shù)據(jù)發(fā)送,調(diào)用庫中發(fā)送單字節(jié)的函數(shù)進(jìn)行數(shù)據(jù)籌備,之后,通過while函數(shù),對(duì)數(shù)據(jù)發(fā)送緩沖區(qū)是否為空進(jìn)行判斷,非set為真

后期串口上數(shù)據(jù)處理,都需要進(jìn)行檢查

5定義變量一定要寫上變量初始數(shù)值,防止變量初始化之后,對(duì)應(yīng)的數(shù)值不正確且很難找到問題點(diǎn)

6字符串中進(jìn)行最后一位數(shù)據(jù)判斷,可以對(duì)數(shù)據(jù)進(jìn)行提取,之后判定數(shù)據(jù)是否為 ''判斷字符串中對(duì)應(yīng)數(shù)據(jù)是否發(fā)送完成

7printf函數(shù)是一個(gè)標(biāo)準(zhǔn)的c語言函數(shù) 使用此函數(shù)需要使用 stdio.h頭文件

8printf函數(shù)會(huì)使用到fputc這個(gè)函數(shù),代碼中需要對(duì)fputc函數(shù)進(jìn)行實(shí)現(xiàn),之后,可正常使用print函數(shù)進(jìn)行數(shù)據(jù)打印輸出

7667c76e-67ef-11ed-8abf-dac502259ad0.png

10 putchar函數(shù)也可以正常使用 putchar(‘A’); C語言中標(biāo)準(zhǔn)庫對(duì)應(yīng)的操作方式

11進(jìn)行數(shù)據(jù)發(fā)送,不勾選16進(jìn)制數(shù)據(jù)顯示的情況下,部分?jǐn)?shù)據(jù)不能正常顯示

串口號(hào)進(jìn)行切換

1使用宏定義對(duì)不同的串口進(jìn)行區(qū)分,開啟指定宏定義實(shí)現(xiàn)串口中通訊需求

2不同的串口,需要使能的時(shí)鐘不同

3中斷函數(shù)名,來自啟動(dòng)文件

4串口數(shù)據(jù)接收:

1串口接收中斷參數(shù)配置,開始對(duì)搶占優(yōu)先級(jí)進(jìn)行配置

2后續(xù)串口上數(shù)據(jù)交互,必須對(duì)寄存器標(biāo)志進(jìn)行判斷 發(fā)送數(shù)據(jù),接收數(shù)據(jù)標(biāo)志

3使用getchar函數(shù),單片機(jī)上可以接收外部數(shù)據(jù)

4 C語言中常規(guī)數(shù)據(jù)收發(fā)的方式,在單片機(jī)中需要進(jìn)行特殊處理,考慮到實(shí)際工控應(yīng)用,單片機(jī)中數(shù)據(jù)處理需要進(jìn)行合理的解析

5串口中發(fā)送的數(shù)據(jù)需要區(qū)分是字符還是數(shù)字

6串口參數(shù)進(jìn)行配置中,需要先對(duì)芯片中資源以及擁有的IO進(jìn)行統(tǒng)計(jì)

7IO重映射主要針對(duì)芯片上IO合理布局做出的決策

8數(shù)據(jù)寄存器 DR 一個(gè)數(shù)據(jù)發(fā)送寄存器TDR 和一個(gè)接收數(shù)據(jù)寄存器RDR 一個(gè)地址對(duì)應(yīng)兩個(gè)物理內(nèi)存

9寄存器中,使用0 / 1映射到實(shí)際的數(shù)字上 設(shè)備上端口不夠使用的情況下,可使用此種方法

10單片機(jī)中時(shí)鐘為外設(shè)工作的心臟,要是時(shí)鐘不工作,外設(shè)上也就不會(huì)正常運(yùn)轉(zhuǎn)

11串口使能開啟,需要UE =1 TE = 1 發(fā)送數(shù)據(jù)時(shí),對(duì)應(yīng)數(shù)據(jù)流向?yàn)?a href="http://srfitnesspt.com/tags/dma/" target="_blank">DMA或者 cpu兩種渠道

12波特率 每秒鐘要發(fā)送多少數(shù)據(jù) 【二進(jìn)制位】

串口中寄存器說明

7696cf32-67ef-11ed-8abf-dac502259ad0.png

TXE 用來判斷數(shù)據(jù) 發(fā)送數(shù)據(jù)寄存器 先將數(shù)據(jù)放置到發(fā)送數(shù)據(jù)寄存器中,之后將數(shù)據(jù)移動(dòng)到發(fā)送移位寄存器中 對(duì)應(yīng)到寄存器為txc為數(shù)據(jù)傳輸標(biāo)志位

TC標(biāo)志位對(duì)應(yīng)的是數(shù)據(jù)發(fā)送完成

串口上時(shí)鐘進(jìn)行計(jì)算,需要先確定時(shí)鐘來源

76d534c0-67ef-11ed-8abf-dac502259ad0.png

定時(shí)器以及串口上使用時(shí)鐘,分別掛載在APB1 APB2

備注:

1 后續(xù)設(shè)備使用GD32芯片,可以考慮提升芯片上串口波特率 ,或者使用同步串口進(jìn)行數(shù)據(jù)傳輸

2 單片機(jī)中對(duì)小數(shù)進(jìn)行表示,精度為bit位對(duì)應(yīng)有效數(shù)據(jù)分之1 波特率寄存器表示精度 1 / 16

3 計(jì)算出波特率對(duì)應(yīng)數(shù)值,小數(shù)部分?jǐn)?shù)值 / 1 / 16對(duì)應(yīng)數(shù)值為 小數(shù)部分對(duì)應(yīng)的轉(zhuǎn)化數(shù)字,實(shí)際數(shù)據(jù) /精度 =數(shù)量級(jí)

4 波特率相關(guān)參數(shù)計(jì)算,可以使用宏定義 ,使用公式自己進(jìn)行計(jì)算,最終實(shí)現(xiàn)賦值

祝各位:前程似錦。

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

    關(guān)注

    1

    文章

    257

    瀏覽量

    24786
  • USART
    +關(guān)注

    關(guān)注

    1

    文章

    195

    瀏覽量

    30740

原文標(biāo)題:USART 基礎(chǔ)知識(shí)點(diǎn)復(fù)習(xí)

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用PADS軟件進(jìn)行PCB設(shè)計(jì),有哪些基礎(chǔ)知識(shí)點(diǎn)?

    使用PADS軟件進(jìn)行PCB設(shè)計(jì),有哪些基礎(chǔ)知識(shí)點(diǎn)?發(fā)現(xiàn)知識(shí)點(diǎn)很多、很雜、很亂,有沒有聚合歸納統(tǒng)一的內(nèi)容給到
    發(fā)表于 08-20 12:07

    BFC的基礎(chǔ)知識(shí)點(diǎn)有哪些?

    BFC的基礎(chǔ)知識(shí)點(diǎn):css盒模型清除浮動(dòng) div水平垂直居中原型和原型鏈
    發(fā)表于 11-05 06:02

    FPGA的基礎(chǔ)知識(shí)點(diǎn)及工作原理是什么

    FPGA的基礎(chǔ)知識(shí)點(diǎn)及工作原理是什么
    發(fā)表于 04-30 06:14

    求大神分享光電技術(shù)與光纖基礎(chǔ)知識(shí)點(diǎn)

    求大神分享光電技術(shù)與光纖基礎(chǔ)知識(shí)點(diǎn)
    發(fā)表于 10-12 07:10

    淺談幾個(gè)C語言基礎(chǔ)知識(shí)點(diǎn)

    文章目錄前言一、位操作二、使用步驟前言這里主要是簡單的復(fù)習(xí)一下幾個(gè) C 語言基礎(chǔ)知識(shí)點(diǎn),引導(dǎo)那些 C 語言基礎(chǔ)知識(shí)不是很扎實(shí)的用戶能夠快速開發(fā) STM32 程序。提示:以下是本篇文章正文內(nèi)容一、位
    發(fā)表于 12-09 07:14

    STM32時(shí)鐘樹的基礎(chǔ)知識(shí)點(diǎn)匯總,絕對(duì)實(shí)用

    STM32時(shí)鐘樹的基礎(chǔ)知識(shí)點(diǎn)匯總,絕對(duì)實(shí)用
    發(fā)表于 02-14 07:49

    STM32 IIC和USART接口的基礎(chǔ)知識(shí)點(diǎn)匯總,絕對(duì)實(shí)用

    STM32 IIC和USART接口的基礎(chǔ)知識(shí)點(diǎn)匯總,絕對(duì)實(shí)用
    發(fā)表于 02-22 08:00

    單片機(jī)原理及應(yīng)用考試復(fù)習(xí)知識(shí)點(diǎn)

    單片機(jī)原理及應(yīng)用考試復(fù)習(xí)知識(shí)點(diǎn)挺全的。
    發(fā)表于 01-11 14:54 ?0次下載

    復(fù)習(xí)圖像處理知識(shí)點(diǎn)

    中南大學(xué)數(shù)字圖像預(yù)處理復(fù)習(xí)知識(shí)點(diǎn),里面包含里所有的考點(diǎn),可以參考。很全面。
    發(fā)表于 05-10 15:48 ?0次下載

    《電工基礎(chǔ)》知識(shí)點(diǎn)復(fù)習(xí)題快來復(fù)習(xí)做作看吧!

    本文檔的主要內(nèi)容詳細(xì)介紹的是《電工基礎(chǔ)》知識(shí)點(diǎn)復(fù)習(xí)題快來復(fù)習(xí)做作看吧!免費(fèi)下載。
    發(fā)表于 09-29 18:08 ?49次下載
    《電工基礎(chǔ)》<b class='flag-5'>知識(shí)點(diǎn)</b><b class='flag-5'>復(fù)習(xí)</b>題快來<b class='flag-5'>復(fù)習(xí)</b>做作看吧!

    Java知識(shí)點(diǎn)復(fù)習(xí)題和答案資料總結(jié)免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Java知識(shí)點(diǎn)復(fù)習(xí)題和答案資料總結(jié)免費(fèi)下載。
    發(fā)表于 12-20 10:37 ?6次下載

    信號(hào)與系統(tǒng)復(fù)習(xí)要點(diǎn)知識(shí)點(diǎn)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是信號(hào)與系統(tǒng)復(fù)習(xí)要點(diǎn)知識(shí)點(diǎn)資料免費(fèi)下載。
    發(fā)表于 04-22 08:00 ?0次下載
    信號(hào)與系統(tǒng)<b class='flag-5'>復(fù)習(xí)</b>要點(diǎn)<b class='flag-5'>知識(shí)點(diǎn)</b>資料免費(fèi)下載

    單片機(jī)主要復(fù)習(xí)知識(shí)點(diǎn)及思考與練習(xí)資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)主要復(fù)習(xí)知識(shí)點(diǎn)及思考與練習(xí)資料合集免費(fèi)下載。
    發(fā)表于 08-08 17:33 ?1次下載
    單片機(jī)主要<b class='flag-5'>復(fù)習(xí)</b><b class='flag-5'>知識(shí)點(diǎn)</b>及思考與練習(xí)資料合集免費(fèi)下載

    電力基礎(chǔ)知識(shí)點(diǎn)合集

    電力基礎(chǔ)知識(shí)點(diǎn)合集
    發(fā)表于 03-14 16:35 ?0次下載

    詳解射頻微波基礎(chǔ)知識(shí)點(diǎn)

    詳解射頻微波基礎(chǔ)知識(shí)點(diǎn)
    的頭像 發(fā)表于 01-29 10:28 ?2226次閱讀