打印

串口读写问题

[复制链接]
1864|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wqhj666|  楼主 | 2007-5-23 20:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 我主机上read串口 开发板上电后主机上看不到打印信息 
 程序是在pc下运行的 运行后开发板上电,因为上电是开发板要打印一些信息
 先打开串口 然后初始化串口 最后用read函数读串口
所以通过 下面的这个程序读一些开发板打印的一些信息.
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <errno.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <termios.h>
#include <stdlib.h>
#include "serial.h"
int main(void)
{
    int fd;
    int nread,i;
    char *buff;

    if((fd=open_port(fd,1))<0){
        perror("open_port error");
        return;
    }
    if((i=set_opt(fd,115200,8,'N',1))<0){
        perror("set_opt error");
        return;
    }
    printf("fd=%d\n",fd);
    fd=3;
    nread=read(fd,buff,8);
    printf("nread=%d,%s\n",nread,buff);
    close(fd);
    return;
}                  //其中open_port是打开串口,set_opt是设置串口
运行结果:
fcntl= 0
isatty success
fd-open=3
open fd= 3
set done
fd=:3
nread = 0,(null)
就是最后一句不对nread 应该是实际读入的字符个数 8,null 应该是一些字符

相关帖子

沙发
infree| | 2007-5-25 15:37 | 只看该作者

先看到一个问题

char *buff;
nread=read(fd,buff,8);
读出的数据究竟能放到哪里呢?

应该定义成 char buff[32]这样才对吧。

使用特权

评论回复
板凳
wqhj666|  楼主 | 2007-5-27 11:04 | 只看该作者

char buff[32];不行

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

使用特权

评论回复
地板
wqhj666|  楼主 | 2007-5-29 12:32 | 只看该作者

没人知道吗

自己顶哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

16

帖子

0

粉丝