tools

Calculateur CRC

CRC-8/16/32 avec préréglages courants (Modbus, CCITT, Ethernet, CRC matériel STM32) ou paramètres personnalisés, et code C.

[chargement de l’outil…]

Principe

Un CRC est le reste de la division du message, vu comme un long polynôme binaire, par un polynôme générateur. Chaque variante de CRC est entièrement décrite par six paramètres (le modèle Rocksoft utilisé par le catalogue CRC RevEng) :

Paramètre Signification
width nombre de bits du résultat
poly polynôme générateur, sans son bit de poids fort
init valeur du registre avant le premier octet
refin traiter chaque octet d’entrée LSB en premier
refout inverser le registre avant le XOR final
xorout valeur combinée par XOR au résultat

Chaque préréglage affiche sa valeur de contrôle : le CRC de la chaîne ASCII 123456789. Si votre firmware donne la même valeur de contrôle, vos paramètres concordent.

CRC matériel STM32

Dans sa configuration après reset, l’unité CRC du STM32 utilise le polynôme 0x04C11DB7, init 0xFFFFFFFF, sans réflexion ni XOR final : c’est le CRC-32/MPEG-2, pas le CRC-32 de zlib. Lui fournir des mots de 32 bits au lieu d’octets change le résultat sur les composants little-endian. Réglez la taille d’entrée sur 8 bits, ou activez l’inversion d’entrée/sortie et faites un XOR avec 0xFFFFFFFF en logiciel, pour obtenir la valeur Ethernet/zlib.

Implémentation en C

Le code C généré utilise une table de 256 entrées et traite un octet par étape. La même logique de table est testée unitairement contre la valeur de contrôle de chaque préréglage.

Références

esc
Tous les outils
Aperçu Markdown[text]
Autonomie batterie en rapport cyclique[embedded]
Autonomie d’onduleur (UPS)[hardware]
Calcul de chute de tension[hardware]
Calcul de forme de tenseur[ai]
Calcul de résistance pour LED[embedded]
Calcul de section de câble[hardware]
Calcul de taille après quantification[ai]
Calculateur chmod[dev]
Calculateur CRC[embedded]
Calculateur d’autonomie de batterie[hardware]
Calculateur de filtre RC / LC[embedded]
Calculateur de pont diviseur de tension[embedded]
Calculateur de puissance de groupe électrogène[hardware]
Calculateur de résolution ADC / DAC[embedded]
Calculateur de sous-réseau / CIDR[dev]
Calculateur loi d’Ohm[embedded]
Calculateur timer / PWM[embedded]
Code couleur des résistances[embedded]
Convertisseur CSV ⇄ JSON[dev]
Convertisseur de chiffres romains[text]
Convertisseur de timestamp Unix[dev]
Décodeur JWT[dev]
Dimensionnement d’un parc de batteries solaires[hardware]
Encodeur / décodeur Base64[dev]
Encodeur d’entités HTML[dev]
Encodeur et analyseur d’URL[dev]
Erreur de baud rate UART[embedded]
Estimateur de mémoire / VRAM pour LLM[ai]
Formateur et validateur JSON[dev]
Formateur SQL[dev]
Formateur XML[dev]
Générateur d’expression cron[dev]
Générateur de hash[dev]
Générateur de Lorem Ipsum[text]
Générateur de mot de passe[dev]
Générateur de tableau Markdown[text]
Générateur et inspecteur d’UUID[dev]
Inspecteur de nombres et flottants[embedded]
Nombre en lettres[text]
Production de panneaux solaires[hardware]
Testeur de regex[dev]
Testeur JSONPath[dev]
Validateur et convertisseur YAML[dev]
Visualiseur de registres et champs de bits[embedded]
Commandes
Changer de thème (auto → clair → sombre)
Copier le lien de cette page
Aller à tous les outils
Read in English
↑↓ naviguer↵ ouvrir⌘↵ nouvel onglet