2

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

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

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

问题:

  1. 可以使用Android 中的标准USB 主机库升级微控制器的固件Java吗?
  2. 或者这需要使用NDK, 和端口DfuSe源来完成吗?如果是这样,应该使用哪些库来从NDK?

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

4

2 回答 2

2

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

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

于 2015-02-06T23:12:40.877 回答
0

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

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

于 2015-01-17T23:06:58.383 回答