在串口c编程上发送字符串

时间:2013-12-05 09:40:27

标签: c windows serial-port

如何在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);

我的代码没有发送任何内容......为什么?

1 个答案:

答案 0 :(得分:0)

此代码:

puts(string);
gets(string);
printf("Return: %d", string);

没有任何意义。

你毫无意义地将字符串打印到标准输出,然后使用危险函数来获取新字符串,如果长度超过4个字符,将导致未定义的行为。然后新的字符串打印为int,这也是完全疯狂的。

您应该fprintf(port, "%s", string);将字符串发送到代表串口的新打开的FILE *

请注意,您经常需要配置串行端口,如波特率,开始/停止/奇偶校验位等等。