STM32F103USB打开后重启芯片不会断连解决方法

本文介绍了如何在嵌入式系统主函数中处理USB设备断开的情况,包括USB初始化、GPIO配置、以及中断处理和调试功能的初始化。
摘要由CSDN通过智能技术生成

 在主函数中加入下面的函数就可以了。

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

}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103C8T6是STMicroelectronics公司生产的一款32位微控制器,具有丰富的外设和较高的性能。它内置了引导加载程序(bootloader),可通过USB接口进行固件更新和仿真调试。 首先,引导加载程序是一段特殊的代码,嵌入在芯片内部的ROM中。它是在芯片制造时烧录的,在开机时首先运行。引导加载程序的主要作用是加载应用程序,通常是通过串行接口(如USART、SPI或I2C)进行。然而,STM32F103C8T6还可以通过USB接口来进行固件更新,称为USB bootloader。 使用USB bootloader可以通过USB接口实现固件更新,无需额外的硬件支持,方便快捷。要使用USB bootloader,需要在STM32F103C8T6芯片上连接一个USB接口,并将引导加载程序配置为支持USB bootloader功能。 具体操作步骤如下: 1. 安装ST-Link/V2驱动程序,并连接STM32F103C8T6与计算机,确保USB连接正常。 2. 打开STM32CubeProgrammer软件,选择对应芯片型号和连接方式。 3. 在连接选项卡中选择USB端口,并点击连接按钮,与芯片建立连接。 4. 在文件选项卡中选择固件文件(后缀为.bin或.hex),点击下载按钮进行固件更新。 5. 下载完成后,开与芯片的连接,重启芯片即可运行新固件。 总结一下,STM32F103C8T6具备内置的引导加载程序,可以通过USB接口实现固件更新和仿真调试。它使用起来方便快捷,无需额外的硬件支持,极大地提高了开发效率。通过合理配置和连接,我们可以更加灵活地使用STM32F103C8T6的功能,满足各种应用的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值