-2
我需要通过USB RS232转换器发送一些特殊字符到我的设备。通过USB转换器发送特殊ASCII字符rs232
b.cpp:
unsigned char message[] = "ÀwLO~P";
int main(void) {
openPort(port, 9600);
int i = 0;
// while (i < 2000) {
writePort(message);
char* readChar = readPort();
cout <<"rr "<< static_cast<string>(readChar);
// i++;
// sleep(5);
// }
closePort();
return EXIT_SUCCESS;
}
我写端口功能:
void writePort(unsigned char* message) {
int e;
for (int i = 0; i < 7; i++) {
e = message[i];
printf("Out: %d", e) ;
write(tty_fd, &message[i], 6);
usleep(10);
}
}
Beacose我的第一个迹象是超出范围正常字符 “A” 192我在printf中看到,它分为两个字节。
printf的输出:
Out: 195 Out: 128 Out: 119 Out: 76 Out: 79 Out: 126 Out:80
我怎么能发送的specyfic字符?
为什么'7'在'I <7'?我期望'int i = 0;消息[I];我++' – chux
偏题:神奇的数字正在杀死你。例如,为什么6在这里? 'write(tty_fd,&message [i],6);' – user4581301
- 不是有效的ASCII,因此请检查文件的字符编码。可能它不是ASCII。 – user4581301