微控制器與上位機通過串列埠通訊 筆記

2021-10-05 03:43:12 字數 2098 閱讀 2931

先說什麼是串列埠?

(1)他是一種通訊介面,微控制器 io 口上的復用功能,上位機(電腦)和下位機(開發板) 之間的資料傳輸。

(2)序列介面簡稱串列埠,也稱序列通訊介面或序列通訊介面(通常指 com 接 口),是採用序列通訊方式的擴充套件介面。

(3)序列介面(serial inte***ce)是指資料一 位一位地順序傳送。其特點是通訊線路簡單,只要一對傳輸線就可以實現雙向 通 信(可以直接利用**線作為傳輸線),大大降低了成本,特別適用於遠距 離通訊,但傳送速度較慢。

(4)串列埠是一種介面標準,它規定了介面的電氣標準,沒有規定介面外掛程式電纜以及使用的協議。。

單工通訊:單向傳輸,只能接受或者傳送 例如:收音機 遙控器 廣播

半雙工通訊:同一時間 只能接受或者傳送 例如:對講機

全雙工通訊:同一時間,既可以接收資料也可以傳送資料 例如:手機

序列通訊:資料按位傳輸,一位一位的傳輸

並行通訊:資料按照多位進行傳輸,一次傳送或者接收多位資料

非同步通訊:接收方和傳送方使用不同的時鐘頻率

同步通訊:接收方和傳送方使用相同的的時鐘頻率

usart 全稱:universal synchronous/asynchronous receiver/transmitter 序列同步/非同步收發器

uart 全稱:universal asynchronous receiver/transmitter 序列非同步收發器

(1)起始位:乙個字元乙個字元地傳輸,每個字元一位一位地傳輸,並且傳輸乙個字元時,總是以「起 始位」開始,以「停止位」結束,字元之間沒有固定的時間間隔要求。

(2)資料位:要傳送的資料

(3)奇偶校驗:在標準 ascii 碼中,其最高位(b7)用作奇偶校驗位。所謂奇偶校驗,是指在**傳送過程

中用來檢驗是否出現錯誤的一種方法,一般分奇校驗和偶校驗兩種。

奇校驗規定:正確的代 碼乙個位元組中 1 的個數必須是奇數,若非奇數,則在最高位 b7 添 1;

偶校驗規定:正確的 **乙個位元組中 1 的個數必須是偶數,若非偶數,則在最高位 b7 添 1。

(4)停止位:停止位是按長度來算的。序列非同步通訊從計時開始,以單位時間為間隔(乙個單位時間 就是波特率的倒數),依次接受所規定的資料位和奇偶校驗位,並拼裝成乙個字元的並行字 節;此後應接收到規定長度的停止位「1」。所以說,停止位都是「1」,1.5 是它的長度,即 停止位的高電平保持 1.5 個單位時間長度。一般來講,停止位有 1,1.5,2 個單位時間三種 長度。

(5)波特率:波特率的產生:

我們一般說的波特率就是前邊的tx/rx波特率,但是微控制器真正識別的是分母上的usartdiv,包括小數和整數

例如:以baud為9600

fck以72mhz為例

求得微控制器識別的usartdiv:

9600=72 000 000/ 16 *usartdiv

這裡得到usartdiv=468.75

usartdiv的值是放入從usart_brr暫存器的,前四位放置小數部分,後12位放置整數部分,最後的16到31位保留

ch340 是乙個usb 匯流排的轉接晶元,實現usb 轉串列埠、usb 轉irda 紅外或者usb 轉列印口。

在串列埠方式下,ch340 提供常用的modem聯絡訊號,用於為計算機擴充套件非同步串列埠,或者將普通的串列埠裝置直接公升級到usb 匯流排。

電腦通過usb傳送資料經過ch340轉化為微控制器可識別的資料;

也可以說是把usb口的訊號轉為ttl電平的rs232串列埠訊號

就像是兩個不同語言的外國人一樣,他們如果要實現資訊交流,就要有乙個精通這兩國語言的翻譯官,去分別翻譯兩個人的話給另乙個人聽,以此達到交流的目的。

微控制器串列埠通訊

微控制器串列埠通訊 通常的usb序列通訊方式為全雙工,即兩條資料線 rxd和txd,一條用於傳送資料,一條用於接收資料。在序列通訊前,需要對序列通訊進行配置。對於微控制器 ri為接受中斷標誌位,未通訊時ri 0 當電腦傳送第乙個位元組幀a0到微控制器時,sbuf a0,中斷標誌位ri 1,微控制器呼...

微控制器串列埠通訊

1 需求 實現電腦端控制微控制器開啟燈光風扇,顯示微控制器傳遞過來的資料 如溫度 濕度等 2 工具 平台軟體 驅動人生 vs2012 keil4 3 下面就開始吧 4 檢視我們當前的通訊埠號 如圖 然後確定我們微控制器的晶振,我是用的是11.0592m的 即9600 差不多我們就可以開始我們的開發了...

微控制器串列埠通訊

1 每隔1秒鐘,a向b通過串列埠傳送乙個位元組c num 該位元組按照0x00 0x09迴圈,例如某一時刻傳送c num 0x 3 2 b接收到資料後,做9 c num的計算,並將計算結果通過串列埠傳送給a微控制器。例如b接收到0x03,則b要通過串列埠返回0x09 0x03 0x06給微控制器a ...