找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6838|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

QT上位機(jī)程序問題求助(已解決附記錄)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:3721 發(fā)表于 2015-1-5 15:43 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
1,單片機(jī)發(fā)送數(shù)據(jù)在串口助手的顯示效果如圖   
2,在我寫的qt中的顯示效果

  
數(shù)據(jù)出來的有點(diǎn)亂,修改半天不知道,哪里有錯誤。
3,涉及數(shù)據(jù)處理的代碼

void MainWidget::readMyCom()//讀串口函數(shù)
{
    QByteArray temp;
    temp = myCom->readAll();
    if(!((temp.isEmpty())|(temp.isNull())))
    {
        strReBuf.append(QString(temp));
        //if(strReBuf.contains("�"))
        strReBuf.remove(QString("�"), Qt::CaseInsensitive);
        strReBuf.remove(QChar('\n'), Qt::CaseInsensitive);
        //strReBuf.re
        /*while(1)
        {
            if(strReBuf.startsWith("S"))break;
            if(strReBuf.isEmpty())break;
            strReBuf.remove(0,1);
        }
        */

        if(strReBuf.length()>=longth)emit comOver();
        //connect(this,SIGNAL(comOver()),this,SLOT(writeSheet()));
    }
}

void MainWidget::writeSheet()
{
    QString str = strReBuf.left(longth);
    strReBuf.remove(1,longth);
    textBrowser->append(str);
}

問題解決記錄1:
原代碼中,數(shù)據(jù)傳輸終止靠最后一位結(jié)束符號,修改數(shù)組后刪除結(jié)束符導(dǎo)致數(shù)組讀取越界。其實(shí)qt和stcisp讀出的數(shù)據(jù)都是錯的,只是一直沒有注意到而已。
//電腦通信
void ClearUsbUart(void);
void SendUsbBeg(void);
void SendUSB(void);   //電腦通信

//開門記錄樣表打印
//S Y2014 M01 D15 T11:19 Y2014 M01 D15 T11:30 U3 E
char code recode_tabel1[]={"S 2011 01 15 11:19 2016 01 15 11:30 3 E"};
char code recode_tabel2[]={"S 2012 01 15 12:30 2017 01 15 12:30 4 E"};
char code recode_tabel3[]={"S 2013 01 15 13:19 2018 01 15 13:30 5 E"};
char code recode_tabel4[]={"S 2014 01 15 14:19 2019 01 15 14:30 6 E"};
char code recode_tabel5[]={"S 2015 01 15 11:19 201a 01 15 15:30 7 E"};
void main(void)
{
    uchar i;
IoInit();
BuzzerBeed();
UartInit();
RTimeBeg(0,1);
RTimeDis();
for(i=0;i<39;i++)
  {
   TI=0;
   SBUF=recode_tabel1[ i];
   while(TI==0);
   //delay(2000);
  }
  //delay(20000);

  for(i=0;i<39;i++)
  {
   TI=0;
   SBUF=recode_tabel2[ i];
   while(TI==0);
   //delay(2000);
  }
  //delay(20000);

  for(i=0;i<39;i++)
  {
   TI=0;
   SBUF=recode_tabel3[ i];
   while(TI==0);
   //delay(2000);
  }
  //delay(20000);

  for(i=0;i<39;i++)
  {
   TI=0;
   SBUF=recode_tabel4[ i];
   while(TI==0);
   //delay(2000);
  }
  //delay(20000);

  for(i=0;i<39;i++)
  {
   TI=0;
   SBUF=recode_tabel5[ i];
   while(TI==0);
   //delay(2000);
  }

  //delay(20000);
for(;;);

目前的效果展示:



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表