FreeProtocol宏指令读取了串口数据后,发现char response[32],定义的是char类型。
此类型数据范围-127~+127,也就是说8位数据,只用了后7位,第8位作为了正负号用。
但是串口发过来的数据有的是要超过127的。8位数据最大到255.这样都被当做了负数。
如果此时response[i]直接当做显示,还没有问题。
SetData(response[1], "Local HMI", LW, 100, 1)
只要再LW100设置成16-bit unsigned,可以直接显示大于127的数字。
但是如果读出的数据需要进行数字运算的话,就只能当做负数了。
这样就明显会出错。
请问大虾怎么解决这个问题?谢谢! |