Configuración del entorno de desarrollo STM32Duino

STM32Duino: En un capricho repentino, pensé en STM32Duino, que es desarrollar placas STM32 en el IDE de Arduino. Me he encontrado con este modo de desarrollo antes, pero no lo he configurado yo mismo. Después de trabajar durante mucho tiempo, revisé muchos documentos y videos, y vi que otros lo habían configurado con éxito, pero no pude ganar, pero al final logré retocar (la configuración del entorno de desarrollo tiene nunca ha sido fácil): ¡
踩坑Simplemente escribiré otro proceso por ti mismo y luego resumiré las trampas internas!

你在看我这篇文章之前可以通读一遍再操作!!
Este artículo solo se publica en CSDN Qingyun Shuangqing y en el blog personal, todos los demás lugares están portados.

necesito prepararme

  • STM32F103RCT6Sistema mínimo uno (requiere BOOT0/1modo de nivel de pin configurable)
  • ST-Link(con puerto SWCLK/SWDIO) un descargador, con ese tipo de puerto USB o ST oficial grande está bien
  • Un cable de datos, lo uso Mini USBpara el puerto que solo puede suministrar energía a STM32
  • Computadora con sistema operativo Windows (Win10), Arduino IDE 1.8.12 y controlador ST-Link instalados
  • Archivos de hardware compatibles con STM32 (compatibles con STM32F1 y F4) dirección de descarga: dirección original de Github dirección de disco de red
  • Dirección de descarga de BootLoader para STM32Duino: dirección de disco de red de dirección original de Github
  • Administrador de la placa de desarrollo Arduino SAM Boards(debe instalarse en ArduinoIDE)

Opcional, requerido en algunos pasos

0x01, Método 1 (método de grabación directa del programa)

Paso 1. Descargue el archivo de soporte de hardware STM32 y cópielo en hardwareel directorio bajo la ruta de instalación de Arduino

Descargue y descomprima el archivo de hardware STM32 anterior (esto lo hizo el tipo grande en Github, gracias al tipo grande y otras personas que brindan soporte técnico) y cópielo en la ruta de instalación de Arduino, la siguiente es la descripción del texto

Demostración de texto
Tome mi ruta de instalación de Arduino como ejemplo, mi ruta de instalación es:, E:\Program File\Arduino\arduino-1.8.12debajo de esta ruta puede ver su arduino.exearchivo, y también puede ver la carpeta de destino que colocamos hardware, cópielo directamente intacto, solo vaya aquí

HARDWARE
Descripción del contenido
Entra en Arduino_STM3la carpeta, puedes ver

proyecto ilustrar
conductores winArchivos útiles de instalación del controlador del puerto serie en la carpeta interior maple(instalar más tarde)
STM32F1 Documentos de soporte de F1
STM32F4 Documentos de respaldo F4
herramientas Hay 三种操作系统una carpeta correspondiente al programa de grabación correspondiente, que se winpuede stm32flsah.exeusar para grabar BootLoader(se explica más adelante)

Resultados
Abra su IDE de Arduino 工具y 开发板XXXdesplácese hacia abajo para ver que hay muchos tipos de placas compatibles con STM32. ¡STM32F1 y F4shuo indican que los ha agregado correctamente!

herramienta

Paso 2. Vaya a Arduino IDE para instalar Arduino SAM boards(para el paquete de extensión de soporte Arduino STM32)

En 网络良好el caso de la operación (usted entiende lo que significa, recuerde activar el modo global) complete el
Arduino :首选项附加开发板管理器网址

https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json

Guarde, luego vaya a 工具> 开发板XXX> 开发板管理器, luego busque SAM, seleccione la versión predeterminada, haga clic en Instalar y luego espere la instalación (en realidad es bastante rápido si la red es buena)

Compatibilidad con Arduino SAM
Si no tienes un buen entorno de red

Luego descargue este archivo. La dirección de descarga es en realidad una copia que copié para usted después de la instalación. Puede usarla siempre que la coloque en una ubicación específica.
Una vez completada la descarga, descomprímala y cópiela intacta en esta ruta.

C:\Users\你的用户名\AppData\Local\Arduino15\packages

Descripción del contenido
Puede ser algo así como una herramienta de compilación que admita puerto serie o ST-Link
.
soporte arduino

Paso 3. Vaya al IDE de Arduino y comience a grabar la demostración de Blink

acción requerida

Opción A: Configuración en el lado del software (descarga usando STLink)

  • Encuentre la rutina Blink en los ejemplos y abra
  • Seleccione del menú desplegable de 工具>开发板XXXGeneric STM32F103R series
  • variantelegir enSTM32F103RC(48KRAM 256KFlash)
  • Upload methodelegir enSTLink

Configuración de hardware (cableado)

  • Conecte STLink con la placa de desarrollo STM32 (recuerde usar una conexión de 5V)
  • Encienda el STM32 adicionalmente (se usa si su STLink no puede encenderse solo)

Situación 1 En este caso, el programa se puede descargar a la placa normalmente, y está bien presionar el botón de reinicio, y el programa no se interrumpirá
BOOT0 = 0,BOOT1 = 0

Situación 2 En este caso, el programa se puede descargar a la placa, pero el programa dejará de ejecutarse después de presionar el botón de reinicio y se ejecutará después de descargar el programa nuevamente.
BOOT0 = 1,BOOT1 = 0

Descargar demostración GIF

BlinkDemo
ilustrar

  • PA8 corresponde al LED0 de STM32 y PE2 corresponde al LED1 de STM32
  • ¿Por qué hay diferentes fenómenos en diferentes conexiones?Puedes leer BOOT模式artículos relacionados sobre STM32.
  • Este método de grabación no permite que STM32 imprima datos, pero Serila.print()函数no se puede utilizar. ¿No hay forma de solucionarlo? Sí, sigue mirando hacia atrás

Opción B: Configuración en el lado del software (descarga usando el programador CH340G)

  • Encuentre la rutina Blink en los ejemplos y abra
  • Seleccione del menú desplegable de 工具>开发板XXXGeneric STM32F103R series
  • variantelegir enSTM32F103RC(48KRAM 256KFlash)
  • Upload methodelegir enserial

Configuración de hardware (cableado)

  • Conecte el programador CH340G para obtener un puerto serie (verifíquelo en el administrador de dispositivos)
  • Si no hay tierra para los pines RX y TX, deben conectarse a los pines del puerto serie del puerto PA, como se muestra en la figura a continuación.
extremo CH340G lado MCU
TIERRA TIERRA
5V 5V
RX PA9 (TX)
Texas PA10(RX)

ilustrar

  • Debido a 这种情况下大概率载不进去程序algunas , puede ser mi problema, pero si puede usarlo, también puede usar el puerto serie para descargar
  • También es necesario establecer el nivel de BOOT0/1, pero depende de ti jugar contigo mismo
  • El método de apertura de código y los lugares que deben modificarse son los mismos que los anteriores

Resumir

  • Aunque la operación del método 1 es conveniente, tiene desventajas y errores, utilícelo de acuerdo con la situación.
  • La capacidad personal es limitada y no se ha descubierto el problema.

0x02 Método 2 (quemar BootLoader)

Paso 4. Primero instale el nuevo controlador de puerto serie de STM32

Si quieres preguntarme cuál es este puerto serie, no lo sé, solo sé que hay un maplepuerto serie extra llamado

lo que necesitas saber

  • Este puerto serie no es el puerto serie de PA8 y PA9, sino un puerto serie generado desde el Mini USB alimentado en la placa STM32F103RC.
  • La apariencia de este puerto serie necesita instalar el controlador, y no aparecerá si el cargador de arranque no está quemado
  • Se pueden aprender más cosas aquí Haga clic en el enlace para ver

mapleInstalación del controlador serie

Abra la carpeta que copió en el paso 1, ingrese drivesla carpeta y luego ingrese win文件la carpeta, puede ver

123
batA continuación, ejecute los dos archivos por lotes como administrador y espere a que aparezcan successlas palabras

éxito
Entonces, la carpeta se verá así

ser

接着下一步!

Solución A, use el software para grabar el archivo Bootloader correspondiente

Cableado (programación en serie CH340G)

  • CH340GConsulte el método de cableado de programación del programa B en el paso 3 anterior para conectar
  • Instale la herramienta FlashLoader oficial de ST (hay un enlace al paquete de instalación al principio del artículo)
  • BOOT0 = 1,BOOT1 = 0, debe estar conectado así, o el software no lo reconocerá, y luego restaurará el valor predeterminado después de que se complete la grabación

incendio

  • Si se quema, ¿qué quemar? Esto requiere el uso del archivo BootLoader proporcionado por el tipo grande en Github. De manera similar, hay una dirección de descarga al comienzo del artículo.
  • Esta carpeta BootLoader se puede colocar en cualquier lugar
  • Los archivos grabados están en binariela carpeta, habrá muchos al abrir, ¿cuál debo elegir?

Tome C8T6 y RCT6 como ejemplo

proyecto tablero correspondiente
gd32f1_generic_boot20_pc13.bin STM32C8T6
generic_boot20_pa1_button_pa8.bin STM32RCT6
  • ¿Cómo se puede ver esto? Debe juzgarse de acuerdo con el pin conectado a LED0

Grabar demostración de animación

shaolu

nota '

  • 烧录完成后记得把BOOT0 = 0,BOOT1 = 0

Resultado
Reinicie el IDE de Arduino, desconecte el descargador del puerto serie CH340G, conecte el Mini USB que preparamos y luego verá Maple MIni
Oh~~ en el puerto serie, ¡y podrá descargarlo con un solo cable en el futuro! ! !

de serie

Solución B, use el comando para grabar el archivo Bootloader correspondiente

Cableado igual que arriba

  • Tenga en cuenta que al quemarBOOT1 = 0,BOOT 0 =1

incendio

  • El archivo grabado es el mismo que el anterior, pero esta vez se cambia el método, use el programa de grabación incorporado en el archivo stm32flash.exepara grabar

Ver las carpetas debajo de la carpeta STM32_Arduinoen el paso 1toolswin

verás
cmd
nota

  • Recuerde bin文件copiar los archivos que deben grabarse en este lugar para facilitar la búsqueda .

Luego abra esta ubicación en la línea de comando cmd

comando para ver información relacionada

stm32flash.exe COM14(输入识别到的对应的串口,然后就能看到相关的芯片信息)

código

Use esta línea de comando para grabar

stm32flash.exe -w generic_boot20_pa1_button_pa8.bin -v -g 0x0 COM14

Para conocer el significado de más comandos, ejecute el comando de ayuda para ver

stm32flash.exe -help(查看帮助命令)

Próxima demostración de animación

stm32

  • El resto de la operación es la misma que la anterior, 转换BOOT的电平y luego ve al IDE de Arduino para ver si maple Miniaparece
  • Upload methodRecuerda modificarlo al subir el código STM32duino bootloader, porque ahora tienes quemado el bootloader y puedes usarlo

Resumir

  • La operación del Esquema 2 puede usar el puerto serie para imprimir, y solo se necesita un cable Mini para descargar el programa
  • Este método es adecuado para los tableros terminados en el mercado y se puede configurar BOOT电平和留有maple的串口. Los tableros que usted mismo haga pueden necesitar cables voladores o encontrar información relevante para resolver este problema.
  • De hecho, maple端口está conectado a los pines de STM32, por lo que no entraré en detalles sobre cuáles son los dos.
  • Este tipo de operación puede hacer que STM32 sea compatible con la mayoría de las bibliotecas de Arduino, hablemos de problemas específicos

0x03, descarga un código para ver el efecto

Escriba un código para el parpadeo del LED y los números de impresión del puerto serie aquí.
De hecho, no necesita preocuparse demasiado por la velocidad en baudios en STM32Duino, ya que puede imprimir
el código. La placa se reiniciará durante el proceso de descarga y usted puedo oir两次设备识别音

Insertar imagen aquí 321

0x04, el resto es para que lo explores

Creo que si elige usar STM32Duino, es posible que desee jugar solo o usar las ventajas de STM32 para que su código funcione mejor.
Comparemos STM32C8T6 y rduino UNO R3

proyecto STM32C8T6 Arduino UNO R3
Frecuencia de cristal 72m 16M
precio 6-13 yenes 13-35 yenes
escalabilidad Excelente (muchos pines, alta precisión) bien
  • Este artículo se puede considerar como mi historial de pisar el pozo, y no entendí completamente algunos problemas, o no fueron detallados, o hubo errores. Comenta si lo ves
  • Para obtener instrucciones más detalladas, diríjase a Github
  • 怎么回退, conecte directamente el ST-Link para descargar un código de muestra STM32 y todo volverá

Este artículo está editado usando la sintaxis de Markdown, si tiene alguna pregunta, ¡deje un mensaje!

Supongo que te gusta

Origin blog.csdn.net/sinat_41690014/article/details/105456572
Recomendado
Clasificación