teratail
質問するログイン新規登録

Q&A

解決済

2回答

12500閲覧

Arduinoでascii文字をHEX(16進数)にする方法について

aikawajun

総合スコア14

ASCII

ASCIIは、米国規格協会(ANSI)が制定したコンピューターの情報交換のための文字コードの一つ。アルファベットや数字などを1文字当たり7ビットで表します。英数字を表示する文字コードの中で最も高い互換性を持ち、多くの通信機器に利用されています。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2021/02/18 01:58

0

0

ほぼ解決しているかもしれないのですが確認したいです。

Arduinoでascii文字をHEXにしないといけない為、テストしてみたのですが、出力としてはHEXに該当する文字以外は全て0で出力されることは確認できました。
ただ、下記ソースで何か抜けが無いか、や、他にこうした方が良い等修正点があれば伺いたいです。
よろしくお願いいたします。

void loop() { // put your main code here, to run repeatedly: int arrByte; int incomingByte; int hex; arrByte = Serial.available(); if (0 < arrByte) { for (int i = 0; i <= arrByte; i++) { incomingByte = Serial.read(); // 1バイトずつ受信データを読み込む Serial.print(incomingByte, HEX); Serial.println("get"); hex = Asc2Hex(incomingByte); Serial.print(hex, HEX); Serial.println("get"); } } }
//アスキーを16進数 int8_t Asc2Hex(int8_t asc) { int8_t hex = 0; if (('0' <= asc) && (asc <= '9')){ hex = asc - '0'; } else if (('a' <= asc) && (asc <= 'f')){ hex = asc - 'a' + 10; } else if (('A' <= asc) && (asc <= 'F')){ hex = asc - 'A' + 10; } return hex; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

コメントの取得に失敗しました

回答の取得に失敗しました

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問