基于ARM Contex-A8 Tiny210的简单室内人员数目监测系统实现(3)

这一篇就把人员数目这个小系统结束了。接着上一篇,获取总数count后,需要通过串口传送到PC端。

首先说下Tiny210的串口发送:

arm qt下好像还没有跟windows平台下一样的写的比较完整的串口程序,所以分享个自用的。

定义一下,串口打开标志和函数声明

public:
    int fd;
    int openSerialPort();
    void send_to_port();

接着是打开串口、串口定义的程序(就是自用的),这里devicename要根据自己的来,简单的方法是查看Tiny210上自带的comping或者串口助手。另外,要包含个

#include <termio.h>

的头文件。

int pnc::openSerialPort()
{
  fd = -1;

  const char *devName = "/dev/ttySAC3";
  fd = ::open(devName, O_RDWR|O_NONBLOCK);
  if (fd < 0) {
    return -1;
  }

  termios serialAttr;
  memset(&serialAttr, 0, sizeof serialAttr);
  serialAttr.c_iflag = IGNPAR;
  serialAttr.c_cflag = B115200 | HUPCL | CS8 | CREAD | CLOCAL;
  serialAttr.c_cc[VMIN] = 1;
  if (tcsetattr(fd, TCSANOW, &serialAttr) != 0) {
    return -1;
  }
  return fd;
}

接下来,就是在主程序中打开串口了

   fd = openSerialPort();
   if (fd < 0)
   {
     QMessageBox::warning(this, tr("Error"), tr("Fail to open serial port!"));
     return ;
   }

串口打开完成后,需要做的就是在人员数目发生变化时将count发送出去,这个很简单

send_to_port();

这句写在上一篇的switch语句后面就可以了,在主程序中。

void pnc::send_to_port(){


    char buf[10];
    sprintf(buf, "%d", count);//
    ::write(fd,buf,strlen(buf));
}

到这里,Tiny210板子上的串口发送工作就完成了。剩下的是PC端的串口接收,由于windows下qt的串口程序很成熟,有很多分享,我也会分享一个。

直接介绍接收程序,也比较简单

   struct PortSettings myComSetting = {BAUD115200,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,500};
   myCom = new Win_QextSerialPort("com1",myComSetting,QextSerialBase::EventDriven);
   myCom ->open(QIODevice::ReadWrite);

   //int count;
   //count=0;
   //a->setText(QString::number(count));

   connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom()));


   QObject::connect(quit,SIGNAL(clicked()),this,SLOT(close()));}
void pnc::readMyCom() {
   QString temp = myCom->readAll();
   //Alln->setText("");
   //QString count;
   //count=temp;
   Alln->append(temp);

同样串口号自己看设备管理器,串口的头文件自己include一下。

#include "win_qextserialport.h"

PC端的界面,简单一画就ok。

这样这个室内人员数目的小系统就算完成了,最后的通信方式,可以自选WiFi什么的,随便了。

最后想要完整的程序的,可以评论留邮箱。微笑虽说还是希望多交流的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值