繁体   English   中英

如何使用C从Arduino板到PC读取数据?

[英]How to read data from Arduino board to pc using C?

我在这里找到了将数据写入Arduino板的教程: https : //salilkapur.wordpress.com/2013/03/08/communicating-with-arduino-using-c/

该代码使用file = fopen("/dev/ttyUSB0","w+"); 打开端口以进行读/写操作,并使用fprintf将数据写入设备。 但是,当我尝试使用fscanf从Arduino检索数据时(我使用Serial.print将数据从Arduino端写回到PC,并且数据格式化为DEC ),但是它没有用。

我可以使用Arduino IDE中的串行监视器查看输出,但是无法查看C程序输出中的输出。 它为什么不起作用,我必须怎么做才能使其起作用?

该程序在Ubuntu中运行。

这是应该在PC上运行的C代码:

#include <stdio.h>


int main()
{
    FILE *file;
    char a=0;
    file = fopen("/dev/ttyUSB0","w+");  
    int i = 0;
    if(file == -1)
        printf("error");
    for(i = 0 ; i < 3 ; i++)
    {
        fprintf(file,"C"); 
        fscanf(file, "%c", &a);
        printf("%c", a);
    }



    fclose(file);
 }

我还尝试了一些变体,例如,使用%d代替%c ,使用int代替char并使用fflush 我不知道为什么它不起作用。 可能是我的Arduino开发板无法正常工作吗?

注意:应该在每个字符输入之后给出输出。

你什么都看不到的原因是当你打电话时

file = fopen("/dev/ttyUSB0","w+");

arduino重置 ,需要1-2秒才能启动。 由于某种原因,该读取不确定地挂起。

增加sleep(2); fopen旁边可能会解决问题。

了解如何禁用自动重置

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM