找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 805|回复: 1
打印 上一主题 下一主题
收起左侧

用FPGA给51单片机串口发送字节的问题,求帮助

[复制链接]
跳转到指定楼层
楼主
我用FPGA给51单片机,每秒钟发送了两个字节的数据,00 00,然后用51采集电压产生了1个字节,71.现在我想将这三个数据从51串口发送到上位机,我程序是这样写的,如图,在中断里发出去。adval是采集到的电压数据。


当只发送SBUF的时候,也就是只发送FPGA给的数据的时候,串口显示00 00,是正确的,但是一旦加上发送电压,就会显示如下


他会在00 00 之间多发送一个电压数据,71。原因我理解的是 :SBUF一次只能发送一个字节,所以在FPGA发送的两个字节00 00 之间夹杂了一个71
但是该如何解决这个问题呢,我想让他发送的结果是,00 00 71.
急求各位大佬解决!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:872683 发表于 2021-6-19 14:57 | 只看该作者
刚刚想到了一个办法,解决了,就是设置一个接受标识符。代码如下:
  1. void UART_Routine() interrupt 4       
  2. {
  3.         if(time_ri==0)
  4.         {
  5.                 if(RI==1)
  6.                 {                       
  7.                         RI = 0;
  8.                         Send_Byte(SBUF);
  9.                         time_ri++;
  10.                 }
  11.         }
  12.        
  13.         if(time_ri==1)
  14.         {
  15.                 if(RI==1)
  16.                 {                       
  17.                         RI = 0;
  18.                         Send_Byte(SBUF);
  19.                         time_ri=0;
  20.                         Send_Byte(adval);
  21.                 }
  22.         }

  23. }
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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