兩種方法實現stm32的8個串列埠通訊

2021-07-05 11:26:58 字數 453 閱讀 6015

100引腳的stm32f103系列的stm32只有5個內建的串列埠控制器,那麼如何實現8個串列埠通訊呢?

方法1:

用普通的io模擬串列埠通訊。這裡除了io埠外,還需要乙個定時來控制傳送和接收的波特率。定時器的定時單位一般為1位資料的傳送時間。假設波特率為vrate,那麼定時時間為1/vrate;但是如果波特率比較大的話(256000bps),定時時間一般要<(1/vrate),因為一些其他額外指令的執行時間,不能忽略不計了。這種方法可以支援更多的埠.

方法2:usart的復用功能重對映,usart3支援3個埠(pb10-pb11,pd9-pd10),usart2支援2個埠(pa2-pa3,pd5,pd6),usart1支援2個埠(pa9-pa10,pb6-pb7),uart4支援乙個埠(pc10-pc11)urat5支援乙個埠(pc12-pd2),總共8個埠,不能同時通訊。相比第一種方法,程式設計要簡單一些,但是最多只能8個埠.

STM32兩種輸出除錯資訊的方法

方式一 基於segger的rtt方式,可直接使用jlink連線到目標板即可看到除錯資訊。優點 速度很快,即使是在中斷中呼叫也沒有問題,在帶系統的程式中也不需要開啟臨界保護 缺點 需要加入兩個segger提供的.c檔案及標頭檔案,不能輸出中文和浮點 原因可能是會降低速度 硬體連線 jlink的swdi...

STM32延時函式的三種方法

微控制器程式設計過程中經常用到延時函式,最常用的莫過於微秒級延時delay us 和毫秒級delay ms 1.普通延時法 這個比較簡單,讓微控制器做一些無關緊要的工作來打發時間,經常用迴圈來實現,不過要做的比較精準還是要下一番功夫。下面的 是在網上搜到的,經測試延時比較精準。粗延時函式,微秒 vo...

實現窗體拖動的兩種方法

方法1 系統訊息 protected override void wndproc ref message msg 方法2 事件 private int mx 0,my 0 private bool mc false protected override void onmousedown mousee...