Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
STM32 bluepill USB引导加载程序DFU_Usb_Stm32_Bootloader_Dfu_Bluepill - Fatal编程技术网

STM32 bluepill USB引导加载程序DFU

STM32 bluepill USB引导加载程序DFU,usb,stm32,bootloader,dfu,bluepill,Usb,Stm32,Bootloader,Dfu,Bluepill,我正在尝试为blue pill STM32F103创建一个基础项目,我可以将其用于多个项目。我想能够闪存设备和发送命令使用串行COM端口使用的mirco USB端口 到目前为止,我已经: 使用STLINK工具成功创建了一个基于“hello world”闪烁LED makefile的项目,该项目已下载到设备 创建UART命令接口,通过串行FTDI设备执行命令 将一个DFU引导加载程序闪存到芯片上,并成功地使用它将我自己的(makefile编译的)bin闪存到设备上 使用DFU时,我发现一旦我将

我正在尝试为blue pill STM32F103创建一个基础项目,我可以将其用于多个项目。我想能够闪存设备和发送命令使用串行COM端口使用的mirco USB端口

到目前为止,我已经:

  • 使用STLINK工具成功创建了一个基于“hello world”闪烁LED makefile的项目,该项目已下载到设备
  • 创建UART命令接口,通过串行FTDI设备执行命令
  • 将一个DFU引导加载程序闪存到芯片上,并成功地使用它将我自己的(makefile编译的)bin闪存到设备上
使用DFU时,我发现一旦我将.bin闪存到设备上,它就不再显示为USB设备。在下面链接的文章之后,我不需要修改我的项目代码的ROM地址,我已经在makefile项目链接器中将文件大小缩短到55k,但仍然没有成功

我的问题是:

  • 当使用DFU引导加载程序时,一旦我的代码正在运行,如果USB堆栈未写入我的应用程序代码中,它如何成为USB设备可见
  • 我需要移动蓝丸上的跳线吗?我已经尝试过各种组合,但都没有成功
  • 对于我来说,在我的项目中通过USB获得串行通信和引导加载程序而不编写和调试我自己独特的引导加载程序的最佳方式是什么

除非在代码中实现USB堆栈,否则它将不再显示为USB设备

对于我来说,获得串行通信和引导加载程序的最佳方式是什么 通过USB在我的项目中没有编写和调试我自己独特的 引导程序


只有一种方法-在应用程序中需要USB堆栈

因此,如果我正确理解了您的问题,那么您希望在MCU板上通过USB闪存DFU,并在其运行时连接到USB串行端口

这可以做到,因为DFU函数是引导加载程序的一部分,USB串行端口是应用程序的一部分

创建虚拟com端口的最简单方法是使用STM32 CubeMX USB CDC。CubeMX生成的源代码可以提取出来并添加到您自己的项目中