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
STM32F103RCT6
Sistema mínimo uno (requiereBOOT0/1
modo 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 USB
para 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
USB转TTL
(CH340G, CP2102 o FT232 están disponibles)- Enlace de descarga
FlashLoader
del software de grabación oficial de ST - Dirección de descarga de descarga del controlador USB a TTL-CH340G
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 hardware
el 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.12
debajo de esta ruta puede ver su arduino.exe
archivo, y también puede ver la carpeta de destino que colocamos hardware
, cópielo directamente intacto, solo vaya aquí
Descripción del contenido
Entra en Arduino_STM3
la carpeta, puedes ver
proyecto | ilustrar |
---|---|
conductores | win Archivos ú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 win puede stm32flsah.exe usar para grabar BootLoader (se explica más adelante) |
Resultados
Abra su IDE de Arduino 工具
y 开发板XXX
desplácese hacia abajo para ver que hay muchos tipos de placas compatibles con STM32. ¡STM32F1 y F4shuo indican que los ha agregado correctamente!
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)
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
.
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
工具
>开发板XXX
Generic STM32F103R series
variant
elegir enSTM32F103RC(48KRAM 256KFlash)
Upload method
elegir 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
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
工具
>开发板XXX
Generic STM32F103R series
variant
elegir enSTM32F103RC(48KRAM 256KFlash)
Upload method
elegir 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 maple
puerto 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
maple
Instalación del controlador serie
Abra la carpeta que copió en el paso 1, ingrese drives
la carpeta y luego ingrese win文件
la carpeta, puede ver
bat
A continuación, ejecute los dos archivos por lotes como administrador y espere a que aparezcan success
las palabras
Entonces, la carpeta se verá así
接着下一步!
Solución A, use el software para grabar el archivo Bootloader correspondiente
Cableado (programación en serie CH340G)
CH340G
Consulte 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
binarie
la 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
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! ! !
Solución B, use el comando para grabar el archivo Bootloader correspondiente
Cableado igual que arriba
- Tenga en cuenta que al quemar
BOOT1 = 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.exe
para grabar
Ver las carpetas debajo de la carpeta STM32_Arduino
en el paso 1tools
win
verás
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(输入识别到的对应的串口,然后就能看到相关的芯片信息)
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
- El resto de la operación es la misma que la anterior,
转换BOOT的电平
y luego ve al IDE de Arduino para ver simaple Mini
aparece Upload method
Recuerda modificarlo al subir el códigoSTM32duino 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两次设备识别音
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á
- Un agradecimiento especial al video UP en la estación B: ArduinoSTM32 Linkage Tutorial
- Un agradecimiento especial por usar Arduino IDE para jugar con STM32
- Artículos Relacionados