linux下读取板子通过串口回传的double数据
本帖最后由 q601564446 于 2014-1-23 18:31 编辑我想用arduino板子获取温度数据,回传至PC机(Linux系统)。
如何在linux系统下,读取arduino板子通过串口输出的数据呢?
请教高手,给个例子。谢谢!
我来结贴子:
下面的列子可用,串口设置的波特率,以及数据传输的各个位设置 都可以直接使用。
唯一需要设置的是串口设备文件的路径。
我的板子型号是uno。串口设备文件的路径是:char *dev = "/dev/ttyACM0";
在Linux下,插入的USB设备可以直接被识别。
我用的linux是在虚拟机里面跑的,一样能使用。 我一般都是先HEX 在发送。 读取数据直接可以看我的主题,我有例子
Damn_intuition 发表于 2014-1-2 22:05 static/image/common/back.gif
读取数据直接可以看我的主题,我有例子
不懂树莓派额。我需要的是Linux下的C语言的程序 本帖最后由 Damn_intuition 于 2014-1-16 15:21 编辑
q601564446 发表于 2014-1-9 16:01 static/image/common/back.gif
不懂树莓派额。我需要的是Linux下的C语言的程序
#define FALSE -1
#define TRUE 0
/*********************************************************************/
int OpenDev(char *Dev)
{
//Dev 就是设备,设备就是文件
int fd = open(Dev, O_RDWR ); //| O_NOCTTY | O_NDELAY
if (-1 == fd) {
perror("Can't Open Serial Port");
return -1;
}else return fd;
}
int main(int argc, char **argv) {
int fd; int nread;
char buff;
char *dev = "/dev/ttyS1"; //串口二
fd = OpenDev(dev);
set_speed(fd, 19200);
if (set_Parity(fd, 8, 1, 'N') == FALSE)
{
printf("Set Parity Error\n");
exit (0);
}
while (1) //循环读取数据
{
while ((nread = read(fd, buff, 512))>0)
{
printf("\nLen %d\n", nread);
buff = '\0';
printf("\n%s", buff);
}
}
Damn_intuition 发表于 2014-1-16 15:17 static/image/common/back.gif
我突然发现这个例子,我有。这个串口设定的参数符合arduino的数据传输格式?! set_speed(fd, 19200);
if (set_Parity(fd, 8, 1, 'N') == FALSE)
设置一下就可以了。
页:
[1]