我們知道串口通信可以讓單片機和電腦進行數據交換。那么是否可以用串口來控制LED燈亮滅呢?當然是可以的。首先需要保證串口能正常通信,然后是連接LED燈的IO口要初始化完成。如圖分別為串口初始化和LED燈初始化


本文是建立在讀者已經搭建好串口控制LED燈代碼的基礎上,列舉一些可能犯的錯誤。
1接收到了字符,但是無法控制LED燈亮滅。如圖

我們知道我們發給單片機的是字符,因此單片機在接收到的也是字符,因此在控制語句中我們要用字符,比如’0‘,而不是0.如圖switch語句

此處需要將case0改為case’0‘就可以了
2可以控制led亮滅,但是偶爾能收到字符,不能一直收到字符。如圖

在發送多次字符0之后,只有兩次接收到了字符0,很多次都沒有接收到。這里的問題是串口中斷。如果讀者是跟著野火的教程做的就會明白這個問題,剛開始是用串口通信,因此開了串口中斷,而我們的led燈實驗不需要串口中斷,如果有中斷的話,我們每次發送一個數據就會進入中斷里面,因此把串口中斷關閉就可以解決這個問題。如圖

注釋掉usart_itconfig()這個函數,即關閉串口中斷。再試一試

解決了,每次發送都能接收到了。
審核編輯:湯梓紅
-
led
+關注
關注
243文章
24594瀏覽量
690788 -
單片機
+關注
關注
6076文章
45494瀏覽量
670251 -
STM32
+關注
關注
2309文章
11162瀏覽量
373399 -
串口
+關注
關注
15文章
1618瀏覽量
82804
原文標題:stm32串口通信控制LED燈亮滅所遇到的問題
文章出處:【微信號:MCU雜談,微信公眾號:MCU雜談】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
STM32CubeMXKEIL5的相關資料分享
基于GD32F427R板UART1串口控制LED燈亮滅
STM32-CubuMX-HAL庫學習(五)-- 串口的基礎收發實現
使用串口控制LED燈亮滅
評論