c# 串口通讯 将数组的数据写入ini文件后,数据数据会改变吗

我目前写的程序遇到一个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(不应该不出现的数据)
最新回答
漫天飞雪

2024-10-02 06:55:37

你没说前提,就是每次调试发送的信息是一样的吗,如果一样才谈得上对比接收数据。IniWriteValue函数没贴出来,不好说是否导致问题的原因。由于串口一般是不断接收的,考虑是否写数据时候用了阻塞的方法,导致接收不完整等。
追问
1、我是一共需要读450个连续的地址数据,因此每次读50个,循环9次。因此严格来说每次发送数据是不同的。
2、IniWriteValue函数是直接调用kernel32.dll中的的WritePrivateProfileString()函数。
3、问题是用了写数据的方法后,数据是正确的,没用的反而不正确。