串口读写问题
我主机上read串口 开发板上电后主机上看不到打印信息 <br /> 程序是在pc下运行的 运行后开发板上电,因为上电是开发板要打印一些信息<br /> 先打开串口 然后初始化串口 最后用read函数读串口<br />所以通过 下面的这个程序读一些开发板打印的一些信息.<br />#include <stdio.h><br />#include <string.h><br />#include <sys/types.h><br />#include <errno.h><br />#include <sys/stat.h><br />#include <fcntl.h><br />#include <unistd.h><br />#include <termios.h><br />#include <stdlib.h><br />#include "serial.h"<br />int main(void)<br />{<br /> int fd;<br /> int nread,i;<br /> char *buff;<br /><br /> if((fd=open_port(fd,1))<0){<br /> perror("open_port error");<br /> return;<br /> }<br /> if((i=set_opt(fd,115200,8,'N',1))<0){<br /> perror("set_opt error");<br /> return;<br /> }<br /> printf("fd=%d\n",fd);<br /> fd=3;<br /> nread=read(fd,buff,8);<br /> printf("nread=%d,%s\n",nread,buff);<br /> close(fd);<br /> return;<br />} //其中open_port是打开串口,set_opt是设置串口<br />运行结果:<br />fcntl= 0<br />isatty success<br />fd-open=3<br />open fd= 3<br />set done<br />fd=:3<br />nread = 0,(null)<br />就是最后一句不对nread 应该是实际读入的字符个数 8,null 应该是一些字符<br />先看到一个问题
char *buff;<br />nread=read(fd,buff,8);<br />读出的数据究竟能放到哪里呢?<br /><br />应该定义成 char buff这样才对吧。char buff[32];不行
char *buff改成 char buff;不行<br />我试过不论*buff事先分配地址没有,<br />也就是在char *buff 看buff的地址 和 buff 得到一个字符串之后再看buff地址;<br />它都是一个固定一个地址;<br />问题好像不在这儿;没人知道吗
自己顶哈
页:
[1]