c语言串口接收的字符转int,从串口发送和接收int值

我正在开发一个窗口应用程序,通过串口向Arduino发送和接收数据。从串口发送和接收int值

我遇到的问题是当我尝试发送一个int值到串口并在Arduino程序中提取它。我在窗口的程序中使用WriteFile()发送int,并使用Serial.parseInt()在Arduino中进行拾取。当我发送char值时,我可以毫无问题地提取它们。

如果我想发送int值,那么我只能在arduino中收到一个整数,如果我发送的整数48到57给出的int值是0到9,它们是小数48到57的ASCII字符,奇怪的。例如57,Arduino的似乎挑这个向上为9为ASCII 57. 下面

炭值在窗口程序和阿尔杜伊诺

C++代码的代码:

DWORD ComPort::WriteAnalogData(int *buffer)

{

if (!connected)

return 0;

DWORD bytesSent;

DWORD errors;

if (!WriteFile(hCom, (void *)buffer, sizeof(buffer), &bytesSent, 0))

ClearCommError(hCom, &errors, NULL); // If it fails, clear com errors

else return bytesSent; // Return the number of bytes sent

return 0; // Or return 0 on failure

}

的int写入后的返回值(bytesSent)是4,所以我认为这个函数正在工作。我有一个类似的功能来发送这些数据运作的单字节和Arduino的挑选数据高达OK

的Arduino代码:

int scadaAnalogVal;

scadaAnalogVal = Serial.parseInt();

digitalWrite(scadaAnalogVal,HIGH);

谁能告诉我这是怎么回事。可能有些简单但我不明白问题是什么,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值