STM32F103USB打开后重启芯片不会断连解决方法
STM32F103USB打开后重启芯片不会断连解决方法
·
在主函数中加入下面的函数就可以了。
void USB_Disconnected(void)
{
__HAL_RCC_USB_FORCE_RESET();
HAL_Delay(200);
__HAL_RCC_USB_RELEASE_RESET();
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_Initure.Pin = GPIO_PIN_11 | GPIO_PIN_12;
GPIO_Initure.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_Initure.Pull = GPIO_PULLDOWN;
GPIO_Initure.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOA, &GPIO_Initure);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, GPIO_PIN_RESET);
HAL_Delay(300);
}
int main(void)
{
SCB->VTOR = FLASH_APP_ADDR;
HAL_Init();
SystemClock_Config();
USB_Disconnected();
MX_GPIO_Init();
MX_USB_DEVICE_Init();
LED_INIT();
protocol_init();
debug_shell_init();
// printf("APP Code Start\r\n");
// printf("%s\r\n", Device_Version_Info_Str);
// printf("Device_Name_Info_Str:%s\r\n", Device_Name_Info_Str);
while (1)
{
//Running_Water_Led();
//Data_Handler();
protocol_ontick();
debug_shell_handler();
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)