QT开发之串口通信(四)

本文讲述了在VS2015环境中使用QtPackage1.3.11时遇到的串口数据发送问题及DirectWrite创建字体失败的情况,原因涉及特殊字符和Qt版本,解决方法包括替换特殊字符、升级版本或添加数据写入等待操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VS2015+QtPackage版本1.3.11插件+QT5.13.1

最近使用串口遇到一些问题

1、问题:在上述编译环境下发生数据会出现发送一次数据后无法重复发送数据,返回值也没有问题

查询得知:

QByteArray SendBytes((char*)data, len);
  
    
    int sum = CurrentPort->write(SendBytes);//发生数据
    CurrentPort->waitForBytesWritten();//这个就是一个等待写入完成

同时这个这个问题在将代码迁移到新的系统和编译器后,也出现过类型的问题,也需要将后面这句加上就解决流

2、问题:DirectWrite: CreateFontFaceFromHDC() failed (指示输入文件 (例如字体文件) 中的错误。) for QFontDef(Family="Fixedsys", pointsize=9.75, pixelsize=16, styleHint=5, weight=50, stretch=100, hintingPreference=0) LOGFONT("Fixedsys", lfWidth=0, lfHeight=-16) dpi=192

出现这个问题的原因我查的是,因为发送的数据包含特殊字符,比如一些ASCII码表参数小于32的数据,在低版本的Qt中是存在这个问题的,

解决办法:要么将小于32的特殊字符用其它的代替要么更新版本,或者使用1的方式一样在发生数据的后面增加CurrentPort->waitForBytesWritten();我这边发现也能解决这个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值