【发布时间】:2014-06-19 15:21:21
【问题描述】:
我正在使用 debian,我必须将数据从串行端口传输到文本文件中,然后才能读取到数据库中。我认为我设置端口的方式是错误的,我一直在很多不同的例子中磕磕绊绊,我当前的代码(下面)不断给我 3 个警告,“赋值使指针从整数没有强制转换”我认为它与正在返回的值,我对指针返回的内容做了一些阅读,但对我来说并不太清楚,我想知道是否有人可以就这个问题提供一些见解,或者我是否有任何明显的问题失踪。任何建议都非常感谢。
#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <termios.h>
#include <string.h>
#define BAUDRATE B115200
#define MODEMDEVICE "/dev/ttyS0"
main()
{
int n;
FILE *file;
file = open(MODEMDEVICE, O_RDWR, O_NOCTTY);
if(file == NULL){
printf("initiation error. \n");
return 1;
}
FILE *fp;
fp = open("testfile.txt", O_RDWR);
while(1){
file = scanf("%d", &n);
fprintf(fp, "%d", n);
fclose(fp);
}
fclose(file);
}
所以我认为这样做,或者至少我打算这样做是设置文件以从端口读取数据,然后将这些值存储在 n 中,然后将其打印到文本文件中。
【问题讨论】:
-
学习Serial Programming Guide for POSIX Operating Systems 配置串口并从中读取数据。目前您的代码两者都没有。花时间提前解决问题,而不是浪费两倍的时间试图找出问题所在。
标签: c file serial-port scanf