Android版STM32设备固件升级(DFU / DfuSe)

时间:2015-01-15 23:04:42

标签: android android-ndk usb stm32 dfu

我有一个STM32F4微控制器连接到Android(4.4)USB主机端口。我想从Android设备进行微控制器的固件升级。

===================                           ===================
|   Android 4.4   | <=======================> |   STM32F405xx   |
|     Device      | USB Host      USB Device  | Microcontroller |
===================                           ===================

传统上,STM32微控制器可以使用ST提供的名为DfuSe Utility的PC工具升级其固件。但我需要从Android设备执行此操作。提供了他们工具的来源。

问题:

  1. 可以使用Java中来自Android的标准USB Host libraries升级微控制器的固件吗?
  2. 或者是否需要使用NDK完成此操作,并移植DfuSe来源?如果是,应使用哪些库从NDK
  3. 访问USB

    应该采取哪个方向以及如何做到这一点?

2 个答案:

答案 0 :(得分:2)

我们最终创建了自己的解决方案,使用DFU直接从Android上通过USB编程STM32微控制器,而无需使用NDK。我们在这里开源项目:

https://github.com/UmbrelaSmart/android-stm32-dfu-programmer

答案 1 :(得分:0)

在我的项目中,我只是将STM32编程为虚拟com端口设备,并定义了一组简单的通信协议来擦除/写入STM32的内部闪存。我认为你可以为Andriod做同样的事情,但我不知道android中是否存在虚拟com端口的驱动程序。

但无论如何,一旦你可以向STM32传输一个字节,就可以让它自己编程。引导加载程序的基本功能非常简单,它只是接收数据并将它们写入应有的位置。