- Selecció i descàrrega de les plataformes de desenvolupament necessàries per a les plaques Nucleo64
- Diagrama de circuits i configuració de maquinari
- Introducció a STM32CubeMX per a plaques de desenvolupament STM32 Nucleo64
- Programació de la placa de desenvolupament Nucleo64 STM32 mitjançant TrueSTUDIO
- Programa STM32 Nucleo64 per controlar el LED mitjançant un botó de pressió
- Depuració i càrrega de codi a la placa de desenvolupament STM32 Necleo64 mitjançant TrueSTUDIO
Molts de nosaltres hauríem d’estar familiaritzats amb els populars microcontroladors i plaques de desenvolupament com Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051, etc. en dissenys professionals, aviat ens adonarem de les limitacions d’Arduino (com el cost, la versatilitat, l’estabilitat, la velocitat, etc.) i entendre la necessitat de canviar a una plataforma de microcontroladors més nativa com PIC, STM, Renesas, etc.
Ja hem tractat una seqüència de tutorials PIC Microcontroller, que guien els principiants per aprendre microcontroladors PIC. De la mateixa manera, començant per aquest article, també planificarem una seqüència de tutorials de la Junta de Desenvolupament STM32 Nucleo64 que poden ajudar els principiants absoluts a aprendre i desenvolupar-se mitjançant la plataforma STM32. Les taules de desenvolupament Nucleo64 són una plataforma de baix cost i fàcil d'utilitzar tant per a desenvolupadors professionals com per a aficionats. Si sou completament nou a les plaques de desenvolupament Nucleo64 STM32, consulteu aquest vídeo de Nucleo64 Review per entendre els conceptes bàsics d’aquest tauler abans de continuar. El vídeo també mostra com programar STM32 mitjançant la plataforma ARM Mbed però per a aquest tutorial, farem servir una altra plataforma d’ús gratuït de ST Microelectronics anomenada TrueSTUDIO.
Nota: Hi ha moltes versions de les plaques de desenvolupament Nucleo64 STM32, la placa particular que s’utilitza en aquest tutorial és NUCLEO-F030R8. Hem seleccionat aquest tauler principalment pel seu baix cost. Fins i tot, si teniu una versió diferent, la majoria de coses que es comenten al tutorial seran suficients per començar.
Selecció i descàrrega de les plataformes de desenvolupament necessàries per a les plaques Nucleo64
Per començar amb qualsevol microcontrolador, necessitareu un IDE de programació, com ara que tenim Arduino IDE per a plaques Arduino, Atmel Studio per a microcontroladors AVR, MP Lab per PIC, etc. La família STM32 està formada per microcontroladors de 32 bits que admeten els IDE i les cadenes d’eines següents:
- IAR Embedded Workbench® per a ARM® (EWARM).
- Keil MDK-ARM
- TrueSTUDIO
- Sistema Workbench per a STM32
Aquí, per als nostres tutorials, TrueSTUDIO s'utilitzarà per escriure, compilar i depurar codi, ja que es pot descarregar i utilitzar fins i tot per a projectes comercials sense cap requisit de llicència. A continuació, s'utilitzarà STM32CubeMX per generar controladors perifèrics per a les plaques STM32 per facilitar la programació. Per carregar el nostre programa (fitxer hexadecimal) al nostre tauler de desenvolupament, normalment la gent utilitza l' eina STM32 ST-LINK Utility, però en lloc d'això farem servir el mateix TrueSTUDIO. TrueSTUDIO té un mode de depuració que permet als programadors carregar el fitxer hexadecimal directament a la placa STM32. Tant TrueSTUIO com STM32CubeMX són fàcils de descarregar, només heu de seguir l'enllaç següent, registrar-vos i descarregar la configuració. A continuació, instal·leu-los al vostre ordinador portàtil.
- Descarregueu STM32Cube MX
- Descarregueu TrueSTUDIO
Diagrama de circuits i configuració de maquinari
Abans de continuar amb la secció de programari i la codificació, preparem el tauler per a aquest projecte. Com es va esmentar anteriorment en aquest article, controlarem un LED mitjançant un polsador. Ara, si heu vist el vídeo enllaçat anteriorment, ja hauríeu de saber que la vostra placa de desenvolupament STM32 té dos conjunts de pins de connectors a cada banda anomenats pins ST Morpho. Hem connectat un polsador i un LED a aquests pins, tal com es mostra al diagrama del circuit següent.

Les connexions de circuits són fàcils per a aquest projecte, hem de connectar un LED a PA5 de PORTA i un commutador a PC13 de PORTC respecte a GND. Un cop establertes les connexions, la configuració de la meva prova va ser així.

Com a alternativa, també podem utilitzar el LED incorporat i el polsador del tauler. Aquests LED i polsador incorporats també es connecten al mateix pin tal com es mostra al diagrama del circuit. Hem afegit components externs només per a la pràctica. El següent diagrama de pins de la Junta de desenvolupament STM32 serà útil per saber on estan connectats cada pin morfo a bord.

Introducció a STM32CubeMX per a plaques de desenvolupament STM32 Nucleo64
Pas 1: Després de la instal·lació, inicieu STM32CubeMX i seleccioneu el selector de la placa d’accés per seleccionar la placa STM32.

Pas 2: ara cerqueu el tauler pel nom del tauler STM32, com ara NUCLEO-F030R8, i feu clic al tauler que apareix a la imatge. Si teniu un tauler diferent, cerqueu el seu nom respectiu. El programari donarà suport a totes les plaques de desenvolupament STM32 de ST Microelectronics.

Pas 3: Feu clic a Sí, tal com es mostra a la imatge següent, per inicialitzar tots els perifèrics en el seu mode per defecte. Posteriorment, podem canviar els requerits segons el nostre projecte.

Després de fer clic a "Sí", la pantalla serà similar a la imatge següent i al marcador de color verd que indica que s'inicien per defecte.

Pas 4: ara els usuaris poden seleccionar la configuració desitjada de les categories. Aquí, en aquest tutorial, canviarem un LED mitjançant un botó polsador. Per tant, hem de fer el pin LED com a sortida i canviar el pin com INPUT.
Podeu seleccionar qualsevol pin, però estic seleccionant PA5 i canvio el seu estat a GPIO_Output perquè funcioni com a pin de sortida, tal com es mostra a la imatge següent.

De la mateixa manera, estic seleccionant PC13 com a GPIO_Input per poder llegir l’estat del meu polsador.

Com a alternativa, també podem configurar els pins des de la pestanya de configuració i configuració, com es mostra a continuació.

Pas 5: al següent pas, l'usuari pot configurar la freqüència desitjada per al microcontrolador i els pins segons l'oscil·lador intern i extern. Per defecte, se selecciona un oscil·lador intern de cristall de 8 MHz i, mitjançant PLL, aquest 8 es converteix a 48 MHz. És a dir, per defecte, la placa STM32 o el microcontrolador i els pins funcionaran a 48 MHz.

Pas 6: ara moveu-vos al gestor del projecte i doneu un nom al vostre projecte, ubicació del projecte i seleccioneu la cadena d’eines o l’IDE. Aquí estem fent servir TrueSTUDIO, de manera que he seleccionat el mateix que es mostra a continuació.

Pas 7: feu clic a la marca Generar codi al cercle vermell de la imatge següent.

Pas 8: Ara veureu una finestra emergent tal com es fa i feu clic a Obre projecte. Però assegureu-vos que heu instal·lat TrueSTUDIO abans d’aquest pas.

Programació de la placa de desenvolupament Nucleo64 STM32 mitjançant TrueSTUDIO
Ara el vostre codi o projecte s’obrirà automàticament a TrueSTUDIO si TrueSTUDIO demana la ubicació de l’espai de treball i proporcioneu una ubicació de l’espai de treball o aneu amb la ubicació predeterminada.

L'usuari veurà la pantalla que es mostra a continuació i, a continuació, ha de fer clic a la marca de la cantonada en color vermell.

I ara podem veure el codi al nostre IDE TreuSTUDIO. A la part esquerra, a la carpeta 'src', podem veure altres fitxers de programa (amb extensió.c) que ja ens han estat generats des de STM32Cube. Només hem de programar el fitxer main.c. Fins i tot al fitxer main.c ja tindrem poques coses configurades per CubeMX, només hem d’editar-lo perquè s’adapti al nostre programa. El codi complet dins del fitxer main.c es dóna a la part inferior d’aquesta pàgina.

Programa STM32 Nucleo64 per controlar el LED mitjançant un botó de pressió
Com que STM32CubeMX genera tots els codis i controladors necessaris, només hem de configurar un pin LED com a sortida i un polsador com a Entrada. El programa per controlar el led mitjançant el polsador s’ha d’escriure al fitxer main.c. El programa complet es troba a la part inferior d’aquesta pàgina. La seva explicació és la següent
Només tenim codi escrit per canviar el LED mitjançant el polsador. Per aconseguir-ho, primer definim els pins per a LED i polsadors. Aquí hem definit un LED al número Pin 5 de PORTA
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
I definiu el commutador al pin número 13 de PORTC.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
A continuació, a la funció principal, hem inicialitzat tots els perifèrics utilitzats.
/ * Inicialitzar tots els perifèrics configurats * / MX_GPIO_Init (); MX_USART2_Init ();
A continuació, llegiu el polsador amb la sentència if i, si es troba el botó, premeu (BAIX), el LED canviarà el seu estat.
While (1) {/ * CODI D'USUARI FINALITJA MENTRE * / If (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * CODI D'USUARI COMENÇA 3 * /}
Aquí la funció HAL_GPIO_ReadPin (SW_PORT, SW_PIN) té dos arguments, un és PORT i l’altre és un pin al qual està connectat el commutador i aquest pin es configura com INPUT mentre es configura el perifèric a STM32CubeMX.
Depuració i càrrega de codi a la placa de desenvolupament STM32 Necleo64 mitjançant TrueSTUDIO
Ara connecteu la vostra placa a l'ordinador mitjançant el cable del programador. Un cop ho connecteu, el controlador necessari per a la placa s'ha de descarregar automàticament; podeu comprovar-ho mitjançant l'administrador de dispositius.
A continuació, premeu la icona de depuració marcada pel cercle vermell a la imatge que es mostra a continuació per compilar el programa i entrar al mode de depuració.

En mode de depuració, el codi es carregarà automàticament. Ara hem d'executar el codi prement "Reprèn" o F8 (marcat al circuit vermell a la imatge següent).

Ara podem provar el control del LED prement el botó. Segons el codi, el LED hauria de canviar d’estat cada vegada que premeu el botó. El funcionament complet també es pot trobar al vídeo enllaçat a la part inferior d'aquesta pàgina.

Després de fer la prova, també podem finalitzar el programa prement la icona de finalització, marcada pel cercle vermell de la imatge següent.

