让SBUF接收的数据存到外部RAM定义的数组时发现数组里很多...

2020-02-05 09:03发布

如题,紧急求解。我让SBUF接收的数据存到外部RAM定义的数组时发现数组里很多数接收的不对为什么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
nydns
2020-02-06 09:29
eduhf_123 发表于 2012-6-14 11:49
这个不一定的,要看中断服务程序是怎么写的。

如果中断服务程序中是读完SBUF就清空RI标志并退出,那么就 ...

void main(void)
{
InitUART();//初使化串口
while(1)
{
  if(flag==1)//接收到的数据发到电脑PC串口上.
  {
   ES=0;//串口中断 关了
   flag=0;//标位清0
   SendOneByte(a);//把接收到的数据发送到PC机串口上
   ES=1;//串口中断 手动打开
   
  }
}
}

void UARTInterrupt(void) interrupt 4 //串口中断号为4
{
    if(RI)
    {
         t[j]=SBUF;
         //a=t[j];//反回PC串口
         j++;
         if(j >= 64)j=0;   
        RI = 0;        //手动清0 退出
         flag=1;//标质位等于1,说明接收到数据
   }
    else
        TI = 0;
}
我的代码
那我想产生一次中断接收所有数据.应该如何写呢...

一周热门 更多>