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

2020-02-05 09:03发布

如题,紧急求解。我让SBUF接收的数据存到外部RAM定义的数组时发现数组里很多数接收的不对为什么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
eduhf_123
2020-02-06 13:43
本帖最后由 eduhf_123 于 2012-6-14 19:49 编辑
nydns 发表于 2012-6-14 13:24
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;
}
我的代码
那我想产生一次中断接收所有数据.应该如何写呢...
  1. {
  2.         if(RI)
  3.         {
  4.                 unsigned char i = 3;
  5.                 do
  6.                 {
  7.                         t[j++]=SBUF;
  8.                         RI = 0;
  9.                         if(j >= 64)
  10.                         {
  11.                                 j=0;   
  12.                         }
  13.                 }while(--i);
  14.                 flag=1;
  15.         }
  16.         else
  17.         {
  18.                 TI = 0;
  19.         }
  20. }
复制代码

一周热门 更多>