使用串口控制LED灯亮灭

电子说

1.3w人已加入

描述

我们知道串口通信可以让单片机和电脑进行数据交换。那么是否可以用串口来控制LED灯亮灭呢?当然是可以的。首先需要保证串口能正常通信,然后是连接LED灯的IO口要初始化完成。如图分别为串口初始化和LED灯初始化

STM32

STM32

本文是建立在读者已经搭建好串口控制LED灯代码的基础上,列举一些可能犯的错误。

1接收到了字符,但是无法控制LED灯亮灭。如图

STM32

我们知道我们发给单片机的是字符,因此单片机在接收到的也是字符,因此在控制语句中我们要用字符,比如’0‘,而不是0.如图switch语句

STM32

此处需要将case 0改为case ’0‘就可以了

2可以控制led亮灭,但是偶尔能收到字符,不能一直收到字符。如图

STM32

在发送多次字符0之后,只有两次接收到了字符0,很多次都没有接收到。这里的问题是串口中断。如果读者是跟着野火的教程做的就会明白这个问题,刚开始是用串口通信,因此开了串口中断,而我们的led灯实验不需要串口中断,如果有中断的话,我们每次发送一个数据就会进入中断里面,因此把串口中断关闭就可以解决这个问题。如图

STM32

注释掉usart_itconfig()这个函数,即关闭串口中断。再试一试

STM32

解决了,每次发送都能接收到了。

审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分