我们知道串口通信可以让单片机和电脑进行数据交换。那么是否可以用串口来控制LED灯亮灭呢?当然是可以的。首先需要保证串口能正常通信,然后是连接LED灯的IO口要初始化完成。如图分别为串口初始化和LED灯初始化
本文是建立在读者已经搭建好串口控制LED灯代码的基础上,列举一些可能犯的错误。
1接收到了字符,但是无法控制LED灯亮灭。如图
我们知道我们发给单片机的是字符,因此单片机在接收到的也是字符,因此在控制语句中我们要用字符,比如’0‘,而不是0.如图switch语句
此处需要将case0改为case’0‘就可以了
2可以控制led亮灭,但是偶尔能收到字符,不能一直收到字符。如图
在发送多次字符0之后,只有两次接收到了字符0,很多次都没有接收到。这里的问题是串口中断。如果读者是跟着野火的教程做的就会明白这个问题,刚开始是用串口通信,因此开了串口中断,而我们的led灯实验不需要串口中断,如果有中断的话,我们每次发送一个数据就会进入中断里面,因此把串口中断关闭就可以解决这个问题。如图
注释掉usart_itconfig()这个函数,即关闭串口中断。再试一试
解决了,每次发送都能接收到了。
审核编辑:汤梓红
-
led
+关注
关注
237文章
22441浏览量
645831 -
单片机
+关注
关注
5998文章
43956浏览量
620675 -
STM32
+关注
关注
2239文章
10668浏览量
348677 -
串口
+关注
关注
14文章
1483浏览量
74492
原文标题:stm32串口通信控制LED灯亮灭所遇到的问题
文章出处:【微信号:MCU杂谈,微信公众号:MCU杂谈】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论