1

シリアル接続を介して整数をArduinoに送信したい。たとえば、「1」を送信すると、Arduinoが受信するデータは「49」になり、「a」を送信すると、Arduinoが受信するデータは「97」になります。

Pythonには、ord()との2つの関数がありunichr()ます。彼らはこのように振る舞いました:

unichr(97) = u"a"
ord(u"a")=97

同等のC関数はありますか?

4

2 に答える 2

2

英数字から整数への関数を使用します。

また、ヘッダーcstdlib、stdlib.h、C Standard GeneralUtilitiesLibraryが役立つ場合があります。C ++と書かれていますが、この特定のセクションは標準Cライブラリです。ArduinoでC++を使用できることに注意してください。

于 2010-07-24T19:22:59.233 に答える
2

文字をASCII値として保存している限り、最も簡単な方法(目標が1桁の変換である場合)は、ASCII値0を減算'8'-'0'することです。unsignedchar値8が得られます。次のことを確認する必要があります。これは数字であり、一部の文字ではありませんが、結果が9以下であるかどうかを確認するだけで簡単に実行できます。

同様に、「0」の値を追加することにより、1桁のzのASCII値を取得します。

于 2012-11-08T17:45:37.073 に答える