Bonjour,
Comme dit dans l'intitulé, j'utilise une carte Arduino M0 mini avec un module bluetooth low energy de Adafruit.
J'ai deux problèmes,
le premier, il m'est impossible d'utiliser les commandes "AT".
Le second, il m'est impossible d'afficher les informations du module dans le moniteur série.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
 
#include <Arduino.h>
#include <SPI.h>
#include "Adafruit_BLE.h"
#include "Adafruit_BluefruitLE_SPI.h"
#include "Adafruit_BluefruitLE_UART.h"
 
#include "BluefruitConfig.h"
 
#if SOFTWARE_SERIAL_AVAILABLE
  #include <SoftwareSerial.h>
#endif
 
#define FACTORYRESET_ENABLE     0 //si 1=reset parametre d'usine si 0=ne reset pas
 
//logiciel SPI, utilisant des broches SPI définies par l'utilisateur SCK / MOSI / MISO, puis CS / IRQ / RST sélectionné par l'utilisateur
//Adafruit_BluefruitLE_SPI ble ( BLUEFRUIT_SPI_SCK , BLUEFRUIT_SPI_MISO ,BLUEFRUIT_SPI_MOSI , BLUEFRUIT_SPI_CS ,BLUEFRUIT_SPI_IRQ , BLUEFRUIT_SPI_RST );
 
// SPI materiel CS=8, IRQ=7, RST=4;(fonctionne mais plus lent).
Adafruit_BluefruitLE_SPI ble ( BLUEFRUIT_SPI_SCK , BLUEFRUIT_SPI_MISO ,BLUEFRUIT_SPI_MOSI, BLUEFRUIT_SPI_CS ,BLUEFRUIT_SPI_IRQ , BLUEFRUIT_SPI_RST );
 
 
// A small helper
void error(const __FlashStringHelper*err) {
  SerialUSB.print(err);
  SerialUSB.print("\n");
  while (1);
}
 
// Recherche constamment de nouvelles données de commande ou de réponse
void getUserInput(char buffer[], uint8_t maxSize)
{
  memset(buffer, 0, maxSize);
  while( Serial.available() == 0 ) {
    delay(1);
  }
}
 
 
uint8_t count=0;
 
 
char buffer[256]; //stockage de données.
uint8_t maxSize;
 
/*============================================================================================*/
 
void setup(void)
{
 
  Serial.begin(115200);      
 
  // desactive les commandes echo de Bluefruit
  ble.echo(false);
 
 
}
 
/*============================================================================================*/
 
void loop(void)
{
  delay(1000);
  SerialUSB.println("Début dans 5 sec");
  delay(5000);
  SerialUSB.println("*******************************************************************");
  SerialUSB.println("*******************************************************************");
  delay(1000);
 
  SerialUSB.print("Test des commandes AT, Adafruit Bluefruit module bluetooth LE\n"); // Message de commencement.
  SerialUSB.print("-------------------------------------\n"); //
  delay(1000);
  SerialUSB.print(("Initialisation du module bluetooth Bluefruit LE\n"));// Initialisation/detection du module bluetooth LE
 
 
  if ( !ble.begin(VERBOSE_MODE) ) // Si l'object 'ble' est vrai alors verbode_mode -> affiche les informations du module.
  {
    error(F("Impossible de trouver, est-il en mode CoMmanD ? Vérifiez le câblage."));// Si object 'ble' faux alors message error
  }
 
  SerialUSB.println("OK!\n");// Si 1er condition remplie alors affiche 'ok'.
  delay(1000);
  if ( FACTORYRESET_ENABLE )
  {
    Serial.println("Effectuer une réinitialisation d'usine: ");
    if ( ! ble.factoryReset())
    {
      error(F("Impossible de réinitialiser les paramètres d'usine"));
    }
  }
 
 
  //affiche les informations Bluefruit
  SerialUSB.println("Demande des infos Bluefruit:");
  ble.info();
 
  delay(1000); //attt 1 sec
  SerialUSB.println("*******************************************************************");
  delay(1000);
  SerialUSB.println("*******************************************************************");
  delay(1000);
 
/********************************************************************************/ 
/****Interroger en permanence les nouvelles données de commande ou de réponse****/
/********************************************************************************/
 
  // Afficher l'invite de commande
  SerialUSB.print("AT > ");
 
 
  // Vérifiez les entrées de l'utilisateur et réitérez-les si quelque chose a été trouvé
  char command[BUFSIZE+1];
  getUserInput(command, BUFSIZE);
 
  // Envoie de la commande
  ble.println(command);
 
  //Vérifier l'état de la réponse
  ble.waitForOK();
 
  do
  {
    count += Serial.readBytes(buffer+count, maxSize);
    delay(2);
  } while( (count < maxSize) && !(Serial.available() == 0) );
}
Je ne comprends pas pourquoi en ligne 93, les informations ne s'affichent pas et ensuite qu'il me soit impossible d'utiliser les commandes "AT".
Pouvez-vous m'aider s'il vous plaît. Merci.
Bonne journée.