本帖最后由 iysheng 于 2015-9-9 23:41 编辑
今天晚上,这个问题解决了,在高手的指点下,我阴差阳错的把这个问题解决了,要想正常的从终端正确显示出来接受到的数据,我犯了如下错误:
1。我使用的是
51单片机上的u***转ttl模块,这个模块有问题,不能很好的和ok210通信,这是我犯的知名的错误,导致我一直输出0x00,(其中好像还有一个原因,我选择的波特率不对,要选择
9600)。
2。我修改添加的那一部分代码,很重要,那样修改是设置UART,
- tcgetattr(fd, &uart1);
- uart1.c_lflag &= ~(ECHO|ECHOE|ISIG|ICANON);
- uart1.c_oflag &= ~OPOST;
- tcsetattr(fd, TCSANOW,&uart1);
处在
原始模式(Raw Mode),来进行通信。
这就是我解决问题的方式,通过上面的修改,今天晚上,我终于解决这个问题,串口操作解决了以后,距离我的项目完成就近了一步,,,加油噢!
下面是我更改后的一些图片,以及实现现象:
换了u***转ttl模块如下:
单个字符接受并直接再通过
串口输出:
通过串口
接受字符串,并在
终端上面显示:
但是,唯一不完美的是,我
自己写的驱动程序,只能通过串口输入输出数据,还是不能正常的在终端上面直接printf回来,这个估计和终端部分的显示(
内核层面)有关系了,只是我的猜测,,,,。
在接下来的几天里,我会分别对一下
两种方法进行优化:
1。基于
我自己的写的驱动程序的操作。
2。基于
板子自带的驱动程序。进行编写用户程序,对串口数据进行分析处理。
加油了,,,,
本帖最后由 iysheng 于 2015-9-9 23:41 编辑
今天晚上,这个问题解决了,在高手的指点下,我阴差阳错的把这个问题解决了,要想正常的从终端正确显示出来接受到的数据,我犯了如下错误:
1。我使用的是
51单片机上的u***转ttl模块,这个模块有问题,不能很好的和ok210通信,这是我犯的知名的错误,导致我一直输出0x00,(其中好像还有一个原因,我选择的波特率不对,要选择
9600)。
2。我修改添加的那一部分代码,很重要,那样修改是设置UART,
- tcgetattr(fd, &uart1);
- uart1.c_lflag &= ~(ECHO|ECHOE|ISIG|ICANON);
- uart1.c_oflag &= ~OPOST;
- tcsetattr(fd, TCSANOW,&uart1);
处在
原始模式(Raw Mode),来进行通信。
这就是我解决问题的方式,通过上面的修改,今天晚上,我终于解决这个问题,串口操作解决了以后,距离我的项目完成就近了一步,,,加油噢!
下面是我更改后的一些图片,以及实现现象:
换了u***转ttl模块如下:
单个字符接受并直接再通过
串口输出:
通过串口
接受字符串,并在
终端上面显示:
但是,唯一不完美的是,我
自己写的驱动程序,只能通过串口输入输出数据,还是不能正常的在终端上面直接printf回来,这个估计和终端部分的显示(
内核层面)有关系了,只是我的猜测,,,,。
在接下来的几天里,我会分别对一下
两种方法进行优化:
1。基于
我自己的写的驱动程序的操作。
2。基于
板子自带的驱动程序。进行编写用户程序,对串口数据进行分析处理。
加油了,,,,
举报