2eme seance
1e seance : http://famasys.com/site/diy/debuter-avec-la-carte-stm32-nucleo/
https://www.developpez.net/forums/d1525328/general-developpement/programmation-systeme/embarque/decouverte-carte-programmation-embarquee-stm32-nucleo/
http://genelaix.free.fr/IMG/pdf/developpement_logiciel_sur_stm32.pdf
-----------------------
-> Utilisation du CAN CNA :
Converter
http://genelaix.free.fr/IMG/pdf/3_adc_dac.pdf
manuel : https://csserver.evansville.edu/~blandfor/EE354/NucleoBoardUserManual.pdf
lien avec se https://www.emse.fr/~dutertre/documents/cours_convertisseurs.pdf
https://homepages.laas.fr/adoncesc/Cours3.pdf
boulot: projet stm32 http://jmfriedt.free.fr/stm32.pdf
https://www.youtube.com/watch?v=6Z1L6ox63j0
prog le nucleo depuis le rpi : http://ysf-france.fr/f1ptl/downloads/Programmation_STM32F446_Raspi.pdf
->liaison série avec le pc: OK https://os.mbed.com/handbook/SerialPC ouvrir putty se mettre en ssh. baud 9600 + comX trouver le port com dans “gestion de périphérique” lancer putty
->liaison série:
http://tvaira.free.fr/nucleo/nucleo.html http://wiki.labaixbidouille.com/index.php/Communiquer_entre_un_PC_et_la_carte_STM32_Nucleo
→ i2C :
→ x bi:
Schéma des pins du nucléo
PORT SERIE : Nucleo -> PC Objectif du programme : À chaque tour de boucle le programme devra afficher son temps de fonctionnement, mettre à jour l'état de la LED et s'endormir pendant 1 seconde
CODE ORIGINAL
- include "mbed.h" Serial pc(SERIAL_TX, SERIAL_RX); DigitalOut stateLed(LED1); int i = 0; void setup() { Serial port configuration : 115200 bauds, 8-bit data, no parity, Stop bit 1 pc.baud(9600); pc.format(8, SerialBase::None, 1); pc.printf("Run little program !! Run !!\n"); } void loop() { pc.printf("I run since %d seconds.\n", i++); stateLed = !stateLed; wait(1); } int main() { setup(); while(1) { loop(); } }
CODE EXPLIQUER
- include "mbed.h" Serial pc(SERIAL_TX, SERIAL_RX); variable de type serial qui se nomme pc. Elle a 2 parametres Transmission et Réception
DigitalOut stateLed(LED1); variable permettent de contrôler une led (est déja sur la carte) int i = 0;
void setup() { Serial port configuration : 9600 bauds, 8-bit data, no parity, Stop bit 1 pc.baud(9600); La vitesse de transmission (baud rate) est réglée à 115 200 baud/s avec la méthode "baud()", pc.format(8, SerialBase::None, 1); Le format des trames est réglé avec des mots d'une longueur de 8 bits, pas de bit de parité (SerialBase::None) et un bit d’arrêt. pc.printf("Run little program !! Run !!\n"); Message affiché }
void loop() { pc.printf("I run since %d seconds.\n", i++); La transmission sur le port série se fait grâce à la fonction "printf". %d va chercher la valeur de i. i++ permet d’ajouter un à la variable i stateLed = !stateLed; Inversion de la variable ce qui signifie physique allumage de la led. wait(1); attente d’une seconde }
int main() Programme principal { setup(); lance la fonction setup (voir plus haut) while(1) { ceci crée une boucle infini. voici l’intéret d’avoir normé la fonction loop (=boucle) loop(); lance la fonction loop (voir plus haut) } }
Please log in to post comments.