我們知道串口通信可以讓單片機(jī)和電腦進(jìn)行數(shù)據(jù)交換。那么是否可以用串口來控制LED燈亮滅呢?當(dāng)然是可以的。首先需要保證串口能正常通信,然后是連接LED燈的IO口要初始化完成。如圖分別為串口初始化和LED燈初始化
本文是建立在讀者已經(jīng)搭建好串口控制LED燈代碼的基礎(chǔ)上,列舉一些可能犯的錯(cuò)誤。
1接收到了字符,但是無法控制LED燈亮滅。如圖
我們知道我們發(fā)給單片機(jī)的是字符,因此單片機(jī)在接收到的也是字符,因此在控制語句中我們要用字符,比如’0‘,而不是0.如圖switch語句
此處需要將case0改為case’0‘就可以了
2可以控制led亮滅,但是偶爾能收到字符,不能一直收到字符。如圖
在發(fā)送多次字符0之后,只有兩次接收到了字符0,很多次都沒有接收到。這里的問題是串口中斷。如果讀者是跟著野火的教程做的就會(huì)明白這個(gè)問題,剛開始是用串口通信,因此開了串口中斷,而我們的led燈實(shí)驗(yàn)不需要串口中斷,如果有中斷的話,我們每次發(fā)送一個(gè)數(shù)據(jù)就會(huì)進(jìn)入中斷里面,因此把串口中斷關(guān)閉就可以解決這個(gè)問題。如圖
注釋掉usart_itconfig()這個(gè)函數(shù),即關(guān)閉串口中斷。再試一試
解決了,每次發(fā)送都能接收到了。
審核編輯:湯梓紅
-
led
+關(guān)注
關(guān)注
242文章
23355瀏覽量
663173 -
單片機(jī)
+關(guān)注
關(guān)注
6043文章
44622瀏覽量
638529 -
STM32
+關(guān)注
關(guān)注
2272文章
10923瀏覽量
357555 -
串口
+關(guān)注
關(guān)注
14文章
1557瀏覽量
77037
原文標(biāo)題:stm32串口通信控制LED燈亮滅所遇到的問題
文章出處:【微信號(hào):MCU雜談,微信公眾號(hào):MCU雜談】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
開關(guān)控制led燈亮滅
如何實(shí)現(xiàn)對(duì)LED燈的亮滅控制呢
linux控制LED燈亮滅的方法
STM32CubeMXKEIL5的相關(guān)資料分享
基于GD32F427R板UART1串口控制LED燈亮滅
如何實(shí)現(xiàn)對(duì)LED燈亮滅的控制的詳細(xì)資料概述
STM32-CubuMX-HAL庫學(xué)習(xí)(五)-- 串口的基礎(chǔ)收發(fā)實(shí)現(xiàn)
![STM32-CubuMX-HAL庫學(xué)習(xí)(五)-- <b class='flag-5'>串口</b>的基礎(chǔ)收發(fā)實(shí)現(xiàn)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論