菜鸟求助!!!为什么只能发送不能接收- -#
我正在学习android的系统开发,想写一个linux程序实现串口和其他设备通信,但搞了几个星期都不知道串口2只能发送不能接收的原因?各位大虾,请帮小弟一把。我用的芯片是imx515。
我测试过,硬件上没有问题,我在RXD引脚上可以看到信号,至于串口驱动应该是没有问题的。所以我一直怀疑是我的设置有问题。请帮我看一下问题出在哪。
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
#include <sys/time.h>
int main(int argc, char **argv)
{
int fd;
char *dev ="/dev/ttymxc1";
struct termios termios;
char rbuf[256] = "";
char wbuf[256] = "";
int nread, nwrite;
int i;
printf("==== START ====\n");
fd = open(dev, O_RDWR | O_NOCTTY);
if(fd < 0)
{
printf("open %s fail!\n", dev);
return 0;
}
printf("open %s success!\n", dev);
tcgetattr(fd, &termios);
bzero(&termios, sizeof(termios));
termios.c_cflag = B115200|CS8|CLOCAL|CREAD;
termios.c_iflag = IGNPAR | IXON | IXOFF | IXANY;
termios.c_oflag = 0;
termios.c_lflag = 0;
termios.c_cc[VTIME] = 0;
termios.c_cc[VMIN] = 0;
tcflush(fd, TCIOFLUSH);
tcsetattr(fd, TCSANOW, &termios);
printf("====MISSION START====\n");
nwrite = write(fd, "====MISSION START====", 21);
printf("==== READ TEST ====\n");
while(1)
{
nread = read(fd, rbuf, 10);
if(nread > 0)
{
printf("====MISSION COMPLETE!====\n");
break;
}
}
printf("==== THE END ====\n");
close(fd);
return 0;
}
我测试过,硬件上没有问题,我在RXD引脚上可以看到信号,至于串口驱动应该是没有问题的。所以我一直怀疑是我的设置有问题。请帮我看一下问题出在哪。
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
#include <sys/time.h>
int main(int argc, char **argv)
{
int fd;
char *dev ="/dev/ttymxc1";
struct termios termios;
char rbuf[256] = "";
char wbuf[256] = "";
int nread, nwrite;
int i;
printf("==== START ====\n");
fd = open(dev, O_RDWR | O_NOCTTY);
if(fd < 0)
{
printf("open %s fail!\n", dev);
return 0;
}
printf("open %s success!\n", dev);
tcgetattr(fd, &termios);
bzero(&termios, sizeof(termios));
termios.c_cflag = B115200|CS8|CLOCAL|CREAD;
termios.c_iflag = IGNPAR | IXON | IXOFF | IXANY;
termios.c_oflag = 0;
termios.c_lflag = 0;
termios.c_cc[VTIME] = 0;
termios.c_cc[VMIN] = 0;
tcflush(fd, TCIOFLUSH);
tcsetattr(fd, TCSANOW, &termios);
printf("====MISSION START====\n");
nwrite = write(fd, "====MISSION START====", 21);
printf("==== READ TEST ====\n");
while(1)
{
nread = read(fd, rbuf, 10);
if(nread > 0)
{
printf("====MISSION COMPLETE!====\n");
break;
}
}
printf("==== THE END ====\n");
close(fd);
return 0;
}
...全文
相关推荐
TrintyCore菜鸟工具
每个部分都有相应的配置文件,"TrintyCore菜鸟工具"则帮助用户更高效地管理和调整这些文件。
C++小游戏-五子棋(菜鸟版).cpp
虽然是菜鸟版,电脑水平也并不是很臭,仍然可以与你对决20回合,滋生无数乐趣。如果你棋艺高超,请移步“五子棋(人机对战增强版)”,下载后用C++方可打开。玩的时候一定记住,全屏!全屏!!全屏!!!
Python3菜鸟教程离线版20200914(含完整菜鸟教程网页及CHM版文档)
菜鸟教程网站上的Python3教程还挺详细,想在没有网络的电脑上离线看但是发现网上没有资源,只有老版本的PDF文档,实在不方便阅读,所以自己做了一个,Python3菜鸟教程离线版内部包含2020091
菜鸟耍人专用
菜鸟耍朋友专用 ,绝对无毒, 百分百测试 ,功能 ,隐藏桌面图标 ,自动关机 ,显示图标, 隐藏功能项!!!
python菜鸟入门
**退出Python解释器**: - 在UNIX/Linux环境下,使用`Ctrl+D`发送EOF字符来退出。 - 在Windows环境下,使用`Ctrl+Z`发送EOF字符来退出。


驱动开发/核心开发
