Difference between revisions of "STM32 Nucleo"
Line 41: | Line 41: | ||
Appuyez le bouton User de la carte pour voir le résultat. |
Appuyez le bouton User de la carte pour voir le résultat. |
||
+ | |||
+ | |||
+ | ==Utilisation du port série== |
||
+ | Recommencez les étapes précédentes avec le programme ci-dessous et copiez le .bin produit sur le disque ''Nucleo''. |
||
+ | |||
+ | <pre> |
||
+ | #include "mbed.h" |
||
+ | |||
+ | AnalogIn analog_value(A0); |
||
+ | |||
+ | DigitalOut myled(LED1); |
||
+ | |||
+ | // Calculate the corresponding acquisition measure for a given value in mV |
||
+ | #define MV(x) ((0xFFF*x)/3300) |
||
+ | |||
+ | int main() { |
||
+ | while(1) { |
||
+ | uint16_t meas = analog_value.read_u16(); // Converts and read the analog input value |
||
+ | printf("Value %d \n", meas); |
||
+ | |||
+ | if (meas > MV(1000)) { // If the value is greater than 1000 mV toggle the LED |
||
+ | myled = !myled; |
||
+ | } |
||
+ | wait(0.2); // 200 ms |
||
+ | } |
||
+ | } |
||
+ | </pre> |
||
+ | |||
+ | Ouvrez le port série de la carte pour l'affichage de la console de la carte : fonction ''printf()'' |
||
+ | |||
+ | <pre> |
||
+ | dmesg | grep tty |
||
+ | cat /dev/ttyACM0 |
||
+ | </pre> |
||
+ | |||
+ | Vous pouvez utiliser aussi ''moserial'' |
||
+ | <pre> |
||
+ | sudo apt-get update |
||
+ | sudo apt-get install moserial |
||
+ | </pre> |
||
+ | |||
==Pour continuer== |
==Pour continuer== |
Revision as of 11:57, 7 July 2014
Les cartes Nucleo sont des cartes STM32 découvertes (très peu chères : 9 euros HT chez Farnell) supportant les shields Arduino. La programmation et le debug passe par le port USB (ST-Link/V2-1). Le port USB émule le Serial USB. Le PCB est sécable pour détacher le programmateur ST-Link/V2-1. Elles sont programmables avec l'IDE en mode SaaS Mbed.
Premiers Pas (Getting Started)
1) Créez vous un compte sur http://mbed.org
2) Sélectionnez la carte Nucleo que vous possédez (pour ma part, une ST-Nucleo-F072RB).
3) Ouvrez l'IDE avec cette carte (Bouton Open mBed Compiler)
4) Créez un nouveau programme menu New > New Program ...
5) Utilisez un des templates (par exemple Nucleo Read Button)
#include "mbed.h" DigitalIn mybutton(USER_BUTTON); DigitalOut myled(LED1); int main() { while(1) { if (mybutton == 0) { // Button is pressed myled = !myled; // Toggle the LED state wait(0.2); // 200 ms } } }
6) Compilez (menu Compile)
Un fichier .bin est généré et téléchargé
7) Copiez le fichier .bin à la racine du disque amovible Nucleo qui se trouve sur votre poste.
La carte Nucleo flashe le binaire et redémarre.
Appuyez le bouton User de la carte pour voir le résultat.
Utilisation du port série
Recommencez les étapes précédentes avec le programme ci-dessous et copiez le .bin produit sur le disque Nucleo.
#include "mbed.h" AnalogIn analog_value(A0); DigitalOut myled(LED1); // Calculate the corresponding acquisition measure for a given value in mV #define MV(x) ((0xFFF*x)/3300) int main() { while(1) { uint16_t meas = analog_value.read_u16(); // Converts and read the analog input value printf("Value %d \n", meas); if (meas > MV(1000)) { // If the value is greater than 1000 mV toggle the LED myled = !myled; } wait(0.2); // 200 ms } }
Ouvrez le port série de la carte pour l'affichage de la console de la carte : fonction printf()
dmesg | grep tty cat /dev/ttyACM0
Vous pouvez utiliser aussi moserial
sudo apt-get update sudo apt-get install moserial
Pour continuer
- http://wiki.labaixbidouille.com/index.php?title=Communiquer_entre_un_PC_et_la_carte_STM32_Nucleo
- Installation de l'interpréteur Javascript Espruino (A FAIRE CET ETE)