C++ 将int转换为字符数组以将其发送给另一个Arduino

C++ 将int转换为字符数组以将其发送给另一个Arduino,c++,arduino,radio,C++,Arduino,Radio,所以我的项目是为学校做的,我们基本上在尝试用无线电发射器和接收器将一个整数值从电位计/操纵杆发送到另一个Arduino。使用字符(比如发送我们的名字)一切都很好,但使用整数时一切都会变得一团糟 以下是发送代码: #include <RH_ASK.h> #include <SPI.h> #define JOYY A0 #define JOYX A1 RH_ASK rf_driver; int pos_x; int pos_y; void setup() { Se

所以我的项目是为学校做的,我们基本上在尝试用无线电发射器和接收器将一个整数值从电位计/操纵杆发送到另一个Arduino。使用字符(比如发送我们的名字)一切都很好,但使用整数时一切都会变得一团糟

以下是发送代码:

#include <RH_ASK.h>
#include <SPI.h>

#define JOYY A0
#define JOYX A1

RH_ASK rf_driver;

int pos_x;
int pos_y;

void setup() {
  Serial.begin(9600);
  rf_driver.init();
  pinMode(13, OUTPUT);
  pinMode(JOYY, INPUT);
  pinMode(JOYX, INPUT);
}

void loop() {
  readJoy();
  //Serial.println(pos_y);
  char *msg = (char*)pos_y;

  Serial.println(*msg);
  rf_driver.send(msg, strlen(msg));
  rf_driver.waitPacketSent();


}

void readJoy() {
  pos_x = analogRead(JOYX);
  pos_y = analogRead(JOYY);
  pos_x = map(pos_x, 497, 1023, 1, 173);
  pos_y = map(pos_y, 497, 1023, 1, 173);
  //Serial.println(pos_y);
  //Serial.println(pos_x);

  }
我想把整数转换成字符,然后打印出来。没有错误,但查看串行监视器,预期值0实际上是零,向上或向下推动操纵杆只会写入一系列错误⸮, 向后的问号。我试过很多不同的方法,大多数都是一样的


有人能帮我吗?谢谢。

您似乎正在尝试打印一个值为
0x00
的字符。这不是ascii字符“0”的值。尝试
char*msg=itoa(位置y)“我正在尝试将整数转换为字符”-但您的代码将其转换为指向
char
(并且无法获得可用值)的指针。你想要哪一种转换,哪一种是打字错误?即使是真实的短信,如果你在长短信之后再发送短短信,你也会遇到问题。您的角色转换
(char*)
不同于将其转换为文本。
#include <RH_ASK.h>

#include <SPI.h>

#include <Servo.h>

int val = 0; 

int x = 0;

RH_ASK rf_driver;

Servo myservo;


void setup() {
  rf_driver.init();

  Serial.begin(9600);

  myservo.attach(6);

}

void loop() {

  uint8_t buf[10];
  uint8_t buflen = sizeof(buf);

  if (rf_driver.recv(buf, &buflen))
    {

      Serial.print("Message: ");
      Serial.println((char*)buf);


      //myservo.write(buf);
    }

}
char *msg = (char*)pos_y;

  Serial.println(*msg);