2016年07月02日
受信側のソフトウエアも修正しました
int型の変数の値を読みたいということと、2バイトのレジスターの値を読みたいということで受信側のソフトウエアも修正しました。
slave_receiver2
void receiveEvent(int howMany)を修正しました。
文字列の最後が「*」で終わると、HEXとして処理します。それ以外はint型として処理します。
slave_receiver2
// Wire Slave Receiver
// by Nicholas Zambetti <http://www.zambetti.com>
// Demonstrates use of the Wire library
// Receives data as an I2C/TWI slave device
// Refer to the "Wire Master Writer" example for use with this
// Created 29 March 2006
// This example code is in the public domain.
#include <Wire.h>
void setup() {
Wire.begin(8); // join i2c bus with address #8
Wire.onReceive(receiveEvent); // register event
Serial.begin(230400); // start serial for output
}
void loop() {
delay(100);
}
// function that executes whenever data is received from master
// this function is registered as an event, see setup()
char c;
int x, y;
void receiveEvent(int howMany) {
while (2 < Wire.available()) { // loop through all but the last
c = Wire.read(); // receive byte as a character
if (c == '*'){
break;
}
Serial.print(c); // print the character
}
Serial.print(" is ");
if (c == '*'){
//debugRegPrint
x = Wire.read();
y = Wire.read(); // receive byte as an integer
x = 256 * y + x;
Serial.print("0x");
Serial.println(x, HEX);// print the integer
} else {
//debugPrint
x = Wire.read();
y = Wire.read(); // receive byte as an integer
x = 256 * y + x;
Serial.println(x);// print the integer
}
}
void receiveEvent(int howMany)を修正しました。
文字列の最後が「*」で終わると、HEXとして処理します。それ以外はint型として処理します。
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/5210072
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック