本文解答三問題:
1 串口是什么,
2 串口數(shù)據(jù)從哪里來,
3 串口數(shù)據(jù)去向何方。
術(shù)語:
1formula 對應(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腳,對于公頭 2/3分別為 R/T 對于母頭2/3為T/R
串口校驗(yàn)位
1奇校驗(yàn) 數(shù)據(jù)1對應(yīng)的數(shù)量不為奇數(shù),校驗(yàn)位,補(bǔ)充一位1
2偶校驗(yàn) 數(shù)據(jù)1對應(yīng)的數(shù)據(jù)量不為偶數(shù),校驗(yàn)位,補(bǔ)充一位1
3無校驗(yàn) 數(shù)據(jù)位中不包含校驗(yàn)位
串口模式:
對應(yīng)兩種模式,發(fā)送模式,以及接收模式 硬件控制流,
異步發(fā)送數(shù)據(jù),數(shù)據(jù)發(fā)送幀中插入有效的標(biāo)志位
polarity極性 phase相位
時鐘極性:
1 0總線空閑時CK引腳上保持低電平
1總線空閑時CK引腳上保持高電平
2部分串口上不支持時鐘極性的配置方式
時鐘相位 :
1 0 :在時鐘的第一個邊沿進(jìn)行數(shù)據(jù)采集
2 1:在時鐘的第二個邊沿進(jìn)行數(shù)據(jù)采集
總結(jié):
時鐘中極性以及相位:方式保持一致即可,主機(jī)需要適配從機(jī)上通訊方式
LBCL:最后一位時鐘脈沖
1 0最后一位數(shù)據(jù)的時鐘脈沖不從CK輸出
2 1最后一位的時鐘脈沖會從CK輸出
deInit復(fù)位寄存器數(shù)值
編程之前,需要對庫中使用到函數(shù)進(jìn)行查看,否則會導(dǎo)致編程中出現(xiàn)不知道如何使用函數(shù)這種問題
串口初始化:
1BSP BoardSupport Package板極支持包 硬件設(shè)計相關(guān)的代碼都被封裝在BSP中,代碼層次設(shè)計,進(jìn)行抽象 單獨(dú)設(shè)計
2使用條件編譯,定義頭文件,主要用來防止多個文件中重復(fù)對此頭文件進(jìn)行調(diào)用,之后對應(yīng)變量被重復(fù)定義使用
3串口模式可以進(jìn)行設(shè)置,可發(fā)送可接收,可兩者同時操作
4數(shù)據(jù)發(fā)送,調(diào)用庫中發(fā)送單字節(jié)的函數(shù)進(jìn)行數(shù)據(jù)籌備,之后,通過while函數(shù),對數(shù)據(jù)發(fā)送緩沖區(qū)是否為空進(jìn)行判斷,非set為真
后期串口上數(shù)據(jù)處理,都需要進(jìn)行檢查
5定義變量一定要寫上變量初始數(shù)值,防止變量初始化之后,對應(yīng)的數(shù)值不正確且很難找到問題點(diǎn)
6字符串中進(jìn)行最后一位數(shù)據(jù)判斷,可以對數(shù)據(jù)進(jìn)行提取,之后判定數(shù)據(jù)是否為 ''判斷字符串中對應(yīng)數(shù)據(jù)是否發(fā)送完成
7printf函數(shù)是一個標(biāo)準(zhǔn)的c語言函數(shù) 使用此函數(shù)需要使用 stdio.h頭文件
8printf函數(shù)會使用到fputc這個函數(shù),代碼中需要對fputc函數(shù)進(jìn)行實(shí)現(xiàn),之后,可正常使用print函數(shù)進(jìn)行數(shù)據(jù)打印輸出

10 putchar函數(shù)也可以正常使用 putchar(‘A’); C語言中標(biāo)準(zhǔn)庫對應(yīng)的操作方式
11進(jìn)行數(shù)據(jù)發(fā)送,不勾選16進(jìn)制數(shù)據(jù)顯示的情況下,部分?jǐn)?shù)據(jù)不能正常顯示
串口號進(jìn)行切換
1使用宏定義對不同的串口進(jìn)行區(qū)分,開啟指定宏定義實(shí)現(xiàn)串口中通訊需求
2不同的串口,需要使能的時鐘不同
3中斷函數(shù)名,來自啟動文件
4串口數(shù)據(jù)接收:
1串口接收中斷參數(shù)配置,開始對搶占優(yōu)先級進(jìn)行配置
2后續(xù)串口上數(shù)據(jù)交互,必須對寄存器標(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)行配置中,需要先對芯片中資源以及擁有的IO進(jìn)行統(tǒng)計
7IO重映射主要針對芯片上IO合理布局做出的決策
8數(shù)據(jù)寄存器 DR 一個數(shù)據(jù)發(fā)送寄存器TDR 和一個接收數(shù)據(jù)寄存器RDR 一個地址對應(yīng)兩個物理內(nèi)存
9寄存器中,使用0 / 1映射到實(shí)際的數(shù)字上 設(shè)備上端口不夠使用的情況下,可使用此種方法
10單片機(jī)中時鐘為外設(shè)工作的心臟,要是時鐘不工作,外設(shè)上也就不會正常運(yùn)轉(zhuǎn)
11串口使能開啟,需要UE =1 TE = 1 發(fā)送數(shù)據(jù)時,對應(yīng)數(shù)據(jù)流向?yàn)?a href="http://www.brongaenegriffin.com/tags/dma/" target="_blank">DMA或者 cpu兩種渠道
12波特率 每秒鐘要發(fā)送多少數(shù)據(jù) 【二進(jìn)制位】
串口中寄存器說明

TXE 用來判斷數(shù)據(jù) 發(fā)送數(shù)據(jù)寄存器 先將數(shù)據(jù)放置到發(fā)送數(shù)據(jù)寄存器中,之后將數(shù)據(jù)移動到發(fā)送移位寄存器中 對應(yīng)到寄存器為txc為數(shù)據(jù)傳輸標(biāo)志位
TC標(biāo)志位對應(yīng)的是數(shù)據(jù)發(fā)送完成
串口上時鐘進(jìn)行計算,需要先確定時鐘來源

定時器以及串口上使用時鐘,分別掛載在APB1 APB2
備注:
1 后續(xù)設(shè)備使用GD32芯片,可以考慮提升芯片上串口波特率 ,或者使用同步串口進(jìn)行數(shù)據(jù)傳輸
2 單片機(jī)中對小數(shù)進(jìn)行表示,精度為bit位對應(yīng)有效數(shù)據(jù)分之1 波特率寄存器表示精度 1 / 16
3 計算出波特率對應(yīng)數(shù)值,小數(shù)部分?jǐn)?shù)值 / 1 / 16對應(yīng)數(shù)值為 小數(shù)部分對應(yīng)的轉(zhuǎn)化數(shù)字,實(shí)際數(shù)據(jù) /精度 =數(shù)量級
4 波特率相關(guān)參數(shù)計算,可以使用宏定義 ,使用公式自己進(jìn)行計算,最終實(shí)現(xiàn)賦值
祝各位:前程似錦。
-
串口通訊
+關(guān)注
關(guān)注
2文章
266瀏覽量
26278 -
USART
+關(guān)注
關(guān)注
1文章
202瀏覽量
33032
原文標(biāo)題:USART 基礎(chǔ)知識點(diǎn)復(fù)習(xí)
文章出處:【微信號:自豪三王,微信公眾號:自豪三王】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
使用PADS軟件進(jìn)行PCB設(shè)計,有哪些基礎(chǔ)知識點(diǎn)?
淺談幾個C語言基礎(chǔ)知識點(diǎn)
STM32 IIC和USART接口的基礎(chǔ)知識點(diǎn)匯總,絕對實(shí)用
單片機(jī)原理及應(yīng)用考試復(fù)習(xí)知識點(diǎn)
復(fù)習(xí)圖像處理知識點(diǎn)
《電工基礎(chǔ)》知識點(diǎn)復(fù)習(xí)題快來復(fù)習(xí)做作看吧!
Java知識點(diǎn)的復(fù)習(xí)題和答案資料總結(jié)免費(fèi)下載
信號與系統(tǒng)復(fù)習(xí)要點(diǎn)知識點(diǎn)資料免費(fèi)下載
單片機(jī)主要復(fù)習(xí)知識點(diǎn)及思考與練習(xí)資料合集免費(fèi)下載
USART基礎(chǔ)知識點(diǎn)復(fù)習(xí)
評論