打印

求助:向各位大哥请教几个串口问题

[复制链接]
1374|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星星电灯|  楼主 | 2008-4-23 12:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void ComInStr() interrupt 4 //串行口中断
{
    if(RI)
     {
          if (ReceiveCount > 4)   //从电脑接收 5 个字符
           {
                    ReceiveCount = 0;        
             }
         ReceiveBuf[ReceiveCount] = SBUF; //用来接收电脑发过来的字符
           ReceiveCount++;                  //串口接收的字符个数
         if (ReceiveCount > 4)
               {
                ReceiveFlag = 1; //接收标志置位 表示是否接收完了
              }
         RI=0;
     }//if(RI)
}



void timer0(void) interrupt 1   //
{
  TH0 = 0xdc;     //重载计数初值 每  3ms 中断一次 (原先是 20ms)
  TL0 = 0x00; 
}   

void main()
{
  EA = 0;
   
   TMOD = 0x21;                  //定时器1模式1  定时器0模式1 
  //---------------------------处理串口中断---------------------------------------
   SCON = 0x50;                  //串行口工作方式1, 10 位异步收发,波特率由定时器控制
   PCON |= 0x00;
   TL1 = 0xFA; 
   TH1 = 0xFA;                   //22.1184M晶振 波特率9600
   //---------------------------处理串口中断---------------------------------------
   
   //------------------------------处理中断喂狗------------------------------------  
   TH0 =0xdc;     //预置计数初值,每 5 ms 中断一次 晶振 22.1184
   TL0 =0x00;
   //------------------------------处理中断喂狗------------------------------------ 
   EA = 1 ;                    //允许中断
   ES = 1 ;                    //允许串行中断
   ET0 = 1;                    //T/C0 开中断(定时器0/计数器0)
   ET1 = 0;                    //T/C0 开中断(定时器0/计数器0)
   
   TR1=1;                      //启动定时器1/计数器1
   TR0 = 1;                   //启动定时器0/计数器0
   
   
   while(1)
    {
        ;
    }
}


1:
当上位机向单片机发送数据,假设要发 5 个字节下来
当下位机收到第一个字符(则说明有上位机发数据来了)
如果过了 X 时间还没有收到第2个数据,则说明上位机发送
错误,可以这样理解吗?

各位大哥,在这里是怎么处理的?

2:
上位机
m_comm.SetSettings("4800,n,8,1");   /*串口参数设置*/
(N无校验,E偶校验,O奇校验)

这里的 E偶校验,O奇校验 是什么意思?
是对收到下位机的数据进行效验,还是对上位机将要发出去的数据进行效验
假设下位机发送的数据是:
aa[0]='a';
aa[1]='1';
aa[2]='e';

那么如果
m_comm.SetSettings("4800,e,8,1");   /*串口参数设置*/

那是怎么的结果呢?

m_comm.SetSettings("4800,n,8,1");   /*串口参数设置*/

有什么不同


3:
当上位机收到 'a'
隔了一段时间还没有收到 '1'
就表示下位机发送数据失败,是这样吗?

各位大哥,这里是怎么处理的啊?

谢谢!

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

74

主题

121

帖子

1

粉丝