Discussions Générales > Bus CAN

ACAN ESP32

<< < (2/3) > >>

msport:
Bonjour,

sauf erreur, Dominique utilise cette bibliothèque.

https://www.arduinolibraries.info/libraries/due_can

Il pourra peut-être en dire plus.

Dominique:
msport a raison, je peux en dire plus  :D :D :D

J'utilise effectivement la bibliothèque due_can que je joins en PJ

Une bonne initiation est donnée dans ce programme CAN_trafficSniffer.ino

Il y a une définition très interessante dans ACAN que vous pouvez utiliser dans votre programme pour manipuler les 8 octets de données :

--- Code: ---public : union {
    uint64_t data64        ; // Caution: subject to endianness
    uint32_t data32 [2]    ; // Caution: subject to endianness
    uint16_t data16 [4]    ; // Caution: subject to endianness
    float    dataFloat [2] ; // Caution: subject to endianness
    uint8_t  data   [8] = {0, 0, 0, 0, 0, 0, 0, 0} ;
  } ;
--- Fin du code ---
Cela permet de lire et écrire directement différents types de variables dans ces 8 octets selon vos besoins et sans programme de conversion de type à écrire.

Attention "Caution: subject to endianness" signifie que cela peut ne pas marcher lorsque votre système ne place pas les octets dans le bon ordre... debugguer avec des Serial.print permet de détecter le problème.

Dans mon projet j'ai 2 Due, l'un pour le gestionnaire global du réseau que je publierai prochainement et l'autre pour un testeur et aide à la mise au point qui utilise un écran graphique et quelques boutons permettant de construire des modules de test comme on veut. Je le joins dans son état actuel, en chantier et plein de promesses, mais pas fini  >:(

L'essentiel de la gestion Can se trouve dasn le fichier canmessages.h

Patrick75:
Bonjour,
Un grand merci à msport et surtout Dominique pour leurs réponses précises et très rapides.

J'utilise déjà effectivement la bibliothèque due_can et je suis aussi déjà informé du piège de la permutation des bits de poids fort et faible en fonction du type d'Arduino utilisé, une piqûre de rappel ne fait pas de mal de toute façon.

Merci pour les fichiers joints et les explications sur la manipulation de données (je suis dans le cas de 4 blocs de 8 bits, chaque bit portant une donnée spécifique à gérer une par une).

Le testeur sera très utile, j'en suivrai les annonces.

Je regarde tout ça et reviendrai ici pour vous dire le résultat.
Patrick

Jean-Paul:

--- Citation de: Jean-Luc le mai 03, 2021, 05:33:38 pm ---Bonjour à tous,

Pierre Molinaro a finalisé la bibliothèque ACAN pour ESP32 avec examples et doc  8)

Elle est disponible dans le gestionnaire de bibliothèques sous le nom ACAN_ESP32.

--- Fin de citation ---

Bonsoir,

Je reviens sur le sujet ACAN sur ESP32 (après un long séjour de mon projet dans le placard).

J'ai voulu mettre à jour mes librairies et ACAN_ESP32 passe à la version 1.1.0. Et là plus rien ne va.
Je suis retourné aux exemples inclus dans la librarie (le plus simple: loopback) et de même impossible de compiler avec des définitions manquantes (TWAI_TX_IDX et d'autres similaires)
(TWAI - Two Wire Auto Interface sembre être utilisé par Espressif au lieu de CAN)

J'ai ensuite remis une version plus ancienne 1.0.6 et alors cela remarche. Il semble que là les anciens noms CAN_TX_IDX et similaires sont utilisés.

Est-ce quelqu'un a essayé d'utiliser cette version ?

Merci pour toute aide ou commentaires

Jean-Paul

bobyAndCo:
J'ai eu ce problème et ai échangé avec Pierre à ce sujet, voir ici : https://github.com/pierremolinaro/acan-esp32/issues/6

Sinon, effectivement il faut rester en 1.0.6. Ceci est d'autant plus facile si on utilise PlateformIO : lib_deps = pierremolinaro/ACAN_ESP32@=1.0.6

Navigation

[0] Index des messages

[#] Page suivante

[*] Page précédente

Utiliser la version classique