如何在Windows上在串行转换中用C发送字符串?
FILE *port;
int int_out;
char buffer[1024];
if((port=fopen("COM3","w+b"))==NULL){
printf("Not opened\n");
}
else printf("Opened\n");
char string [] = "test";
puts(string);
gets(string);
printf("Return: %d", string);
我的代码没有发送任何内容......为什么?
答案 0 :(得分:0)
此代码:
puts(string);
gets(string);
printf("Return: %d", string);
没有任何意义。
你毫无意义地将字符串打印到标准输出,然后使用危险函数来获取新字符串,如果长度超过4个字符,将导致未定义的行为。然后新的字符串打印为int
,这也是完全疯狂的。
您应该fprintf(port, "%s", string);
将字符串发送到代表串口的新打开的FILE *
。
请注意,您经常需要配置串行端口,如波特率,开始/停止/奇偶校验位等等。