蓝桉33 2023-11-10 17:06 采纳率: 0%
浏览 12

51单片机通过串口助手发字符串,收到相同字符串

返回一直是好多00 或者80,不返回字符串,有人
知道是什么问题吗

  • 写回答

2条回答 默认 最新

  • Leodong. 2023-11-10 17:29
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    这个问题可能出在51单片机串口的接收处理上。51单片机的串口是全双工的,可以同时发送和接收数据。在串行发送完毕后,将在标志位TI置1,同样,当收到了数据后,也会在RI置1。无论RI或TI出现了1,只要串口中断处于开放状态,单片机都会进入串口中断处理程序。在中断程序中,需要区分出来究竟是发送引起的中断,还是接收引起的中断,然后分别进行处理。

    在处理接收数据时,基本上都是使用“中断方式”,这是正确合理的。即:每当收到一个新数据,就在中断函数中,把RI清零,并用一个变量,通知主函数,收到了新数据。另一方面,发送数据的程序一般都是使用的“查询方式”,如执行while(TI ==0)这样的语句来等待发送完毕。

    如果上述流程没有问题,那么可能存在的问题可能出在串口初始化或者波特率设置不正确等地方。串口通信前应该对串口进行初始化,包括串口控制寄存器SCON、电源及波特率选择寄存器PCON、辅助寄存器AUXR的赋值,波特率的确定,中断是否开放等。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论

报告相同问题?

问题事件

  • 创建了问题 11月10日