你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F072是否可以通过USB 接口更新程序

[复制链接]
aatt05 提问时间:2016-4-6 14:07 /
想问下STM32F072C是否支持USB接口更新程序?我想在运行自己的程序时,有pc的软件可以让程序进入boot区更新自己的程序.不知道ST是否有这样的更新工具和demo code?
收藏 评论16 发布时间:2016-4-6 14:07

举报

16个回答
xmshao 回答时间:2016-4-6 17:26:53
STM32F072是支持DFU方式,ST有相关工具软件,你到www.stmcu.com.cn 搜索下DFUse,下载相关工具软件和资料。
xmshao 回答时间:2016-4-9 16:05:40
STM32F0根其它系列在中断矢量表这个地方不一样

在你用户程序开始的地方先做矢量拷贝:
int main(void)
{
  uint32_t i = 0;

/* Relocate by software the vector table to the internal SRAM at 0x20000000 ***/  

  /* Copy the vector table from the Flash (mapped at the base of the application
     load address 0x08003000) to the base address of the SRAM at 0x20000000. */
  for(i = 0; i < 48; i++)
  {
    VectorTable = *(__IO uint32_t*)(APPLICATION_ADDRESS + (i<<2));
  }

  /* Enable the SYSCFG peripheral clock*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
  /* Remap SRAM at 0x00000000 */
  SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM);
aatt05 回答时间:2016-4-8 16:43:43
我下载了STM32F0x2_USB-FS-Device_Lib V1.0.0包里面的DFU程序和binary_template。然后仿真通过KEY按下 ,进入判断0x8003000的数据就一直不是0x20000000,无法进入用户程序,一直进入DFU的程序。我在keil 里面 DFU和   binary_template的程序的option targert 空间配置都配置了。为什么会这样呢?感觉binary_template的用户程序就没有下载到0x8003000的地方。有没有使用过STM32F072C 这样处理的呀。网上看的都是STM32F1XX的,还需要设置NVIC_SetVectorTable(),但STM32F072C又没有这些。是哪里的问题呀?
yklstudent 回答时间:2016-4-6 14:34:03
肯定可以,DFU不就是可以嘛
aatt05 回答时间:2016-4-6 14:57:30
那用什么AP软件,我的程序中要加什么代码么?
废鱼 回答时间:2016-4-6 16:06:01
USB可以通过U盘,虚拟串口等方式来进行数据获取,升级过程和IAP一样。只不过获取升级内容的方式不一样。
aatt05 回答时间:2016-4-6 17:38:43
我已经安装了dfuse 了,也运行了STM32F0x2_USB-FS-Device_Lib V1.0.0里面的DFU demo code,使用dfuse软件可以看到DFU Demo的设备,我也找了个hex文件转换为.duf后缀的文件. 但还有个地方不是很清楚,我的设备也是一个USB HID的设备,那DFU Demo code和我的USB code 如何兼容.才可以使用dfuse 更新我的那部分代码呢?
suoma 回答时间:2016-4-6 21:34:07
支持DFU方式
aatt05 回答时间:2016-4-7 16:34:56
我也看了DFU,但不清楚用keil c开发如何把我的程序和DFU程序结合在一起..
yfy123 回答时间:2016-4-8 23:17:36
可以~~~~~
xmshao 回答时间:2016-4-9 16:06:39
再就是APP代码的FLASH和SRAM的起始地址配置
aatt05 回答时间:2016-4-11 12:49:29
矢量拷贝的都有,因为我跑的是STM32F0x2_USB-FS-Device_Lib V1.0.0里面的DFU里面的demo code,但我现在是keil 5 重新配置了keil.布知道是否配置正确,还是说有什么地方还要配置的. 我的配置是下面图

DFU 代码配置

DFU 代码配置

DFU 代码配置

DFU 代码配置

DFU 代码配置

DFU 代码配置
aatt05 回答时间:2016-4-11 12:50:52
我app程序配置.

app配置

app配置

app配置

app配置

app配置

app配置
aatt05 回答时间:2016-4-11 12:55:33
app 空间配置那里irom size写0xd000也不行.我先是使用jlink下载DFU的usbd_dfu.uvprojx工程,然后再使用jlink在线调试binary_template.uvprojx.进入debug后,程序都会跑飞. 真不清楚是我配置问题还是我操作流程不对?DFU不是这样使用的? 这个问题困扰我好几天了...
7.png
12下一页

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版