Erreur (ARM_MATH_CM4)\par

Bonjour,
sur une carte NANO 33 BLE SENSE, j'ai tenté d'utiliser l'exemple de programme de gestion du microphone Nano33BLESensorExample_microphoneRMS.ino, après avoir installé la version 2.0 des cartes Arduino MBED OS boards.
Il me semble que pendant la compilation, à plusieurs endroits s'ajoute "\par" , qui n'existe pas dans le fichier d'origine.

Une idée de l'origine du problème ?
Merci

Voici le code :

/*
  Nano33BLESensorExample_microphoneRMS.ino
  Copyright (c) 2020 Dale Giancono. All rights reserved..

  This program is an example program showing some of the cababilities of the 
  Nano33BLESensor Library. In this case it outputs RMS microphone data and 
  proximity data from two of the Arduino Nano 33 BLE Sense's on board 
  sensors via serial in a format that can be displayed on the Arduino IDE 
  serial plotter. It also outputs the data via BLE in a string format that 
  can be viewed using a variety of BLE scanning software.

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <https://www.gnu.org/licenses/>.
*/
/*****************************************************************************/
/*INCLUDES                                                                   */
/*****************************************************************************/
#include "Arduino.h"
/* For the bluetooth funcionality */
#include <ArduinoBLE.h>
#include "Nano33BLEMicrophoneRMS.h"

/*****************************************************************************/
/*MACROS                                                                     */
/*****************************************************************************/
/* 
 * We use strings to transmit the data via BLE, and this defines the buffer
 * size used to transmit these strings. Only 20 bytes of data can be 
 * transmitted in one packet with BLE, so a size of 20 is chosen the the data 
 * can be displayed nicely in whatever application we are using to monitor the
 * data.
 */
#define BLE_BUFFER_SIZES             20
/* Device name which can be scene in BLE scanning software. */
#define BLE_DEVICE_NAME                "Arduino Nano 33 BLE Sense"
/* Local name which should pop up when scanning for BLE devices. */
#define BLE_LOCAL_NAME                "MicrophoneRMS BLE"

/*****************************************************************************/
/*GLOBAL Data                                                                */
/*****************************************************************************/
/* 
 * Nano33BLEMicrophoneRMSData and Nano33BLEProximityData object which we will 
 * store data in each time we read the microphone and proximity data. 
 */ 
Nano33BLEMicrophoneRMSData microphoneData;

/* 
 * Declares the BLEService and characteristics we will need for the BLE 
 * transfer. The UUID was randomly generated using one of the many online 
 * tools that exist. It was chosen to use BLECharacteristic instead of 
 * BLEIntCharacteristic was it is hard to view int data in most BLE 
 * scanning software. Strings can be viewed easiler enough. In an actual 
 * application you might want to transfer ints directly.
 */
BLEService BLESensors("590d65c7-3a0a-4023-a05a-6aaf2f22441c");
BLECharacteristic microphoneRMSBLE("000F", BLERead | BLENotify | BLEBroadcast, BLE_BUFFER_SIZES);

/* Common global buffer will be used to write to the BLE characteristics. */
char bleBuffer[BLE_BUFFER_SIZES];
/*****************************************************************************/
/*SETUP (Initialisation)                                                     */
/*****************************************************************************/
void setup()
{
    /* 
     * Serial setup. This will be used to transmit data for viewing on serial 
     * plotter 
     */
    Serial.begin(115200);
    while(!Serial);


    /* BLE Setup. For information, search for the many ArduinoBLE examples.*/
    if (!BLE.begin()) 
    {
        while (1);    
    }
    else
    {
        BLE.setDeviceName(BLE_DEVICE_NAME);
        BLE.setLocalName(BLE_LOCAL_NAME);
        BLE.setAdvertisedService(BLESensors);
        /* A seperate characteristic is used for each kind of data. */
        BLESensors.addCharacteristic(microphoneRMSBLE);

        BLE.addService(BLESensors);
        BLE.advertise();
        /* 
         * Initialises the microphone and proximity sensor, and starts the 
         * periodic reading of the sensor using a Mbed OS thread. 
         * The data is placed in a circular buffer and can be read whenever.
         */
        MicrophoneRMS.begin();

        /* Plots the legend on Serial Plotter */
        Serial.println("MicrophoneRMS\r\n");
    }
}

/*****************************************************************************/
/*LOOP (runtime super loop)                                                  */
/*****************************************************************************/
void loop()
{
    BLEDevice central = BLE.central();
    if(central)
    {
        int writeLength;
        /* 
         * If a BLE device is connected, magnetic data will start being read, 
         * and the data will be written to each BLE characteristic. The same 
         * data will also be output through serial so it can be plotted using 
         * Serial Plotter. 
         */
        while(central.connected())
        {    
            /* 
             * sprintf is used to convert the read integer value to a string 
             * which is stored in bleBuffer. This string is then written to 
             * the BLE characteristic. 
             */    
            if(MicrophoneRMS.pop(microphoneData))
            {
                writeLength = sprintf(bleBuffer, "%d", microphoneData.RMSValue);
                microphoneRMSBLE.writeValue(bleBuffer, writeLength); 
                Serial.printf("%d\r\n", microphoneData.RMSValue);
            }
        }
    }
}

Et voici le message d'erreur :
Arduino : 1.8.13 (Windows 10), Carte : "Arduino Nano 33 BLE"

In file included from D:\Documents\Bricolage\Arduino\Croquis\libraries\Nano33BLESensor\src\Nano33BLEMicrophoneRMS.cpp:29:0:

D:\Documents\Bricolage\Arduino\Croquis\libraries\arm_math/arm_math.h:258:27: error: token "" is not valid in preprocessor expressions

#if defined (ARM_MATH_CM4)\par

                       ^

D:\Documents\Bricolage\Arduino\Croquis\libraries\arm_math/arm_math.h:260:29: error: token "" is not valid in preprocessor expressions

#elif defined (ARM_MATH_CM3)\par

                         ^

D:\Documents\Bricolage\Arduino\Croquis\libraries\arm_math/arm_math.h:262:29: error: token "" is not valid in preprocessor expressions

#elif defined (ARM_MATH_CM0)\par

                         ^

D:\Documents\Bricolage\Arduino\Croquis\libraries\arm_math/arm_math.h:265:10: fatal error: ARMCM4.h: No such file or directory

#include "ARMCM4.h"\par

      ^~~~~~~~~~

compilation terminated.

exit status 1

Erreur de compilation pour la carte Arduino Nano 33 BLE

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Merci d'éditer votre post pour rajouter les balises de de code, c'est illisible tel quel:

  • sélectionner la partie du texte qui correspond au code
  • appuyez sur l'icône </> dans la barre d'outils pour indiquer que c'est du code

(Assurez vous aussi d'indenter le code correctement dans l'IDE avant de le copier pour le coller ici. Cela se fait en pressant ctrlT sur PC ou cmdT sur un Mac)


vous avez peut-être fait un copier coller de texte UTF8, il faut prendre du texte brut ASCII pour la programmation

Merci, je n'avais pas trouvé comment identifier le code dans le message.

Bonsoir,
je vois que mon message est grisé et déclaré "Closed".
Pour une première sur ce site, ça commence mal.
Pouvez-vous m'expliquer fermé par qui et pour quelle raison ?

Un peu d'indulgence pour un skieur occasionnel à Artouste.
Merci

Comment avez vous fait pour poster s’il est closed ? :slight_smile:

La rédaction de votre message ne répondait pas aux critères attendus. Il n’aura sans doute pas de réponse tant que vous n’aurez pas pris en compte et mis en application les recommandations listées dans « Les bonnes pratiques du Forum Francophone”

Je vous avais cependant donné une indication / posé une question

vous avez peut-être fait un copier coller de texte UTF8, il faut prendre du texte brut ASCII pour la programmation

Bonsoir,
j'ai peut-être recopié du texte UTF8 en lieu d'ASCII, ce qui est absolument indépendant de ma volonté (je ne sais même pas comment faire).
Et j'ai ensuite rectifié mon erreur de copie de code (enfin, je le pense).
Alors, désolé mais je ne suis pas fait pour votre forum auquel finalement je ne comprends rien. L'âge ?
Je renonce, je ne vous importunerai plus.

Bye bye
Jean

C’était une question sur un souci qui aurait pu conduire à insérer des codes ou caractères inadéquats dans votre programme (et donc un pont à explorer ) pas une critique de votre façon de procéder.

Bonne continuation