liunx下qt串口通讯怎么办,以前没接触过,现在要写串口驱动不知怎么搞,网上的资料表示不很理解

liunx下qt串口通讯怎么办,以前没接触过,现在要写串口驱动不知怎么搞,网上的资料表示不很理解,第1张

串口通信一般为三步:打开串口,串口设置,向串口发送数据或者向串口接受数据:
void OpenComm()
{
hCom=CreateFile("COM3",GENERIC_READ|GENERIC_WRITE,0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,
NULL);
}
void SetComm()
{
SetupComm(hCom,1024,1024);
DCB dcb;
dcbBaudRate=115200;
dcbfParity=NOPARITY;
dcbByteSize=8;
dcbStopBits=ONESTOPBIT;
GetCommState(hCom,&dcb);
if(!GetCommState(hCom,&dcb)){
std::cerr<<"串口被占用"<<std::endl;
return;
}
if(!SetCommMask(hCom,EV_RXCHAR|EV_TXEMPTY)){
std::cerr<<"掩码设置失败"<<std::endl;
}
}
void SendMessageOut(const BYTE snd[],int len)
{
DWORD factdata=100;
DWORD res=0;
wOverLappedhEvent=CreateEvent(NULL,TRUE,FALSE,NULL); //创建事件
BOOL tempflag = WriteFile(hCom,snd,len,&factdata,&wOverLapped);//在数据缓冲Ipbuffer不知道是否有问题
if(tempflag!=0)
{
std::cerr<<"等待信号"<<std::endl;
res=WaitForSingleObject(wOverLappedhEvent,5000);
WriteFile(hCom,snd,len,&factdata,&wOverLapped);
}

if(res!=WAIT_OBJECT_0)
std::cout<<"数据发送失败"<<std::endl;

}
这是向串口发送数据的,主要函数为WriteFile();读取ReadFile(),具体用法 百度一下

以上就是关于liunx下qt串口通讯怎么办,以前没接触过,现在要写串口驱动不知怎么搞,网上的资料表示不很理解全部的内容,包括:liunx下qt串口通讯怎么办,以前没接触过,现在要写串口驱动不知怎么搞,网上的资料表示不很理解、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9599920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存