[Armadillo:06117] Re: Armadillo-440でシリアル通信のボーレートを変更する方法について

Nobuyuki SASAKI email@hidden
2010年 11月 5日 (金) 20:03:48 JST


ささきといいます

横から失礼します。


From: 和佐田 翔一 <email@hidden>
Subject: [Armadillo:06110] Re: Armadillo-440でシリアル通信のボーレートを変更する方法について
Date: Fri, 05 Nov 2010 18:28:58 +0900

> 上記サイトを参考に下記のようなコードで実行してみました。
> ------------------------------------------------------------------
> 	fd = open("/dev/ttymxc1", O_RDWR | O_NOCTTY); 
> 
> 	tcgetattr(fd, &oldtio);
> 
> 	newtio = oldtio;   <<< せっかく get したのに
> 
> 	memset(&newtio, 0, sizeof(newtio));  <<< 0埋めしてませんか?
> 
> 	newtio.c_iflag = IGNBRK | IGNPAR;


ちなみに、アルマジロ9付属の hermit のコードでは、こんな感じです。

        portfd = open(portname, O_RDWR|O_NOCTTY);
        tcgetattr(portfd, &newtios);
        memcpy(&oldtios, &newtios, sizeof newtios); /*コピーですね*/
        newtios.c_iflag |= IGNPAR;      /* ignore parity on input */
        newtios.c_oflag &= ~(OPOST|ONLCR|OLCUC|OCRNL|ONOCR|ONLRET|OFILL);
        newtios.c_cflag = CS8|CLOCAL|CREAD;
        newtios.c_cc[VMIN] = 1;         /* block until 1 char received */
        newtios.c_cc[VTIME] = 0;        /* no inter-character timer */

        /* 115200 bps ここは変えればいいと思います*/
        cfsetospeed(&newtios, B115200);
        cfsetispeed(&newtios, B115200);

        tcflush(portfd, TCIFLUSH);
        tcsetattr(portfd, TCSADRAIN, &newtios);
        close(portfd);

440は扱ったことがないので同じではないのかもですが、いかがなものでしょうか?

-- 
ささきのぶゆき   サンビットシステム      <email@hidden>   SAPPORO
Nobuyuki SASAKI  Sunbit System Co.Ltd.  http://www.3bit.co.jp/   JAPAN
GnuPG fingerprint = 2996 E30B D633 5AE3 D469  9E86 32C1 604A 729A 74E4
〒062-0932 札幌市豊平区平岸2条7丁目4-20 アークパレス平岸308号
TEL: 011-598-1800  FAX: 011-598-1801  携帯: 090-6262-2826
-- 



armadillo メーリングリストの案内