我一直试图通过RS232串口(我的情况下是COM6)与我的设备通信.我的代码应该将ascii值字符串写入设备,然后读取响应,但我似乎无法获得任何响应.当我将它写入并读取到计算机中的文件时,程序似乎工作得相对较好,但是当我指定COM6时则不行.这是我的代码的最新版本:
using namespace std;
const char ASCII[ ]= "0123456789ABCDEF";
char *Checksum (char *buffer)
{
static char Hex[10];
static int a1, a2;
register unsigned int i;
int sum;
printf("%s \n", buffer);
sum = 256;
for ( i=0 ; i<strlen(buffer) ; i++ )
{
sum-=buffer[i];
if ( sum<0 )
sum+= 256;
}
a1 = (sum & 0xF0) >> 4;
a2 = sum & 0x0F;
Hex[0] = ASCII[a1];
Hex[1] = ASCII[a2];
Hex[2] = 0;
printf("the checksum is %s \n",Hex);
return(Hex);
}
int main() …Run Code Online (Sandbox Code Playgroud)