2eme seance

https://developer.mbed.org/

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

  1. 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

  1. 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.