wqhj666 发表于 2007-5-23 20:20

串口读写问题

&nbsp;我主机上read串口&nbsp;开发板上电后主机上看不到打印信息&nbsp;<br />&nbsp;程序是在pc下运行的&nbsp;运行后开发板上电,因为上电是开发板要打印一些信息<br />&nbsp;先打开串口&nbsp;然后初始化串口&nbsp;最后用read函数读串口<br />所以通过&nbsp;下面的这个程序读一些开发板打印的一些信息.<br />#include&nbsp;&ltstdio.h&gt<br />#include&nbsp;&ltstring.h&gt<br />#include&nbsp;&ltsys/types.h&gt<br />#include&nbsp;&lterrno.h&gt<br />#include&nbsp;&ltsys/stat.h&gt<br />#include&nbsp;&ltfcntl.h&gt<br />#include&nbsp;&ltunistd.h&gt<br />#include&nbsp;&lttermios.h&gt<br />#include&nbsp;&ltstdlib.h&gt<br />#include&nbsp;&quot;serial.h&quot;<br />int&nbsp;main(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;fd;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;nread,i;<br />&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*buff;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if((fd=open_port(fd,1))&lt0){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perror(&quot;open_port&nbsp;error&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if((i=set_opt(fd,115200,8,'N',1))&lt0){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perror(&quot;set_opt&nbsp;error&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;fd=%d\n&quot;,fd);<br />&nbsp;&nbsp;&nbsp;&nbsp;fd=3;<br />&nbsp;&nbsp;&nbsp;&nbsp;nread=read(fd,buff,8);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;nread=%d,%s\n&quot;,nread,buff);<br />&nbsp;&nbsp;&nbsp;&nbsp;close(fd);<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//其中open_port是打开串口,set_opt是设置串口<br />运行结果:<br />fcntl=&nbsp;0<br />isatty&nbsp;success<br />fd-open=3<br />open&nbsp;fd=&nbsp;3<br />set&nbsp;done<br />fd=:3<br />nread&nbsp;=&nbsp;0,(null)<br />就是最后一句不对nread&nbsp;应该是实际读入的字符个数&nbsp;8,null&nbsp;应该是一些字符<br />

infree 发表于 2007-5-25 15:37

先看到一个问题

char&nbsp;*buff;<br />nread=read(fd,buff,8);<br />读出的数据究竟能放到哪里呢?<br /><br />应该定义成&nbsp;char&nbsp;buff这样才对吧。

wqhj666 发表于 2007-5-27 11:04

char buff[32];不行

char&nbsp;*buff改成&nbsp;char&nbsp;buff;不行<br />我试过不论*buff事先分配地址没有,<br />也就是在char&nbsp;*buff&nbsp;看buff的地址&nbsp;和&nbsp;buff&nbsp;得到一个字符串之后再看buff地址;<br />它都是一个固定一个地址;<br />问题好像不在这儿;

wqhj666 发表于 2007-5-29 12:32

没人知道吗

自己顶哈
页: [1]
查看完整版本: 串口读写问题