linux 串口 中断方式,设置在linux下串口中断(setting serial port interruption in
我想设置中断了在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相关推荐
- linux串口环形缓冲区,能不能讲解下串口环形缓冲区的概念?
有段串口收发程序,看起来费劲,感觉可能是环形收发,能不能普及下思路? /* 变量声明 */ INT8U * p_uart1SendBuf; ...
- linux环境变量重复设置,请叫下环境变量重复设置的问题
把下面的脚本保存在一个shell里面,运行一次没有问题,但是运行两次的话,$DSAGENT_HOME/bin会加上两次,因为第二次path里面已经有了$DSAGENT_HOME/bin,再加上前面一次 ...
- 四种Linux硬盘分区方式,首次安装Linux之磁盘分区
首次安装Linux之磁盘分区 大多数朋友首次安装Linux,通常会选择图形界面的方式.采用这种方式的好处是在安装过程中基本上不会遇到太多的问题,现在的Linux安装界面已经是只需你一路点击Next,就 ...
- 解决ubuntu下arduino IDE的Serial Port无法选择问题
刚接触arduino,刚买了个arduino uno的板子(mango的兼容板 ,不得不说,质量还不错.),拿回来就开始折腾,开始在windows上折腾没有问题,近来在windows下工作越来越少,而 ...
- LINUX的DNS怎么设置?linux下如何修改DNS地址
linux下如何修改DNS地址,这应该是每一个初学Linux都会遇到的问题呢.如何没有设置DNS服务器的话,那么系统就不能正常上网了.本文以Redhat系统为例,设置linux系统的DNS 1,网卡D ...
- linux命令行 jdb,设置调试linux下jdb远程调试tomcat源码
时间紧张,先记一笔,后续优化与完善. 在tomcat打开调试设置jvm参数 -Xrunjdwp:transport=dt_socket,server=y,address=9090,suspend=y ...
- linux添加硬盘分区设置柱面,linux 下添加新硬盘设备和硬盘分区格式化挂载使用磁盘配额限制...
磁盘管理 1.查看硬盘设备信息 fdisk -l 2.磁盘分区.格式化.挂载使用 1).查看硬盘信息:fdisk -l [root@localhost ~]# fdisk -l Disk /dev/s ...
- linux分屏方式显示2015,Linux下的分屏显示
首先解释一下我们这里的"分屏显示":指两个或四个显示器共同显示一个X-window的内容,而不是每个显示器都完整的显示一个X-window的内容(readme文件有描述,称为 MU ...
- nginx linux 系统服务,把ngnix注册为linux服务 将Nginx设置为linux下的服务
一.创建服务脚本 vim /etc/init.d/nginx 脚本内容如下 #! /bin/sh # chkconfig: - 85 15 PATH=/web/server/nginx/sbin DE ...
最新文章
- LeetCode - 25. Reverse Nodes in k-Group
- notepad++ 设置常用快捷键
- mysql5.7跳过gitd_MySQL5.7在线开启/关闭GTID
- 使用 Azure PowerShell 管理 Azure 虚拟网络和 Windows 虚拟机
- Rumor CodeForces - 893C
- 不要一辈子靠技术生存!!
- JS中 map, filter, some, every, forEach, for in, for of 用法总结
- 求中位数中回文数之和C语言,一些算法题及答案
- mysql 备份的权限_Mysql 数据库备份权限
- 网上找的一段代码突然爆了,项目出现大Bug!
- case when then end.sql
- linux下载git并为git配置连接ssh
- 整理了上千个 Python 工具库,涵盖24个大方向
- Android利用Fiddler进行网络数据抓包
- linux中常用的加密总结--base64编码解码与openssl实现
- bootstrap模态框 模态框手动关闭
- phpstudy环境下laravel项目,Nginx报错CreateFile failed
- matlab中Cci,MATLAB量化交易策略之 CCI择时
- AutoCAD功能区栏消失或者变成简要版了——亲测解决
- sklearn之LASSO算法应用