找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机小白有关串口通信的问题

查看数: 1633 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-12-28 09:02

正文摘要:

有大佬知道为什么我这接收端接收到的数据在为什么在1602上不显示吗?这是部分程序,我自己写的感觉问题很大,lcd驱动程序就不放上来了,下面有仿真图 单片机源程序如下: #include <reg51.h> #include "lcd.h ...

回复

ID:213173 发表于 2021-12-28 21:40
最容易看懂的处理方法如下
自定义通信协议
0xAA'2' '1' '1' '2' '2' '8' '2' '1' '2' '2' '4' '0' '2'0x55
表示21年12月28日21点22分40秒星期二

unsigned char rec_buf[15];//接收缓存

void UARTInterrupt() interrupt 4
{
        static uchar i=0;                //静态计数变量
        RI=0;                                        //接收中断请求标志位清0
        rec_buf[num]=SBUF;                //接收到的数据串保存在缓存数组
        if(rec_buf[0]==0xAA)        //验证数据头(起始位)
        {
                i++;
                if(i>=15)
                {
                        flag=1;                        //一帧数据接收完成标志置1
                        i=0;                        //计数变量清0
                }
        }
}
在主函数中验证数据尾无误,再把收到的字符显示在LCD相应位置
ID:997070 发表于 2021-12-28 14:57
AUG 发表于 2021-12-28 14:19
确定是否收到数据了,收到了再去显示肯定就没问题

我加了个蜂鸣器在里面,只有把蜂鸣器响的条件改为数据为0的时候才会响,这是表示没有收到数据吗?
ID:313048 发表于 2021-12-28 14:19
确定是否收到数据了,收到了再去显示肯定就没问题
ID:997070 发表于 2021-12-28 13:56
lkc8210 发表于 2021-12-28 11:22
因为代码不全
只能推测
第27行串口代码有点问题

没用啊,我是在做电子钟,要求是要通过串口通信将单片机实物与仿真环境里的电子钟时间同步显示,数据不能只发一段,要实时不停发送,但是数据能发送出去,但是接收端这边有问题,LCD能正常显示,但没法显示我发送过去的数据,我就是这里不知道问题出在哪。还有这上面就是我接收端的整个代码了(除了LCD的驱动程序)。
ID:161164 发表于 2021-12-28 11:22
因为代码不全
只能推测
第27行串口代码有点问题
试改为
  1. void UART_T() interrupt 4
  2. {
  3.         if(RI)
  4.         {
  5.                 receiveData = SBUF;
  6.                 if((receiveData==0x59))
  7.                 {
  8.                         r = 0;
  9.                 }else{                       
  10.                         rec[r] = receiveData;
  11.                         r++;
  12.                 }
  13.                 while(!RI);
  14.                 RI = 0;
  15.                 }
  16.         RI = 0;
  17. }
复制代码



然后输入59 19 06 07 05 07 30 44
ID:997070 发表于 2021-12-28 09:38
我自己已经搞了两天了没有什么头绪

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表