单片机接收一串从PC机发来的字符
上一节
下一节
在本节,我们要实现单片机接收PC机发来的字符信息。对于这个事情,单片机需要解决两个问题:一是单片机怎么知道PC机有数据发来?二是接收到发来的数据以后需要怎么做,以保证后续的数据还能有效继续接收?
抛开本例,我们设想一下现实生活的案例,当你有快递到了,你的手机会收到一条短信,可以理解为这条短信是给你一个中断信号,让你去接收快递。同样,单片机如果接到PC机发来的数据,单片机也会收到类似的中断信号,提示CPU去处理中断,这还少CPU可以去执行串行中断服务程序,把数据接收并做相应处理。当单片机处理完成接收数据,如果原来的中断信号还在!那么单片机就还会去继续处理那个SBUF的数据,很可能这个数据还是原先的数据!所以,在每次接收完成SBUF的数据后,单片机要把中断信号清零,以防止重复接收和处理同一个数据。如此一来,PC机在下一次发来的数据就能顺利的被单片机接收了。单片机接收数据的思路就是这样,请大家先动手设计开发程序,然后观看本节视频讲解并做分析和总结。
在案例的讲解中,我们提到单片机需要能接收,所以要记得设置SCON的REN位为1。当单片机接收到PC机发来的信息,其系统内部标志位RI会置位,如果设置了串行通信允许,CPU能对其做响应并转到串行中断服务程序,而且在数据处理完成后记得把RI清零,为下次接收数据做好准备。

