我目前写的程序遇到一个bug,我将串口通信读取到的数据存放在数据中,为了debug将这个数组的数据写到ini文件中方便查看。debug之后,屏蔽掉写入ini文件的程序段,发现出现新的bug,数据中的一些值与屏蔽之前的不一样了。以下是写如ini的程序if (ini1.ExistINIFile()) { for (int i = 0; i < 20; i++) { ini1.IniWriteValue("Test result", PBF.modbus_table[i+ ReadCycCount*20, 0], PBF.modbus_table[i+ReadCycCount * 20, 2]); } }屏蔽掉之后 数组PBF.modbus_table[221, 2]等数据由原来的0变成了3964(不应该不出现的数据)
你没说前提,就是每次调试发送的信息是一样的吗,如果一样才谈得上对比接收数据。IniWriteValue函数没贴出来,不好说是否导致问题的原因。由于串口一般是不断接收的,考虑是否写数据时候用了阻塞的方法,导致接收不完整等。 追问 1、我是一共需要读450个连续的地址数据,因此每次读50个,循环9次。因此严格来说每次发送数据是不同的。2、IniWriteValue函数是直接调用kernel32.dll中的的WritePrivateProfileString()函数。3、问题是用了写数据的方法后,数据是正确的,没用的反而不正确。