최근에 만든 삽입식 항목
int main(void)
{
		int ret = -1;
		uint32_t pubtick = 0;
		uint32_t ctltick = 0;
		uint8_t AlarmFlag = 0;
		CheckFlag = 0;
		TimerFlag = 0;
    /* Init System, IP clock and multi-function I/O */
    SYS_Init();
		GpioInit();	
    UART0_Init();
    UART1_Init();
		UART_ENABLE_INT(UART1, (UART_INTEN_RDAIEN_Msk| UART_INTEN_RXTOIEN_Msk));	/*config uart1 interrupt*/
		NVIC_EnableIRQ(UART1_IRQn);
		UART_ENABLE_INT(UART0, (UART_INTEN_RDAIEN_Msk| UART_INTEN_RXTOIEN_Msk));	/*config uart1 interrupt*/
		NVIC_EnableIRQ(UART0_IRQn);
		TMR0_Init();
		TMR1_Init();
		RestGps();
		RestGsm();
    I2C0_Init();
    I2C1_Init();
		Getuid();
//		SetSlope();
		Pver = 20;
//		memset(&CONFIG,0,sizeof(CONFIG));
		CheckWakeFlag();
		SetAccData();
		SetAlarm(0);//rtc 15min
		//GetConfig();
		GetFsuId(FsuId);
		ret = GsmInit();
		if(ret)
		{
			printf("gsminit timeout
");
			goto error;
		}
		ConnectFlag = 0;
Connect:
		ret = MQTT_Connect(ConnectFlag);
		if(ret != 0)
			goto error;
		ret = MQTT_SubAndPub();
		if(ret != 0)
			goto error;
		pubtick = gTick1msCnt;
		while(1)
		{
			if(MQTTMsgReceved_proc() == LOGIN_ACK)
				break;
			if((YA_GetSysTimeInterval(pubtick) >= 15000))//15 s
				goto error;
		}
		ret = UpdateFsuId();
		if(ret)
			goto Connect;
		SerializePubMsg(ONLINE);
		mqtt_publish(PubTopic);
		pubtick = gTick1msCnt;		
		while(1)
		{ 
//			FeedDog();
			if(SendFlag)
			{
				SendFlag = 0;
//				printf("send all data
");
				GetAllData();
				SerializePubMsg(SEND_CONFIG_DATA);
				mqtt_publish(PubTopic);
				AlarmFlag=GetLockState();
			}
			switch(WakeUpFlag)
			{
				case 0:
					PowerDownFlag = 1;
					break;
				case 1:
				#if 0
					SerializePubMsg(SEND_ALARM);
					mqtt_publish(PubTopic);
				#endif
					PowerDownFlag = 1;
					break;
				case 2:
					if(TimerFlag)
					{
						ctltick = gTick1msCnt;
						TimerFlag = 0;
						CheckFlag = 1;
					}
					if(CheckFlag)
					{
						if((YA_GetSysTimeInterval(ctltick) >= 10000))
						{
							SendFlag = 1;
							CheckFlag = 0;
							CheckHaltFlag = 1;
							break;
						}
					}
					if(CheckHaltFlag)
					{
						AlarmFlag=GetLockState();
						if(!AlarmFlag)
							PowerDownFlag = 1;
					}
					break;
				default:
						break;
			}
			MQTTMsgReceved_proc();
//			SetWakeAndHalt(AlarmFlag);
			if(PowerDownFlag||(YA_GetSysTimeInterval(pubtick) >= HaltTime))
			{
				if(WakeUpFlag != 1)
					SetAccWakeup();
				SetAlarm(AlarmFlag);
				PowerDown();
			}
		}
error:
	SetAccWakeup();
	SetAlarm(1);
	PowerDown();		
		return 0;
}
다음으로 전송:https://www.cnblogs.com/yinseyingji/p/8270073.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.