2016-05-17 8 views
0

Ich habe eine STM32F102 Mikrocontroller und ich möchte es über die serielle Schnittstelle programmieren.So blinken STM32 über die serielle Schnittstelle

Während es einen Flasher für Windows gibt, möchte ich es auf einer Linux-Maschine tun. Ich versuchte es mit diesem Skript

Ich habe BOOT0 = 1 und BOOT1 = 0, Neustart des Mikrocontrollers. Aber es funktioniert nicht. Ich erhalte die folgende Ausgabe

Can't init. Ensure BOOT0=1, BOOT1=0, and reset device 
Traceback (most recent call last): 
    File "stm32loader.py", line 552, in <module> 
    bootversion = cmd.cmdGet() 
    File "stm32loader.py", line 140, in cmdGet 
    if self.cmdGeneric(0x00): 
    File "stm32loader.py", line 137, in cmdGeneric 
    return self._wait_for_ack(hex(cmd)) 
    File "stm32loader.py", line 88, in _wait_for_ack 
    raise CmdException("No response to %s" % info) 
__main__.CmdException: No response to 0x0 
+0

Ich denke, das ist unmöglich zu reproduzieren, ohne Zugriff auf Ihr spezifisches System. Es könnte zahlreiche Ursachen für das Problem geben. – Lundin

+1

Gibt es ein anderes Dienstprogramm, das mir helfen würde, den Mikrocontroller zu programmieren? Ich kann auch das versuchen ... – RishabhHardas

+1

Warum eine serielle Schnittstelle verwenden? Verwenden Sie einen JTAG-Adapter, geht viel schneller und ist zuverlässiger. – Lundin

Antwort

6

Hier sind ein paar Tipps:

  • Connect serielle Kabel vor dem Zurücksetzen/das Board einschalten. Andernfalls können einige Transienten den seriellen Bootloader stören.

  • Stellen Sie sicher, dass Sie einen TTL-Pegel-USB-Seriell-Wandler anstelle eines RS-232-Kabels verwenden. RS-232 hat einen invertierten Pegel, und schlimmer noch, sein Spannungsbereich von -15V bis 15V kann Ihr STM32 brennen.

  • Vergewissern Sie sich, dass RX und TX richtig angeschlossen sind.

  • Verwenden Sie stattdessen stm32flash.

  • Die meisten seriellen Bootloader STM32 unterstützen keine Baudrate höher als 115200, wie ich mich erinnere. Der Bootloader kann die Baudrate automatisch erkennen, die, die ich normalerweise verwende, ist 57600.

0

Einige dieser Chips werden mit gesperrten Bootloadern ausgeliefert. Sie müssen STM32 Flash loader demonstrator verwenden, um den Schutz zu entfernen. Windows nur leider, aber sobald es freigeschaltet ist, können Sie jede Maschine benutzen.

Verwandte Themen