AM2301BのCRC
AM2301BのCRC
情報が少なくて割と困ったので書いときます
秋月で売ってる温湿度センサー AM2306B
スペックシートに詳しい情報が載ってなくて (。´・ω・)? 状態
コマンドリファレンスがないとかどうかしてる。
中でもCRCの算出方法はチョット悩んだのでサンプル載せときます。
AM2301Bの使い方の動画はYouTubeにあげます。
// AM2301BのCRC計算
// 入力: uint8_t readData[6] - センサーから読み取ったデータ6Byte
// 出力: uint8_t crc - CRC8-Dallas/Maxim (X8 + X5 + X4 + 1)
//
// 生成多項式 : 1 + x^4 + x^5 + x^8 => B100110001 => 0x31
// 左シフト
uint8_t crc = 0xFF; // CRC初期値 0xFF
for (int i = 0; i < 6 ; i++) {
uint8_t b = readData[i];
crc ^= b;
for (int x = 0; x < 8; x++) {
if (crc & 0x80) {
crc <<= 1;
crc ^= 0x31;
} else {
crc <<= 1;
}
}
}
| 固定リンク
「arduino」カテゴリの記事
- M5Atom LITE/M5Stamp PICOのフルカラーシリアルLEDをライブラリなしで制御する(2022.07.27)
- AM2301BのCRC(2022.05.26)
- ArduinoUNOのピン名ラベル貼ってみた(2021.12.06)
- 2840円のUSBミニオシロスコープ買ってみた(2021.07.27)
- BCDクロックを作ってみる(後編)(2021.03.07)
この記事へのコメントは終了しました。
コメント