linux qt usb转串口通信,centos7 Qt USB转串口通信

#include

#include

#include

int main(int argc, char *argv[])

{

QCoreApplication a(argc, argv);

QSerialPort serial;

serial.setPortName("/dev/ttyUSB0");

//设置波特率

serial.setBaudRate(QSerialPort::Baud9600);

//设置数据位数

serial.setDataBits(QSerialPort::Data8);

//设置奇偶校验

serial.setParity(QSerialPort::NoParity);

//设置停止位

serial.setStopBits(QSerialPort::OneStop);

//设置流控制

serial.setFlowControl(QSerialPort::NoFlowControl);

//打开串口

bool bRet = serial.open(QIODevice::ReadWrite);

if(bRet){

printf("open success");

serial.clear();

serial.flush();

bool bClosed = true;

bool m_bDistinguish = true;

time_t startTime = time(NULL);

unsigned char btCMD_OpenDoor[4] = {0xa0, 0x01, 0x01, 0xa2};

unsigned char btCMD_CloseDoor[4] = {0xa0, 0x01, 0x00, 0xa1};

while(true){

if(m_bDistinguish && bClosed){

bool bRet = serial.waitForBytesWritten(5000);

long nRet = serial.write((char*)btCMD_OpenDoor, 4);

printf("open:%d %d\n", bRet, nRet);

startTime = time(NULL);

bClosed = false;

m_bDistinguish = false;

}

if(!m_bDistinguish && !bClosed){

long fDuration = time(NULL) - startTime;

if(fDuration >= 5){

bool bRet = serial.waitForBytesWritten(5000);

long nRet = serial.write((char*)btCMD_CloseDoor, 4);

printf("close:%d %d\n", bRet, nRet);

bClosed = true;

m_bDistinguish = true;

}

}

}

serial.close();

}

else{

printf("open fail\n");

}

return a.exec();

}

QT += serialport

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值