觸控微控制器的IO會使微控制器宕機的問題

2021-08-18 19:42:35 字數 502 閱讀 5809

最近在除錯stm32f103微控制器的過程中,發現乙個奇怪的現象。只要用手,或者金屬物品觸碰到微控制器的pa10管腳,就會使正常執行的微控制器立刻宕機。起初懷疑是靜電造成的,但是通過多次試驗,排除這種可能性。同時發現,只有碰觸pa10這個管腳才會發生這種現象,其他的管腳不會。這不由地會讓我聯想到這可能與usart1有關,因為pa10是usart1的rx腳。

經過仔細檢查**,發現出現的宕機的原因是,使能了usart1,但卻沒有定義「void usart1_irqhandler(void)」這個中斷服務函式而導致的。由於我將pa10設定成了浮空輸入,所以當手觸控到該管腳時,會引起該管腳的電平發生跳動。這會導致微控制器誤以為串列埠收到了資料,產生串列埠中斷。但是我又沒有定義串列埠中斷服務函式,所以晶元會陷入嚴重錯誤而使**跑飛。

與此類似的,還有使能了外部中斷,但是沒有定義中斷服務函式,也會導致這個問題。通過實驗發現,將串列埠接收或者外部中斷的管腳設定成上拉輸入,比設定成浮空輸入的抗干擾能力好得多。這應該是嵌入式開發人員常遇到的問題,因此寫下此文,希望對讀者有所啟發。

單片微控制器

微控制器又稱單片微控制器,它不是完成某乙個邏輯功能的晶元,而是把乙個計算機系統整合到乙個晶元上。相當於乙個微型的計算機,和計算機相比,微控制器只缺少了i o裝置。概括的講 一塊晶元就成了一台計算機。它的體積小 質量輕 便宜 為學習 應用和開發提供了便利條件。同時,學習使用微控制器是了解計算機原理與結...

單片微控制器

微控制器又稱單片微控制器,它不是完成某乙個邏輯功能的晶元,而是把乙個計算機系統整合到乙個晶元上。相當於乙個微型的計算機,和計算機相比,微控制器只缺少了i o裝置。概括的講 一塊晶元就成了一台計算機。它的體積小 質量輕 便宜 為學習 應用和開發提供了便利條件。同時,學習使用微控制器是了解計算機原理與結...

微控制器及微控制器系統

微控制器及微控制器系統 1 什麼是微控制器?微控制器是將 處理器 cpu 隨機儲存器 ram 唯讀儲存器 rom或eprom 定時器晶元和一些輸入 輸出介面電路整合在乙個晶元上的微控制器 microcontroller 處理器包括運算器 控制器和暫存器3個主要部分,是微控制器的核心。儲存器按工作方式...