stm32 开发板 usb DFU 实现 以及注意事项

1.官网下载usb源码包,这里直接加载附件2.神舟III号的MCU位f103ze 系列。打开压缩包,直接找到 Device_Firmware_Upgrade 文件包 MDK打开工程。
3.选择 stm3210E_EVAL这个选项 ,此时启动文件为 starup_stm32f10x_hd.s.
4.修改 usb 拉高管脚为PG11
#elif defined (USE_STM3210E_EVAL)
#define USB_DISCONNECT                       GPIOG  
 #define USB_DISCONNECT_PIN                   GPIO_Pin_11
 #define RCC_APB2Periph_GPIO_DISCONNECT      RCC_APB2Periph_GPIOG

5.修改DFU模式触发按键为PD3  开发板上位user2按键。         

#define KEY_BUTTON_PIN                   GPIO_Pin_3
#define KEY_BUTTON_GPIO_PORT      GPIOD
#define KEY_BUTTON_GPIO_CLK         RCC_APB2Periph_GPIOD

6.修改 void USB_Cable_Config (FunctionalState NewState)  函数

#else /* USE_STM3210B_EVAL or USE_STM3210E_EVAL */
if (NewState != DISABLE)
{
GPIO_SetBits(USB_DISCONNECT, USB_DISCONNECT_PIN);
}
else
{   
GPIO_ResetBits(USB_DISCONNECT, USB_DISCONNECT_PIN);
}
#endif /* USE_STM3210C_EVAL */
7.修改void Set_System(void)
/* Configure USB pull-up */
GPIO_InitStructure.GPIO_Pin = USB_DISCONNECT_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_Out_PP ;
GPIO_Init(USB_DISCONNECT, &GPIO_InitStructure);

8编译工程,loaded,即可提示新硬件被识别 。此时会提示你安装DFU 驱动修改安装路径为 C:\WINDOWS\system32\drivers即可

#define USB_DISCONNECT             GPIOG  

#define USB_DISCONNECT_PIN       GPIO_Pin_11

#define RCC_APB2Periph_GPIO_DISCONNECT      RCC_APB2Periph_GPIOG
这三句跟STM32F103ZE的usb关系太大了,要想枚举必须改对这个usb dp 的上拉接口
GPIO_SetBits(USB_DISCONNECT, USB_DISCONNECT_PIN);

}
else
{   
GPIO_ResetBits(USB_DISCONNECT, USB_DISCONNECT_PIN);
一般STM32 USB 的HID的官方例程中这两句是反着的,

 这两句反着 应该是 usb 上拉的 这根线的 接法不同,

还得具体参考原理图。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值