记录一下结构体数组中标志不能清零问题

结构体数组中标志不能清零问题

在做数据网关时,需要设置很多标志处理,我在结构体中把标志定义在接收数组下面。


```c
typedef struct 
{
	uint8   Special_Com_Handle_Flag; //TCP特殊命令处理
	uint8	Login;						//远程登录
	uint8	TimeDisp;
	uint8	SendStep;					//部分功能整个流程会发送不同协议,根据步骤决定命令号
	uint8	SatrtFlag;					//0: 未开始		1: 开始倒计时
	uint8	FlashDispFlag;				//0: 不刷新		1: 刷新	    	[倒计时]
	uint8   TimeOut;					//0: 等待中	 	1: 等待超时
	uint8	 ConnectFlag;				//0: 无操作 	1: 开机连接后台服务器 2:重新启动模块 3.断开连接
	uint16	SendDataType;				//数据发送类型
	uint8	AccountTradeType; 		   	//账户交易类型
	uint16	WaitCountdown;				//等待后台应答倒计时: 10S = 10ms * 1000(WaitCountdown)
	uint16	RepeatConnectCount;			//重新连接后台服务器计数: 心跳包30秒发送一次,超时时间-->60秒[6000 * 10ms]	
	
	uint16  Receive_24G_Timeout_Flag;    //判断接收是否超时
	uint16  Receive_24G_Time_Count;
	
	uint8   SendDataBuf[UART_TX_BUFLEN];
	uint8	  RecDataBuf[UART_TX_BUFLEN];  	 
	uint8	  MacLogIn;					//签到命令标志
	uint8	  Heartbeat;					//心跳包
	uint8   LabelUpload;				//上传标签数据
	uint8	  rFlag;
	uint16	HeartbeatCount;
	uint16	rLen;
	
	uint16  Get_Gate_State_Flag;    //获取门状态标志
	uint16  Get_Gate_State_Count;
	uint16 Send_Gate_State_Flag;     //发送心跳-门禁状态
	uint16  Send_Gate_State_Count;
	uint8   HeartbeatFlag;           //接收到门状态
	uint8	  Open_DoorFlag;					//收到开门标志
//	uint8   Special_Com_Handle_Flag; //TCP特殊命令处理	
//	uint32  SendCount;
//	uint32  RecCount;
}	WirelessParaStr;	 


	再去操作其中一个标志时,标志的直不会被改变,Open_DoorFlag标志不能操作。
     	可能的一个原因是Open_DoorFlag的地址被接收数组RecDataBuf占用,接收数组大于定义地址,往下占用其他的地址,但我仿真发现地址并没有越界,但还是怀着试试的态度试试,把Open_DoorFlag定义在结构体最上面,发现可以操作了。
     	记录一下,如果有遇到相同问题的小伙伴可以相互交流讨论一下。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值