找回密码
 立即注册
收起左侧

关于串口给机器发送指令问题

5
回复
7026
查看
[复制链接]
累计签到:28 天
连续签到:1 天
来源: 2018-4-26 13:44:00 显示全部楼层 |阅读模式
10Qter豆
本帖最后由 失踪人口 于 2018-4-26 14:39 编辑
功能:实现串口16进制传输给机器,实现对机器的控制QT:5.6
情况:我仿照一个在windows运行的串口软件(专门定制的那种)
问题:将字符转换成十六进制发送给机器,举个例子有一个关闭机器电源的指令,用那个仿照的程序(不是QT写的)每次都能发送指令并关闭机器电源,但是我做的程序每次都没有反应
部分图片和代码:
        打开串口(不可能串口问题)                          
         关闭电源发送指令槽
                                  
        控制台查看的信息
      

机器的指令参考的是之前那个人写的:
                                                      
想不通的地方是我明明按照上面的指令,但是结果机器却没有反应,所以我猜想是16进制或者是传输问题



附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

个人感觉是tolocal8bit这个函数问题,它好像是将字符串转成char*格式,比如“hello”这种字符串。如果你已经转成01 00 00 04这种好像要用toLatin1(),不知道是不是,最好能用示波器或者仿真器接目标板,看看发出的对不对
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2018-4-26 13:44:01 显示全部楼层
个人感觉是tolocal8bit这个函数问题,它好像是将字符串转成char*格式,比如“hello”这种字符串。如果你已经转成01 00 00 04这种好像要用toLatin1(),不知道是不是,最好能用示波器或者仿真器接目标板,看看发出的对不对
回复

使用道具 举报

累计签到:28 天
连续签到:1 天
2018-4-26 13:44:58 显示全部楼层
抱歉没怎么编辑过想不到好乱
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2018-4-28 15:15:22 显示全部楼层
感觉是16进制转换的问题 ,刚玩qt不久 你写的16进制转换看不太懂  使用QT的数据转换字符串到16进制数 感觉有不是很好用
你可以查一篇关于QT发送16进制数的写法
回复

使用道具 举报

累计签到:344 天
连续签到:1 天
2018-5-2 10:50:19 显示全部楼层
你发送的是指针吧,你转成QByteArray发送吧,不要char*格式
回复

使用道具 举报

累计签到:28 天
连续签到:1 天
2018-5-2 13:51:05 显示全部楼层
不好意思,我刚刚才发现可能是机器的波特率设置不正确导致的,实在不好意思,最佳答案我就抽签了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了