Had3s ha scritto:Ringrazio tutti per le risposte, non credevo che la mia domanda avrebbe generato un dibattito così acceso, per un momento mi ero perso tra le risposte.
Il forum serve proprio a questo scambiarsi idee in modo civile
Poi IO ho ragione e questo è un altro dibattito
(ego over 9000 !
)
ESP32 è una bella MCU (dual core, anche se uno è dedicato alla parte di comunicazione)
Pultroppo il suo SW è parecchio acerbo e mal documentato
A meno che non hai in mente un progetto specifico, io spingo verso gli STM32, proprio per la quantità di materiale disponibile e la flessibilità della piattaforma
Per getire un ESP dovrai usare parecchie librerie non credo sia il miglior modo per imparare
Al micro inizia a fare le cose basi ed a imparare cosa fanno i vari moduli (le alimentazioni, il Clock/PLL, USART, USB, SPI, ADC, DMA, PWM, I2C, I/O) poi vai ad aggiungere connettività wireless con tutti i sui "problemi" (entri nell'analogico).
Un modulo USART funziona in modo simile su tutte le piattaforme, se sai come funziona su un STM32 il porting su ESP è lineare
Poi per il costo che hanno le board puoi prendere sia uno che l'altro
LA cosa migliore da fare e scegliere una piattaforma e buttarsi ! Tutte hanno pro e contro, dipende dall'obbietivo
ESP32 + Arduino IDE = Prototipazione veloce con connettività
Arduino (ATMEGA) = Prototipazione veloce, modestà "capacità di calcolo"
ESP32 + ESP-IDF = Sofferenza
STM32 + Arduino IDE = Capacità di calcolo a 32bit + semplicità IDE arduino solo su board selezionate
STM32 + STMCUBE = Inizio più difficile ma potenzialità massime con tutte le board
Tutto ciò che fai con Arduino IDE puoi farlo con STMCUBE ma non il contrario
Poi Io sono del parere che prima di scrivere una linea di codice bisogna sapere cosa fa l'HW.
Sapere che
- Codice: Seleziona tutto
Serial.write(xxx);
invia una stringa sulla porta seriale è un po' fine a sestessa, sapere quale HW viene impiegato è molto più aperta come cosa. (9/10 aruiniani ti diranno che li invia sulla porta USB senza sapere che un chip nel mezzo, ATMEGA328P)
anche perché in HAL è così
- Codice: Seleziona tutto
HAL_UART_Transmit(&huart1, xxx, 10, 100);
L'esempio ARDUINO=APPLE è dato dal fatto che in entrambe le piattaforme le cose funzionano ma l'utente medio non sa perché
Non mi è venuto paragone migliore, ma probabilmente c'è
Winzoz è milgiore però ! Non funziona e non si sa perché
NDR: Se hai voglia puoi anche crearti tu una tua board personalizata !!!
Io ho una rivisitazione della bluepill in cui incorporo un "UPS", EEPROM e USB-C