求助STC12C5A60S2第二串口

2019-07-16 03:35发布

期望实现的功能是:当串口调试助手发送给串口2 0xAA后 单片机通过串口2连续发送数组sendbuffer给上位机,当发送来的是0xFF
时停止发送
望大神们给看下,我的程序毫无反应。。。。。
void Uartinit2(void)                //9600bps@11.0592MHz
{
        AUXR &= 0xf7;                //波特率不倍速
        S2CON = 0x50;                //8位数据,可变波特率
        BRT = 0xFD;                //设定独立波特率发生器重装值
        AUXR &= 0xfb;                //独立波特率发生器时钟为Fosc/12,即12T
        AUXR |= 0x10;                        //启动独立波特率发生器
               
        IE2=0x01;       //允许串口2中断ES2=1
}       
void sendoneByte(uchar c)
{
S2CON =S2CON&0xFD;//TI=0
S2BUF=c;
while(!(S2CON&0xFD));
S2CON =S2CON&0xFD;

void sendString(uchar *aaa)
{
while(*aaa!='')
{
sendoneByte(*aaa);
aaa++;
}
}
void Com2_Service(void) interrupt 8
{
    if(S2CON & S2RI)
    {
        S2CON=S2CON&0xFE;//清标志位
           accept=S2BUF;
        if(accept==0xAA)//AA开始传送
    {
        com2flag=1;
        //sendString(sendbuffer);
        }
        if(accept==0xFF)//结束命令
        {
           com2flag=0;
        }
        }
             
}
void main()
{   
        UartInit2();
        EA=1;//开总中断
        while(1)
        {
         if( com2flag==1)
          {
          sendString(sendbuffer);
          }
          if(com2flag==0)
          {
          IE2=0x00;
          }
         }        

       
}

         
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
lovezjf234
1楼-- · 2019-07-16 06:51
你一上电就把IE2关掉了。怎么能通信
渣渣的鼠标
2楼-- · 2019-07-16 08:22
观摩观摩学习了
zbc101
3楼-- · 2019-07-16 10:49
爱我别走
4楼-- · 2019-07-16 16:32
 精彩回答 2  元偷偷看……
咿呀学唉
5楼-- · 2019-07-16 22:27
学习技术。。学习技术。。学习技术。。
somewang
6楼-- · 2019-07-16 23:34
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1

一周热门 更多>