我想设置中断了在Ubuntu串行端口(在C语言编写的程序),但它不工作。 我已经检查串行通讯正常工作没有中断,所以我可能会设置一些错误。 代码如下:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

void signal_handler_IO (int status); /* definition of signal handler */

int n;

int fd;

int connected;

struct termios termAttr;

struct sigaction saio;

int main(int argc, char *argv[])

{

fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY);

if (fd == -1)

{

perror("open_port: Unable to open /dev/ttyO1\n");

exit(1);

}

saio.sa_handler = signal_handler_IO;

saio.sa_flags = 0;

saio.sa_restorer = NULL;

sigaction(SIGIO,&saio,NULL);

fcntl(fd, F_SETFL, FNDELAY);

fcntl(fd, F_SETOWN, getpid());

tcgetattr(fd,&termAttr);

baudRate = B115200;

cfsetispeed(&termAttr,B115200);

cfsetospeed(&termAttr,B115200);

termAttr.c_cflag &= ~PARENB;

termAttr.c_cflag &= ~CSTOPB;

termAttr.c_cflag &= ~CSIZE;

termAttr.c_cflag |= CS8;

termAttr.c_cflag |= (CLOCAL | CREAD);

termAttr.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);

termAttr.c_iflag &= ~(IXON | IXOFF | IXANY);

termAttr.c_oflag &= ~OPOST;

tcsetattr(fd,TCSANOW,&termAttr);

printf("UART1 configured....\n");

connected = 1;

while(connected == 1){

// some code

}

close(fd);

exit(0);

}

void signal_handler_IO (int status)

{

printf("received data from UART.\n");

}

所以随时时间的另一装置通过配置的端口发送一个消息,该消息“从UART接收的数据”。 永远不会显示。

任何建议来解决这个问题? 此外,系统怎样涉及与串口中断?我看了一下signal.h中,但我还没有找到一个答案。 我从这个页面中断的想法: http://www.faqs.org/docs/Linux-HOWTO/Serial-Programming-HOWTO.html

在此先感谢您的帮助。 提前致谢。

linux 串口 中断方式,设置在linux下串口中断(setting serial port interruption in相关推荐

  1. linux串口环形缓冲区,能不能讲解下串口环形缓冲区的概念?

    有段串口收发程序,看起来费劲,感觉可能是环形收发,能不能普及下思路? /* 变量声明 */ INT8U * p_uart1SendBuf;                                ...

  2. linux环境变量重复设置,请叫下环境变量重复设置的问题

    把下面的脚本保存在一个shell里面,运行一次没有问题,但是运行两次的话,$DSAGENT_HOME/bin会加上两次,因为第二次path里面已经有了$DSAGENT_HOME/bin,再加上前面一次 ...

  3. 四种Linux硬盘分区方式,首次安装Linux之磁盘分区

    首次安装Linux之磁盘分区 大多数朋友首次安装Linux,通常会选择图形界面的方式.采用这种方式的好处是在安装过程中基本上不会遇到太多的问题,现在的Linux安装界面已经是只需你一路点击Next,就 ...

  4. 解决ubuntu下arduino IDE的Serial Port无法选择问题

    刚接触arduino,刚买了个arduino uno的板子(mango的兼容板 ,不得不说,质量还不错.),拿回来就开始折腾,开始在windows上折腾没有问题,近来在windows下工作越来越少,而 ...

  5. LINUX的DNS怎么设置?linux下如何修改DNS地址

    linux下如何修改DNS地址,这应该是每一个初学Linux都会遇到的问题呢.如何没有设置DNS服务器的话,那么系统就不能正常上网了.本文以Redhat系统为例,设置linux系统的DNS 1,网卡D ...

  6. linux命令行 jdb,设置调试linux下jdb远程调试tomcat源码

    时间紧张,先记一笔,后续优化与完善. 在tomcat打开调试设置jvm参数 -Xrunjdwp:transport=dt_socket,server=y,address=9090,suspend=y ...

  7. linux添加硬盘分区设置柱面,linux 下添加新硬盘设备和硬盘分区格式化挂载使用磁盘配额限制...

    磁盘管理 1.查看硬盘设备信息 fdisk -l 2.磁盘分区.格式化.挂载使用 1).查看硬盘信息:fdisk -l [root@localhost ~]# fdisk -l Disk /dev/s ...

  8. linux分屏方式显示2015,Linux下的分屏显示

    首先解释一下我们这里的"分屏显示":指两个或四个显示器共同显示一个X-window的内容,而不是每个显示器都完整的显示一个X-window的内容(readme文件有描述,称为 MU ...

  9. nginx linux 系统服务,把ngnix注册为linux服务 将Nginx设置为linux下的服务

    一.创建服务脚本 vim /etc/init.d/nginx 脚本内容如下 #! /bin/sh # chkconfig: - 85 15 PATH=/web/server/nginx/sbin DE ...

最新文章

  1. LeetCode - 25. Reverse Nodes in k-Group
  2. notepad++ 设置常用快捷键
  3. mysql5.7跳过gitd_MySQL5.7在线开启/关闭GTID
  4. 使用 Azure PowerShell 管理 Azure 虚拟网络和 Windows 虚拟机
  5. Rumor CodeForces - 893C
  6. 不要一辈子靠技术生存!!
  7. JS中 map, filter, some, every, forEach, for in, for of 用法总结
  8. 求中位数中回文数之和C语言,一些算法题及答案
  9. mysql 备份的权限_Mysql 数据库备份权限
  10. 网上找的一段代码突然爆了,项目出现大Bug!
  11. case when then end.sql
  12. linux下载git并为git配置连接ssh
  13. 整理了上千个 Python 工具库,涵盖24个大方向
  14. Android利用Fiddler进行网络数据抓包
  15. linux中常用的加密总结--base64编码解码与openssl实现
  16. bootstrap模态框 模态框手动关闭
  17. phpstudy环境下laravel项目,Nginx报错CreateFile failed
  18. matlab中Cci,MATLAB量化交易策略之 CCI择时
  19. AutoCAD功能区栏消失或者变成简要版了——亲测解决
  20. sklearn之LASSO算法应用

热门文章

  1. 在做微信分享发送红包时思路
  2. linux下vmware12不能3D加速解决方法
  3. 第十八届中国国际广告节会议注册表-->网页案例
  4. python自动化测试 | 接口自动化测试脚本如何写好?
  5. CVX用户指南之快速入门
  6. Redis+Twemproxy+HAProxy集群
  7. Error Pe007: unrecognize token
  8. 网络单线复用vlan设置及iptv卡顿看不了直播的解决
  9. PMP学员:项目管理的重要性
  10. 土地主大威德之模板方法模式