当前位置:  技术问答>linux和unix

嵌入式串口编程问题

    来源: 互联网  发布时间:2017-05-03

    本文导语:  新手求各位大牛指点! PC串口和TQ2440开发板进行串口通信: 问题描述:程序运行后PC串口助手可以接收到开发板发来的数据并显示,然后我在PC串口助手手动发送数据到开发板,开发板无法接收数据!且此时串口助手...

新手求各位大牛指点!
PC串口和TQ2440开发板进行串口通信:
问题描述:程序运行后PC串口助手可以接收到开发板发来的数据并显示,然后我在PC串口助手手动发送数据到开发板,开发板无法接收数据!且此时串口助手内会显示一堆不知道哪来的数据。
测试控制台显示如下:
[root@EmbedGateway /work]# ./commTest
openttyS0.....
fcntl=0
isattysuccess!
fd-open=3
set done!
fd=3
write success!nwrite=6
Send data:ef ef ea 01 01 00
nread=0,read failure!
nread=0,read failure!
^C
[root@EmbedGateway /work]#
代码如下:
-------------------------------------------------
#include
#include
#include
#include
#include
#include
#include
#include
#include

int set_opt(int fd,int nSpeed,int nBits,char nEvent,int nStop){
struct termios newtio,oldtio;
if(tcgetattr(fd,&oldtio)!=0)
{
perror("SetupSerial1");
return-1;
}
bzero(&newtio,sizeof(newtio));
newtio.c_cflag|=CLOCAL|CREAD;
newtio.c_cflag&=~CSIZE;
switch(nBits)
{
case 7:newtio.c_cflag|=CS7;break;
case 8:newtio.c_cflag|=CS8;break;
}
switch(nEvent)
{
case 'O': newtio.c_cflag|=PARENB;
      newtio.c_cflag|=PARODD;
      newtio.c_iflag|=(INPCK|ISTRIP);
break;
case 'E': newtio.c_iflag|=(INPCK|ISTRIP);
newtio.c_cflag|=PARENB;
newtio.c_cflag&=~PARODD;
break;
case 'N': newtio.c_cflag&=~PARENB;
break;
}
switch(nSpeed)
{
case 2400:
cfsetispeed(&newtio,B2400);
cfsetospeed(&newtio,B2400);
break;
case 4800:
cfsetispeed(&newtio,B4800);
cfsetospeed(&newtio,B4800);
break;
case 9600:
cfsetispeed(&newtio,B9600);
cfsetospeed(&newtio,B9600);
break;
case 115200:
cfsetispeed(&newtio,B115200);
cfsetospeed(&newtio,B115200);
break;
default:
cfsetispeed(&newtio,B9600);
cfsetospeed(&newtio,B9600);
break;
}

if(nStop==1)
newtio.c_cflag&=~CSTOPB;
else if(nStop==2)
newtio.c_cflag|=CSTOPB;

newtio.c_cc[VTIME]=0;
newtio.c_cc[VMIN]=0;
tcflush(fd,TCIFLUSH);

if((tcsetattr(fd,TCSANOW,&newtio))!=0)
{
perror("comset error");
return-1;
}
printf("set done!n");
return 0;
}

int open_port(int fd,int comport)
{
char*dev[]={"/dev/tq2440_serial0","/dev/tq2440_serial1","/dev/tq2440_serial2"};
if(comport==1)
{
fd=open("/dev/tq2440_serial0",O_RDWR|O_NOCTTY|O_NDELAY);
if(-1==fd)
{
perror("Can'tOpenSerialPort");
return(-1);
}else
printf("openttyS0.....n");}
else if(comport==2)
{
fd=open("/dev/tq2440_serial1",O_RDWR|O_NOCTTY|O_NDELAY);
if(-1==fd)
{
perror("Can'tOpenSerialPort");
return(-1);
}else
printf("openttyS1.....n");
}
else if(comport==3)
{
fd=open("/dev/tq2440_serial2",O_RDWR|O_NOCTTY|O_NDELAY);
if(-1==fd)
{
perror("Can'tOpenSerialPort");
return(-1);
}else
printf("openttyS2.....n");
}

if(fcntl(fd,F_SETFL,0)

    
 
 

您可能感兴趣的文章:

  • 嵌入式linux,串口初始化时,无法设置串口属性
  • 嵌入式如何串口登录需要密码?
  • 求救!!!嵌入式Linux 串口通信
  • 请教:嵌入式开发第一关,usb转串口线怎么用?
  • 嵌入式linux设备调试除了用串口还有什么其他的方法
  • 嵌入式linux开发机,只引了一个串口出来,要怎么上传程序??
  • 嵌入式下通过串口连接4线触摸屏如何搞呢?驱动?
  • 请问在嵌入式linux应用中,串口操作需要包括什么,h文件,以及读写命令是什么?谢谢
  • 嵌入式linux用usb接3G手机模块 以及usb虚拟串口的测试问题
  • 嵌入式linux下串口采用xmodem协议 接受不成功
  • 请问在哪下载嵌入式Linux开发平台???想学嵌入式开发!!!
  • 有谁做过嵌入式 Linux开发?是否有嵌入式Linux的JVM?
  • 嵌入式网络编程与非嵌入式网络编程有什么不同
  • 问一个弱弱的问题:做嵌入式开发,宿主机的Linux版本一定要跟目标机上的嵌入式Linux版本一致么?
  • 我怎么糊涂了:想开发嵌入式系统(目标机采用UCLINUX嵌入式操作系统),在RED HAT LINUX下开发,选用什么工具呢?QT还是qt embedded?
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • 请问什么是嵌入式数据库?(空)
  • 关于“嵌入式Linux”
  • 嵌入式系统的学习
  • 嵌入式学习方法
  • 请问:构建一个嵌入式开发环境时的疑问?
  • linux 嵌入式开发用买开发板吗?
  • 求嵌入式Linux的入门书籍!
  • 嵌入式应用开发协作系统 Yocto
  • 嵌入式系统的C运行库 Newlib
  • 嵌入式GLIBC EGLIBC
  • 驱动程序开发和嵌入式开发有什么联系吗?
  • 嵌入式 syslog
  • vc++与Linux嵌入式
  • 计算机专业学习 嵌入式可以么 ??
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 现在LINUX主要用在哪些嵌入式设备上?
  • 嵌入式系统 Prex
  • web开发和嵌入式开发哪个更有挑战
  • 嵌入式linux 组播接收问题
  • Linux的嵌入式开发,请高手指点
  • 国内有哪些好的嵌入式公司???
  • 开源嵌入式操作系统 Contiki
  • 嵌入式Web服务器 Appweb
  • 实时嵌入式操作系统 NuttX
  • 嵌入式系统虾米意思呀?
  • Linux 用什么工具进行嵌入式开发。
  • 我想学习Linux 嵌入式开发,请大家指教
  • java 还是LINUX嵌入式???
  • 了解嵌入式开发的朋友请进!
  • 是考验还是嵌入式??
  • linux运维转linux嵌入式
  • 嵌入式GUI库 eSWT
  • 嵌入式系统考研请教?
  • ARM 嵌入式系统的仿真器 Softgun
  • 如何开发嵌入式Linux操作系统?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,