- Selezione e download delle piattaforme di sviluppo richieste per schede Nucleo64
- Schema del circuito e configurazione hardware
- Introduzione a STM32CubeMX per schede di sviluppo STM32 Nucleo64
- Programmazione della scheda di sviluppo STM32 Nucleo64 utilizzando TrueSTUDIO
- Programma STM32 Nucleo64 per controllare i LED utilizzando il pulsante
- Debug e caricamento del codice nella scheda di sviluppo STM32 Necleo64 utilizzando TrueSTUDIO
Molti di noi dovrebbero avere familiarità con i microcontrollori popolari e le schede di sviluppo come Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051, ecc. In effetti, per la maggior parte delle persone, Arduino sarebbe stata la loro prima scheda di sviluppo, ma mentre scaviamo in profondità e iniziamo progetti professionali, presto realizzeremo i limiti di Arduino (come costo, versatilità, stabilità, velocità, ecc.) e capiremo la necessità di passare a una piattaforma di microcontrollori più nativa come PIC, STM, Renesas, ecc.
Abbiamo già coperto una sequenza di tutorial sui microcontrollori PIC, che guidano i principianti nell'apprendimento dei microcontrollori PIC. Allo stesso modo, a partire da questo articolo, pianificheremo anche una sequenza di tutorial della scheda di sviluppo STM32 Nucleo64 che possono aiutare i principianti assoluti a imparare e sviluppare utilizzando la piattaforma STM32. Le schede di sviluppo Nucleo64 sono piattaforme a basso costo e facili da usare per sviluppatori professionisti e per hobbisti. Se sei completamente nuovo alle schede di sviluppo STM32 Nucleo64, dai un'occhiata a questo video di revisione di Nucleo64 per comprendere le basi di questa scheda prima di procedere ulteriormente. Il video mostra anche come programmare STM32 utilizzando la piattaforma ARM Mbed ma per questo tutorial useremo un'altra piattaforma gratuita di ST Microelectronics chiamata TrueSTUDIO.
Nota: esistono molte versioni delle schede di sviluppo STM32 Nucleo64, la scheda particolare utilizzata in questo tutorial è NUCLEO-F030R8. Abbiamo selezionato questa tavola principalmente per il suo basso costo. Anche se hai una versione diversa, la maggior parte delle cose discusse nel tutorial saranno sufficienti per iniziare.
Selezione e download delle piattaforme di sviluppo richieste per schede Nucleo64
Per iniziare con qualsiasi microcontrollore sarà necessario un IDE di programmazione come abbiamo Arduino IDE per schede Arduino, Atmel Studio per microcontrollore AVR, MP Lab per PIC, ecc. Quindi qui abbiamo anche bisogno di un IDE per le nostre schede STM32 Nucleo64 per eseguire la programmazione e il debug. La famiglia STM32 è composta da microcontrollori a 32 bit che supportano i seguenti IDE e toolchain:
- IAR Embedded Workbench® per ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- System Workbench per STM32
Qui per i nostri tutorial, TrueSTUDIO verrà utilizzato per scrivere, compilare e eseguire il debug del codice perché è gratuito da scaricare e utilizzare anche per progetti commerciali senza alcun requisito di licenza. Quindi STM32CubeMX verrà utilizzato per generare driver periferici per le schede STM32 per semplificare la programmazione. Per caricare il nostro programma (file esadecimale) nella nostra scheda di sviluppo, le persone normalmente usano lo strumento STM32 ST-LINK Utility, ma invece utilizzeremo TrueSTUDIO stesso per farlo. TrueSTUDIO ha una modalità di debug che consente ai programmatori di caricare il file esadecimale direttamente sulla scheda STM32. Sia TrueSTUIO che STM32CubeMX sono facili da scaricare, basta seguire il link sottostante, registrarsi e scaricare il setup. Quindi installali sul tuo laptop.
- Scarica STM32Cube MX
- Scarica TrueSTUDIO
Schema del circuito e configurazione hardware
Prima di procedere con la sezione software e la codifica, prepariamo la nostra scheda per questo progetto. Come accennato in precedenza in questo articolo, controlleremo un LED utilizzando un pulsante. Ora, se hai visto il video collegato sopra, dovresti già sapere che la tua scheda di sviluppo STM32 ha due serie di pin di connessione su entrambi i lati chiamati pin ST Morpho. Abbiamo collegato un pulsante e un LED a questi pin come mostrato nello schema del circuito sottostante.
I collegamenti dei circuiti sono facili per questo progetto, dobbiamo collegare un LED a PA5 di PORTA e uno switch a PC13 di PORTC rispetto a GND. Una volta effettuati i collegamenti, la mia configurazione di prova appariva così.
In alternativa, possiamo anche utilizzare il LED e il pulsante integrati sulla scheda. Questi LED e pulsanti incorporati sono anch'essi collegati allo stesso pin come mostrato nello schema del circuito. Abbiamo aggiunto componenti esterni solo per esercitazione. Il diagramma dei pin sotto della scheda di sviluppo STM32 tornerà utile per sapere dove sono collegati i pin morpho a bordo.
Introduzione a STM32CubeMX per schede di sviluppo STM32 Nucleo64
Passaggio 1: dopo l'installazione, avviare STM32CubeMX, quindi selezionare il selettore della scheda di accesso per selezionare la scheda STM32.
Passaggio 2: ora cerca la scheda in base al nome della scheda STM32 come NUCLEO-F030R8 e fai clic sulla scheda mostrata nell'immagine. Se hai una bacheca diversa, cerca il suo rispettivo nome. Il software supporterà tutte le schede di sviluppo STM32 di ST Microelectronics.
Passaggio 3: ora fare clic su Sì come mostrato nell'immagine sottostante, per inizializzare tutte le periferiche nella modalità predefinita. Successivamente possiamo modificare quelli richiesti in base alle esigenze del nostro progetto.
Dopo aver fatto clic su "Sì", lo schermo sarà simile all'immagine sottostante e il pin di colore verde indica che sono avviati per impostazione predefinita.
Passaggio 4: ora gli utenti possono selezionare l'impostazione desiderata dalle categorie. Qui in questo tutorial, accenderemo un LED utilizzando un pulsante. Quindi, dobbiamo rendere il pin LED come output e cambiare il pin come INPUT.
Puoi selezionare qualsiasi pin, ma sto selezionando PA5 e cambiando il suo stato in GPIO_Output per farlo funzionare come un pin di output come mostrato nell'immagine sottostante.
Allo stesso modo, sto selezionando PC13 come GPIO_Input in modo da poter leggere lo stato del mio pulsante.
In alternativa, possiamo configurare anche i pin dalla scheda di pinout e configurazione come mostrato di seguito.
Passaggio 5: nel passaggio successivo, l'utente può impostare la frequenza desiderata per il microcontrollore e i pin in base all'oscillatore esterno e interno. Per impostazione predefinita, viene selezionato un oscillatore a cristallo interno da 8 MHz e utilizzando PLL, questo 8 viene convertito a 48 MHz. Significa che per impostazione predefinita la scheda STM32 o il microcontrollore ei pin funzioneranno a 48 MHz.
Passaggio 6: ora spostati nel project manager e dai un nome al tuo progetto, posizione del progetto e seleziona toolchain o IDE. Qui stiamo usando TrueSTUDIO, quindi ho selezionato lo stesso come mostrato di seguito.
Passaggio 7: ora fai clic su Genera codice contrassegnato dal cerchio rosso nell'immagine sottostante.
Passaggio 8: ora vedrai un popup come indicato, quindi fai clic su Apri progetto. Tuttavia, assicurati di aver installato TrueSTUDIO prima di questo passaggio.
Programmazione della scheda di sviluppo STM32 Nucleo64 utilizzando TrueSTUDIO
Ora il codice o il progetto si aprirà automaticamente in TrueSTUDIO se TrueSTUDIO richiede la posizione dell'area di lavoro, quindi fornire una posizione dell'area di lavoro o andare con la posizione predefinita.
L'utente vedrà la schermata indicata di seguito e quindi dovrà fare clic sul segno d'angolo in colore rosso.
E ora possiamo vedere il codice nel nostro TreuSTUDIO IDE. Sul lato sinistro sotto la cartella "src" possiamo vedere altri file di programma (con estensione.c) che sono già stati generati per noi da STM32Cube. Dobbiamo solo programmare il file main.c. Anche nel file main.c avremo già poche cose impostate per noi da CubeMX, dobbiamo solo modificarlo per adattarlo al nostro programma. Il codice completo all'interno del file main.c è fornito in fondo a questa pagina.
Programma STM32 Nucleo64 per controllare i LED utilizzando il pulsante
Poiché tutto il driver e il codice richiesti sono generati da STM32CubeMX, dobbiamo solo configurare un pin LED come output e un pulsante come input. Il programma per il controllo dei led tramite il pulsante deve essere scritto nel file main.c. Il programma completo si trova in fondo a questa pagina. La spiegazione è la seguente
Abbiamo solo codice scritto per accendere il LED utilizzando il pulsante. Per ottenere ciò, definiamo prima i pin per LED e pulsanti. Qui abbiamo definito un LED al numero del Pin 5 di PORTA
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
E definire l'interruttore al numero pin 13 di PORTC.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Quindi nella funzione principale, abbiamo inizializzato tutte le periferiche utilizzate.
/ * Inizializza tutte le periferiche configurate * / MX_GPIO_Init (); MX_USART2_Init ();
Quindi leggere il pulsante utilizzando l'istruzione if e se il pulsante viene trovato premere (LOW), il LED commuterà il suo stato.
While (1) {/ * USER CODE END WHILE * / If (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * USER CODE BEGIN 3 * /}
Qui la funzione HAL_GPIO_ReadPin (SW_PORT, SW_PIN) ha due argomenti, uno è PORT e l'altro è un pin a cui è collegato lo switch e questo pin è configurato come INPUT durante la configurazione della periferica in STM32CubeMX.
Debug e caricamento del codice nella scheda di sviluppo STM32 Necleo64 utilizzando TrueSTUDIO
Ora collega la tua scheda al computer utilizzando il cavo del programmatore. Una volta collegato, il driver richiesto per la scheda dovrebbe essere scaricato automaticamente, puoi verificarlo utilizzando il gestore dispositivi.
Quindi, premere l'icona di debug contrassegnata dal cerchio rosso nell'immagine sottostante per compilare il programma ed entrare in modalità debug.
In modalità debug, il codice verrà caricato automaticamente. Ora dobbiamo eseguire il codice premendo 'Resume' o F8 (contrassegnato nel circuito rosso nell'immagine sotto).
Ora possiamo testare il controllo del LED premendo il pulsante. Secondo il codice, il LED dovrebbe cambiare il suo stato ogni volta che si preme il pulsante. La lavorazione completa la trovate anche nel video linkato in fondo a questa pagina.
Dopo il test, possiamo anche terminare il programma premendo l'icona di terminazione, contrassegnata dal cerchio rosso nell'immagine sottostante.