シリアル接続を介して整数をArduinoに送信したい。たとえば、「1」を送信すると、Arduinoが受信するデータは「49」になり、「a」を送信すると、Arduinoが受信するデータは「97」になります。
Pythonには、ord()
との2つの関数がありunichr()
ます。彼らはこのように振る舞いました:
unichr(97) = u"a"
ord(u"a")=97
同等のC関数はありますか?
シリアル接続を介して整数をArduinoに送信したい。たとえば、「1」を送信すると、Arduinoが受信するデータは「49」になり、「a」を送信すると、Arduinoが受信するデータは「97」になります。
Pythonには、ord()
との2つの関数がありunichr()
ます。彼らはこのように振る舞いました:
unichr(97) = u"a"
ord(u"a")=97
同等のC関数はありますか?
英数字から整数への関数を使用します。
また、ヘッダーcstdlib、stdlib.h、C Standard GeneralUtilitiesLibraryが役立つ場合があります。C ++と書かれていますが、この特定のセクションは標準Cライブラリです。ArduinoでC++を使用できることに注意してください。
文字をASCII値として保存している限り、最も簡単な方法(目標が1桁の変換である場合)は、ASCII値0を減算'8'-'0'
することです。unsignedchar値8が得られます。次のことを確認する必要があります。これは数字であり、一部の文字ではありませんが、結果が9以下であるかどうかを確認するだけで簡単に実行できます。
同様に、「0」の値を追加することにより、1桁のzのASCII値を取得します。