首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

arm串口通信有关问题

2012-03-30 
arm串口通信问题1、可以直接用 minicom 或 超级终端 登录到arm上,所以串口应该是没问题的。2、我是用 telnet

arm串口通信问题
1、可以直接用 minicom 或 超级终端 登录到arm上,所以串口应该是没问题的。
2、我是用 telnet 登陆到 arm 上控制 arm 的,所以不存在串口冲突问题。
3、我在arm上的串口发数据,pc端可以收到,但是
  pc 给 arm 发数据,arm什么都收不到,为什么呢?怎么解决?
请高手指点啊!

程序代码:

pc发送端:

C/C++ code
int main(int argc, char **argv){    int nLength;        // 串口收到的数据长度    char cmd[50] = "abc123\0";        // 命令串    char ans[128];        // 应答串    /*初始化串口*/    char *dev  = "/dev/ttyUSB0";            /*打开串口*/    int    fd = open( dev, O_RDWR|O_NOCTTY|O_NDELAY );             if (fd == -1)        {                    perror("Can't Open Serial Port");        return -1;            }             /*设置串口的校验位*/    set_speed(fd,115200);            /*设置串口的波特率*/    if (set_Parity(fd,8,1,'N') == FALSE)    {        printf("Set Parity Error\n");        exit (0);    }            /*写串口函数*/    while(1)    {        printf("send:%s\n",cmd);                write(fd, cmd, sizeof(cmd));        sleep(1);    }        /* 关闭串口*/     close(fd);         return TRUE;}


arm接收端:
C/C++ code
int main(int argc, char **argv){    int nLength;        // 串口收到的数据长度    char cmd[16] ="";        // 命令串    char ans[128];        // 应答串        /*初始化串口*/    char *dev  = "/dev/ttyS0";            /*打开串口*/    int    fd = open( dev, O_RDWR|O_NOCTTY|O_NDELAY );             if (-1 == fd)        {                    perror("Can't Open Serial Port");        return -1;            }             /*设置串口的校验位*/    set_speed(fd,115200);        /*设置串口的波特率*/    if (set_Parity(fd,8,1,'N') == FALSE)    {        printf("Set Parity Error\n");        exit (0);    }    /*写串口*/    while(1)    {        memset(ans,0,sizeof(ans));        nLength = read(fd, ans, sizeof(ans));                printf("nLength = %d---recieved=%s\n",nLength,ans);                sleep(1);    }            /* 关闭串口*/     close(fd);     return 0;}



[解决办法]
arm上不一定没收到,估计是你用printf打印不出来
[解决办法]
顶一个。。。。。。。。。。。。。。。。。。。
[解决办法]
/dev/ttyUSB0
USB转串口么,好像很不稳定的,不知道是不是这个问题。
持续关注一下。
[解决办法]
用个com口监控程序调试看看。

热点排行