#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); }