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

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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版