• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > 串口编程小白求助。

串口编程小白求助。

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了小白求助,编程小白学python,小白学编程,编程小白的第一本,小白编程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 串口编程 小白求助。
描述:

本帖最后由 dagewxw 于 2016-06-11 11:20:25 编辑

串口通讯 

目的:两个串口之间的数据收发。
系统:ubuntu。
我没有串口编程的经验。遇到的问题是:收到的数据乱码,就算打印收到字符的ascii码也不对。
求高手帮我看看代码有什么问题:
这是发送的代码:

#include<stdio.h>
#include<string.h>
#include<unistd.h>
#include<fcntl.h>
#include<errno.h>
#include<termios.h>
int open_port(void){
  int fd;
  fd = open("/dev/ttyUSB1", O_RDWR | O_NOCTTY | O_NDELAY);
  if (fd == -1) {
    perror("unable to open port /dev/ttyUSB1");
  } else {
    fcntl(fd, F_SETFL, 0);
    
  }
  return fd;
}
int main(void) {
  int fd = open_port();
  struct termios options;
  tcgetattr(fd, &options);
  cfsetispeed(&options, B9600);
  cfsetospeed(&options, B9600);
  options.c_cflag |= (CLOCAL | CREAD);
  options.c_cflag &= ~PARENB;
  options.c_cflag &= ~CSTOPB;
  options.c_cflag &= ~CSIZE;
  options.c_cflag |= CS8;
  options.c_cflag |= CNEW_RTSCTS;
  options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
  options.c_oflag &= ~OPOST;
  
    
  
  tcsetattr(fd, TCSANOW, &options);
  int n = write(fd, "a", 1);
  if (n < 0)
    fputs("write() of 4 bytes failed!\n", stderr);
  close(fd);
  return 0;
}

下面是接收的代码:

#include<stdio.h>
#include<string.h>
#include<unistd.h>
#include<fcntl.h>
#include<errno.h>
#include<termios.h>
int open_port(void){
  int fd;
  fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY);
  if (fd == -1) {
    perror("unable to open port /dev/ttyUSB0");
  } else {
    fcntl(fd, F_SETFL, 0);
    
  }
  return fd;
}
int main(void) {
  int fd = open_port();
  struct termios options;
  tcgetattr(fd, &options);
  cfsetispeed(&options, B9600);
  cfsetospeed(&options, B9600);
  options.c_cflag |= (CLOCAL | CREAD);
  options.c_cflag &= ~PARENB;
  options.c_cflag &= ~CSTOPB;
  options.c_cflag &= ~CSIZE;
  options.c_cflag |= CS8;
  
  options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
  options.c_oflag &= ~OPOST;
  
    
  
  tcsetattr(fd, TCSANOW, &options);
  char buffer[1024];
  int len;
  int nbyte;
  while (1) {
    while((nbyte = read(fd, buffer, 1024)) > 0) {
      buffer[nbyte+1] = '\0';
      printf("\n%s", buffer);
    }
  }
  close(fd);
  return 0;
}

这两个ttyUSB是通过zigbee透传设备组网连接到一起的。
1.使用官网上的测试工具,两个串口之间可以正常通讯,所以是设备问题的几率应该不大。
2. 我用java rxtx写的代码收发也是不一样。
3. 在ubuntu中使用两个cutecom,相互发送,收发不一样。
4. 发送端使用我的代码,接收端使用cutecom,收发也不一样。
这个东西我看了一个多星期了,找不到解决办法或排错办法。跪求大神指点!!!


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 海康网络摄像头SDK二次开发小白求助(车牌信息),最终要实现的功能是八采集到的车牌信息(车牌号、车型、颜色)打印至电脑linux终端,
  • 串口编程小白求助。

相关文章

  • 2017-06-05 科大讯飞语音芯片XFS5152CE这里有大神之前玩过吗?
  • 2017-06-05 请教:ntddkh的编译环境是什么?
  • 2017-06-05 DDR2的仿真
  • 2017-06-05 MC9S12G96的SCI通信问题
  • 2017-06-17嵌入式系统的定义
  • 2017-06-05 使用虚拟机调试设备
  • 2017-06-05 phpcsv导出在window下office打开正常,但在MAC系统下打开只有一列
  • 2017-06-17嵌入式存储器的设计方法和策略
  • 2017-06-05 本人最近在做驱动(ds),希望能同大家交流心得。
  • 2017-06-05 谁在android下搞过SIM800或者SIM900的

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • MSP430中C语言问题
    • 初学驱动编写遇到的问题
    • 关于不同编译器的数据结构内存布局问题
    • win10+VS2008开发winCE60有可能吗?
    • CC1101实现一对一的电磁波唤醒
    • 关于Unix驱动的问题
    • CY7C68013和上位机问题
    • 怎样在程序中安装一个“虚拟设备”的驱动,不通过"控制面板"->"添加新硬件"->"找到inf文件"
    • 如何去掉usb设备时,弹出的对话框,请高手指点
    • keil编译遇到的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有