电子说
我们知道串口通信可以让单片机和电脑进行数据交换。那么是否可以用串口来控制LED灯亮灭呢?当然是可以的。首先需要保证串口能正常通信,然后是连接LED灯的IO口要初始化完成。如图分别为串口初始化和LED灯初始化
本文是建立在读者已经搭建好串口控制LED灯代码的基础上,列举一些可能犯的错误。
1接收到了字符,但是无法控制LED灯亮灭。如图
我们知道我们发给单片机的是字符,因此单片机在接收到的也是字符,因此在控制语句中我们要用字符,比如’0‘,而不是0.如图switch语句
此处需要将case 0改为case ’0‘就可以了
2可以控制led亮灭,但是偶尔能收到字符,不能一直收到字符。如图
在发送多次字符0之后,只有两次接收到了字符0,很多次都没有接收到。这里的问题是串口中断。如果读者是跟着野火的教程做的就会明白这个问题,刚开始是用串口通信,因此开了串口中断,而我们的led灯实验不需要串口中断,如果有中断的话,我们每次发送一个数据就会进入中断里面,因此把串口中断关闭就可以解决这个问题。如图
注释掉usart_itconfig()这个函数,即关闭串口中断。再试一试
解决了,每次发送都能接收到了。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !