Sommario:
- Passaggio 1: requisiti software e hardware
- Passaggio 2: configurazione STM32CubeMX
- Passaggio 3: sviluppo software Keil
- Passaggio 4: sviluppo software Python
- Passaggio 5: conclusione
Video: STM32F4 Discovery Board e comunicazione Python USART (STM32CubeMx): 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Ciao! In questo tutorial cercheremo di stabilire una comunicazione USART tra STM32F4 ARM MCU e Python (può essere sostituito da qualsiasi altro linguaggio). Quindi iniziamo:)
Passaggio 1: requisiti software e hardware
In termini di hardware hai bisogno di:
- STM32F4 Discovery Board (o qualsiasi altra scheda STM32)
- Convertitore da USB a TTL
In termini di software:
- STM32CubeMX
- Keil uVision5
- Python con libreria seriale installata
Passaggio 2: configurazione STM32CubeMX
Per prima cosa capiamo cosa vogliamo fare. Vogliamo trasmettere i dati alla scheda da Python su USART e verificare se abbiamo dati corretti e led di commutazione. Quindi, abbiamo bisogno di abilitare USART e Led.
-
Abilita USART2 dalla scheda Connettività.
- Cambia modalità in Asincrono
- Velocità di trasmissione fino a 9600 bit/s
- Lunghezza della parola a 8 bit senza parità
- Nessun bit di parità
- Dalle impostazioni DMA aggiungi USART2_RX in modalità circolare
- Da NVIC Settings abilita l'interrupt globale USART2
- Abilita LED facendo clic su PD12
Quindi genera il codice:)
Passaggio 3: sviluppo software Keil
#includere
#includere
Queste librerie saranno necessarie nelle operazioni sulle stringhe e per definire la variabile booleana.
/* CODICE UTENTE BEGIN 2 */ HAL_UART_Receive_DMA(&huart2, (uint8_t *) data_buffer, 1); /* FINE CODICE UTENTE 2 */
Qui, la ricezione UART con DMA è iniziata.
/* USER CODE BEGIN 4 */void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { /* Previeni l'avviso di compilazione degli argomenti non utilizzati */ UNUSED(huart); /* NOTA: Questa funzione non deve essere modificata, quando è necessaria la richiamata, l'HAL_UART_RxCpltCallback potrebbe essere implementato nel file utente */ if(data_buffer[0] != '\n'){ data_full[index_] = data_buffer[0]; indice_++; }else{ indice_ = 0; finito = 1; } //HAL_UART_Transmit(&huart2, data_buffer, 1, 10); } /* FINE CODICE UTENTE 4 */
Questo è ISR che viene attivato quando otteniamo un byte di carattere. Così. otteniamo quel byte e lo scriviamo nel data_full che contiene tutti i dati ricevuti finché non otteniamo '\n'. Quando otteniamo '\n' creiamo il flag 1 finito e nel ciclo while:
while (1) { /* USER CODE END WHILE */ if(finished){ if(strcmp(data_full, cmp_) == 0){ HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12); } memset(data_full, '\0', strlen(data_full)); finito = 0; }else{ _NOP (); } /* CODICE UTENTE BEGIN 3 */ }
Se il flag di fine è ALTO confrontiamo il contenuto dei dati ricevuti completi e dei dati che desideriamo e se sono uguali attiviamo il led. Dopodiché cancelliamo il flag finito e aspettiamo nuovi dati e cancelliamo anche l'array data_full per non sovrascrivere l'array.
Passaggio 4: sviluppo software Python
Quindi, qui vogliamo inviare il nostro numero con '/n' alla fine, perché il software Keil dovrà vederlo per conoscere la fine.
importazione seriale
ser = serial. Serial('COM17') #controlla quella porta sul tuo dispositivo da Gestione dispositivi
ser.write(b'24\n')
Dovresti vedere che il LED si attiva ogni volta che invii '24\n'. Se invii qualcos'altro, non dovrebbe influire su di esso.
Passaggio 5: conclusione
Siamo arrivati alla fine del tutorial. se hai qualche problema o domanda non esitare a chiedere. Cercherò di aiutare il più possibile. Grazie mille:)
Consigliato:
Comunicazione wireless SmartHome: le basi estreme di MQTT: 3 passaggi
Comunicazione wireless SmartHome: le basi estreme di MQTT: Nozioni di base MQTT: ** Farò una serie di automazione domestica, seguirò i passaggi che ho seguito per imparare tutto ciò che ho fatto in futuro. Questo Instructable è la linea di base su come configurare MQTT da utilizzare nei miei futuri Instructables. Tuttavia
Auto telecomandata con modulo di comunicazione NRF24L01 PA LNA: 5 passaggi
Auto telecomandata con modulo di comunicazione NRF24L01 PA LNA: In questo argomento, vorremmo condividere come realizzare un'auto telecomandata con il modulo NRF24L01 PA LNA. In realtà ci sono molti altri moduli radio, come i moduli radio 433MHz, HC12, HC05 e LoRa. Ma secondo noi il mod NRF24L01
PIC MCU e comunicazione seriale Python: 5 passaggi
PIC MCU e comunicazione seriale Python: Ciao, ragazzi! In questo progetto cercherò di spiegare i miei esperimenti su PIC MCU e comunicazione seriale Python. Su Internet, ci sono molti tutorial e video su come comunicare con PIC MCU tramite terminale virtuale, il che è molto utile. Tuttavia
Comunicazione seriale Arduino e Python - Display della tastiera: 4 passaggi
Comunicazione seriale Arduino e Python - Display tastiera: questo progetto è fatto per utenti mac ma può essere implementato anche per Linux e Windows, l'unico passaggio che dovrebbe essere diverso è l'installazione
ESP8266 e comunicazione Python per i nibbi: 6 passaggi
ESP8266 e Python Communication For Noobs: questa guida ti consente di ottenere qualsiasi dato da ESP8266 e controllarlo su Python senza comandi AT. Per i principianti, la maggior parte delle guide sull'utilizzo di ESP8266 è difficile, perché vogliono che tu lampeggi "AT COMMANDS "in chip, che è: Unnecessary Wast