#include "reset.h"
#include "timer.h"
#include "usart.h"
#include "myFile.h"

static GPIO_InitTypeDef GPIO_InitStruct = {0};

void resetConfig(void)
{
	/*开启LED相关的GPIO外设时钟*/
		__HAL_RCC_GPIOG_CLK_ENABLE();

			/*选择要控制的GPIO引脚*/															   
    GPIO_InitStruct.Pin = RESET_PIN;
		/*设置引脚模式为输出模式*/
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
		/*设置引脚为上拉模式*/
    GPIO_InitStruct.Pull = GPIO_PULLUP;
		/*设置引脚速率 */  
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
		/*调用库函数，使用上面配置的GPIO_InitStructure初始化GPIO*/
    HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);	
}

void reset_task(void const* arg)
{
	while(1)
	{
		if(HAL_GPIO_ReadPin(GPIOG, RESET_PIN) == RESET)
		{
			DeleteDirFile("device.txt");	
			__set_PRIMASK(1);
			NVIC_SystemReset();
		}		
		vTaskDelay(100);	
	}
}

void reset_task_creat(void)
{
		osThreadDef(RESET, reset_task, osPriorityNormal, 0, configMINIMAL_STACK_SIZE * 4);
		osThreadCreate (osThread(RESET), NULL);
}