本帖最后由 baipengwei 于 2014-4-25 16:53 编辑
波特率:9600
校验位:无
数据位:8
停止位:1
功能:在监视器上的指定位置显示一串字符
格式:该帧数据以81H开头,其后的两个字节用来表示将要在监视器上显示该字符串的位置,然后是该字符串的长度,接着就是所要显示的字符串的字符的代码。其格式详细说明如下:
序号 内容 说明
0 81H 信息帧的标志,其值为81H
1 CHARS_POS_X 将要显示的字符串的列坐标,其值为00H~17H
2 CHARS_POS_Y 将要显示的字符串的行坐标,其值为00H~0BH
3 CHARS_LENGTH 所要显示的字符串的长度,也就是该字符串所包含的字符的个数,其值为 01H~18H,就是说所能显示的字符串所包含的字符的最大个数为24。
4 CHARS_CODE0 字符串的第一个字符
5 CHARS_CODE1 字符串的第二个字符
N+3 CHARS_CODEn-1 字符串的第n个字符,1≤n≤24
例如:我们要在监视器的第3行、第5列显示2003-03-03,所传输的数据应该是:
81H 05H 03H 0AH 02H 00H 00H 03H E7H 00H 03H E7H 00H 03H
而要在第4行、第7列显示13:05:24,所传输的数据就应该是:
81H 07H 04H 08H 01H 03H E1H 00H 05H E1H 02H 04H
[现在程序处理方式]
现在用串口程序采用方法是:在接收中断里进行接收 ,逐级判断,只有一级一级的数据判断正确,整个过程的数据都正确,才能确定数据接收完成,此时置位一个标志位,在主程序里处理通过此标志位执行相应程序。
[程序测试]
采用串口精灵调试
如果单独发送一组数据
比如:81H 07H 04H 08H 01H 03H E1H 00H 05H E1H 02H 04H
是正常的
[设备故障现象]
但是如果同时发送多组数据
比如(下列数据为16进制)
81 02 00 09 09 09 00 00 01 03 E7 00 01 81 12 00 06 00 00 09 08 08 08 81 03 0A 08 01 04 E1 00 08 E1 04 05 81 01 0B 0A 02 00 01 04 E7 00 03 E7 02 01
就会出现数据显示不全的情况
[备注]
1.上位机串口通信处理程序协议固定,无法修改或者变动了.
2.监听了上位机,每次同时发送几组数据,最多时候一次发送一百个字节左右.
求大侠指导
|