32发送串口指令给HMI屏幕无法实现指令操作,可能的原因有:没有发送结束符(3个0xff)、TXRX交叉连接、指令不正确、
我遇到的问题是指令格式有问题:用串口助手接收32发过来的指令正确也有16进制的结束符,但是在指令和结束符之间有一个空格,当用hex显示时空格显示为00,所以HMI无法接受完整的指令+结束符。
解决方法:(1和2改一个就可以)
1、把发送函数的时间改短一点,使得指令发送完还没来得及发空格就结束然后发结束符。
2、把指令长度固定,我以前用的是用sizeof()自动算出长度的,固定长度后(有多少字节 就发多少字节)就不会出现指令后发空格的现象了。
3、把sizeof()-1
原因分析:可能是sizeof()转换字符长度时自动加1了,多出来的一位没有东西就变成空格了。而HMI串口屏对语法格式要求很严格不能有多余的空格。//以上原因仅靠自己的猜测并没有求证,有知道的大神欢迎指正//
32发送串口指令给HMI屏幕无法实现指令操作,可能的原因有:没有发送结束符(3个0xff)、TXRX交叉连接、指令不正确、
我遇到的问题是指令格式有问题:用串口助手接收32发过来的指令正确也有16进制的结束符,但是在指令和结束符之间有一个空格,当用hex显示时空格显示为00,所以HMI无法接受完整的指令+结束符。
解决方法:(1和2改一个就可以)
1、把发送函数的时间改短一点,使得指令发送完还没来得及发空格就结束然后发结束符。
2、把指令长度固定,我以前用的是用sizeof()自动算出长度的,固定长度后(有多少字节 就发多少字节)就不会出现指令后发空格的现象了。
3、把sizeof()-1
原因分析:可能是sizeof()转换字符长度时自动加1了,多出来的一位没有东西就变成空格了。而HMI串口屏对语法格式要求很严格不能有多余的空格。//以上原因仅靠自己的猜测并没有求证,有知道的大神欢迎指正//
举报