STM32再學習 實現完美的RS485

2021-09-30 10:43:04 字數 679 閱讀 4217

首發自:

在遠距離通訊中,難免受干擾,因此,偉大的牛人們就創造了一種差分傳輸的方式——rs485通訊方式(以下簡稱rs485)。rs485由兩根差分線來傳輸資料,比起rs232來說,其傳輸的距離更遠,搞干擾性更強。當然,也為了節省銀子,因此,只保留了一組差分線,也就只能完成同一時刻只接收或傳送資料的半雙工通訊了。

在設計中,我們經常使用乙個名為max485的晶元來完成ttl電平至差分電平的轉換,這款晶元有乙個de(傳送使能)引腳控制著rs485線的資料傳輸方向,而這個引腳何時高電平,何時低電平對我們的資料交換質量也就起著重大的作用。

我們先來看一下de引腳的作用。當主裝置完成傳送後,其需要在1byte的時間內釋放rs485匯流排,否則從裝置在收到資料後,再回送資料時就會與主裝置對匯流排占用的問題而產生衝突,這在rs485匯流排上是不允許的——rs485匯流排沒有仲裁機制。因此,de引腳就需要在主裝置傳送完成最後乙個位元組的最後一位資料的一位時間內將de引腳從高電平拉到低電平。

stm32微處理器提供乙個應用例項來實現精確、高效地控制de引腳。這裡我們使用dma方式通過uart傳送與接收資料,那麼我們將會用到dma傳送完成中斷與usart傳送完成中斷。dma控制器監控著整個傳送過程,待傳送資料將會不斷地被存入usart資料暫存器直到dma計數減至零。當dma傳送完成後將觸發dma傳送完成中斷,我們就在這個中斷中,將de引腳的電平拉低。

我親愛的網友們,你們學會了嗎?

STM32再學習 啟動流程分析

我們寫嵌入式程式,基本上採用c語言來編寫,以main 作為程式的入口。但實際上,mian 並不是最先要執行的,在這之前需要做一些基本的工作,如堆 棧的定義 main函式的復位連線等,這些工作就需要乙個專門的啟動程 我們寫嵌入式程式,基本上採用c語言來編寫,以main 作為程式的入口。但實際上,mia...

stm32晶元休眠模式 stm32實現待機喚醒

stm32的低功耗模式有3種 1 睡眠模式 cm3核心停止,外設仍然執行 2 停機模式 所有時鐘都停止 3 待機模式 1.8v核心電源關閉 進入待機模式的方法,以及設定wk up引腳用於把stm32從待機模式喚醒的方法 一般步驟如下 1 設定sleepdeep位 scb scr的第二位 2 使能電源...

STM32學習筆記(3) 什麼是STM32

既然已經做好了開發stm32的準備,軟體硬體都準備好了,那麼我們來了解一下何為stm32吧。stm32是意法半導體 st 設計的一系列32位晶元的名字,細分為l f h三個系列。f系列是最經典的系列。f系列的基礎晶元是f1系列,低廉,麻雀雖小五臟俱全,我做課程設計最喜歡用的就是stm32f103c8...