迪文串列埠屏與STM32的通訊

2021-10-13 01:14:54 字數 670 閱讀 5200

最近由於學習需要,需要使用迪文串列埠屏與stm32做乙個通訊測試實驗。因為是剛接觸這兩種裝置,在一開始的時候遇到了很多困難。好在網上資源十分豐富,csdn的大佬們寫的部落格內容也十分給力,通過一段時間的學習摸索,最終完成了這個實驗。在此將這個過程和程式分享給大家,希望能對將來有需要的人提供多乙個參考。

實驗的目的很簡單,就是通過開發板上的key0控制指示燈led0的亮滅,同時迪文屏上也有乙個指示燈和開關。兩邊開關對燈的控制是同步的,即無論哪邊按下開或關,開發板和屏上的燈都會做出相同的反應,並且可以對開啟的次數進行計數,並顯示在屏上,可以對這個計數進行重置。

串列埠接收使用的是idle空閒中斷,可以在接收完一幀資料後產生這個中斷,對於不定長度的接收十分管用。最初我是打算改寫正點原子例程中的串列埠接收程式,他那裡面有個對回車換行的判斷,還有個接收完成標誌位,不是那麼好理解,花了幾天看懂了,改寫後是去掉了回車換行,但是只能實現對固定長度資料幀的判斷,且**邏輯上比較繁瑣,因為我還很菜改的不好。後來想到這個idle中斷,參考了網上一位先生的**,移植到了我的程式中,完美的解決了這個問題。

原**:[link](

我用的方法比較原始,就是直接在接收到屏上按鍵的返回值後對其進行判斷,然後傳送相應的控制指令給屏,但是越簡單的系統出錯的機率也就越小,這樣也是一種穩妥之舉。

附上我的程式,還是有一些問題在裡面的,歡迎各位大佬指正。

[link](

STM32之串列埠通訊

一 rs232通訊協議 1 概念 個人計算機上的通訊介面之一,由電子工業協會 electronic industries association,eia 所制定的非同步傳輸標準介面。2 電氣特性 邏輯1 mark 3v 15v 邏輯0 space 3 15v 3 介面 實現全雙工非同步通訊只需要三根...

stm32之串列埠通訊

1 首先對tx和rx進行配置 void init gpio void 2 對串列埠進行配置 3 對總中斷進行配置 4 傳送中斷 void usart1 it void 5 傳送位元組和字串 void usart sendbyte usart typedef pusartx,uint8 t ch vo...

基於STM32的串列埠通訊

序列通訊一般是以幀格式傳輸資料,即一幀一幀的傳輸,每一幀都含有起始訊號,資料資訊以及停止資訊等。資料各個位同時傳輸,速度快,但是占用引腳資源多。eg led1602 資料按位順序傳輸,占用引腳資源少,但是速度相對較慢。一位一位傳輸 bit iic spi 串列埠通訊 單工,半雙工,全雙工 同步通訊 ...