- 浏览: 329641 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (299)
- 私人 (3)
- linux (22)
- web service (1)
- java applet (1)
- java (41)
- c# (1)
- socket (1)
- android (10)
- htc (1)
- root (1)
- ftp (3)
- 系统备份 (0)
- jquery (3)
- 图表 (1)
- 实用 (4)
- web (9)
- css (3)
- java applet mplayer (1)
- mplayer (4)
- javascript (8)
- eclipse (1)
- 正则表达式 (1)
- jmf (1)
- tomcat (6)
- 驱动 (1)
- 嵌入式 (1)
- usb (3)
- ffmpeg (1)
- player (1)
- encode (1)
- ajax (1)
- 单纯形复法 (1)
- rom (1)
- ndk (1)
- 打印 (1)
- vs2010 (2)
- myeclipse注册机 (1)
- c++ (5)
- capture (0)
- 串口 (1)
- windows (2)
- mingw (1)
- 网卡 (1)
- 绿色版 (1)
- cywin (1)
- x264 (1)
- 恢复文件 (1)
- servlet init 连数据库 (1)
- 51 单片机 (1)
- 操作系统 (1)
- vlc (3)
- 网线 (1)
- CListBox (1)
- mfc (1)
- setTimer (1)
- 分屏 (1)
- 供求信息 (1)
- 导航 (1)
- 批处理 (1)
- dos (1)
- mysql (5)
- MySQL新建用户 (1)
- demo (1)
- vc (1)
- webservice (1)
- 书签 (1)
- 浏览器 (1)
- spring mvc (1)
- excel (1)
- VPN (0)
- sql (1)
- pdf (3)
- arp (1)
- jsp (2)
- IE (1)
- html (1)
- test (3)
- httpclient (1)
- spring mvc 上传 (1)
- easyui (1)
- mybatis (1)
- spring (1)
- 微信 (1)
- weixin (2)
- pay (2)
- maven (2)
- fastdfs (2)
- ELK (2)
- logstash (1)
- rocketMQ (0)
- jmeter (0)
- 测试 (0)
- softether (0)
- util (0)
最新评论
-
ice24:
ftp client applet -
wuzijingaip:
499700647 写道你好,看了您的文章《ftp clien ...
ftp client applet -
zxcv193188:
感谢楼主
java JMF的使用 -
499700647:
你好,看了您的文章《ftp client aplet》很受启发 ...
ftp client applet -
JoeBaby_:
非常感谢,看文档的时候觉得JMF好难的样子,但是看过代码后思路 ...
java JMF的使用
#include <stdio.h> /*标准输入输出定义*/ #include <stdlib.h> /*标准函数库定义*/ #include <unistd.h> /*Unix标准函数定义*/ #include <sys/types.h> /**/ #include <sys/stat.h> /**/ #include <fcntl.h> /*文件控制定义*/ #include <termios.h> /*PPSIX终端控制定义*/ #include <errno.h> /*错误号定义*/ /***@brief 设置串口通信速率 *@param fd 类型 int 打开串口的文件句柄 *@param speed 类型 int 串口速度 *@return void*/ int speed_arr[] = { B38400, B19200, B9600, B4800, B2400, B1200, B300, B38400, B19200, B9600, B4800, B2400, B1200, B300, }; int name_arr[] = {38400, 19200, 9600, 4800, 2400, 1200, 300, 38400, 19200, 9600, 4800, 2400, 1200, 300, }; void set_speed(int fd, int speed) { int i; int status; struct termios Opt; tcgetattr(fd, &Opt); for ( i= 0; i < sizeof(speed_arr) / sizeof(int); i++) { if (speed == name_arr[i]) { tcflush(fd, TCIOFLUSH); cfsetispeed(&Opt, speed_arr[i]); cfsetospeed(&Opt, speed_arr[i]); status = tcsetattr(fd, TCSANOW, &Opt); if (status != 0) perror("tcsetattr fd1"); return; } tcflush(fd,TCIOFLUSH); } } /** *@brief 设置串口数据位,停止位和效验位 *@param fd 类型 int 打开的串口文件句柄* *@param databits 类型 int 数据位 取值 为 7 或者8* *@param stopbits 类型 int 停止位 取值为 1 或者2* *@param parity 类型 int 效验类型 取值为N,E,O,,S */ int set_Parity(int fd,int databits,int stopbits,int parity) { struct termios options; if ( tcgetattr( fd,&options) != 0) { perror("SetupSerial 1"); return(FALSE); } options.c_cflag &= ~CSIZE; switch (databits) /*设置数据位数*/ { case 7: options.c_cflag |= CS7; break; case 8: options.c_cflag |= CS8; break; default: fprintf(stderr,"Unsupported data size\n"); return (FALSE); } switch (parity) { case 'n': case 'N': options.c_cflag &= ~PARENB; /* Clear parity enable */ options.c_iflag &= ~INPCK; /* Enable parity checking */ break; case 'o': case 'O': options.c_cflag |= (PARODD | PARENB); /* 设置为奇效验*/ options.c_iflag |= INPCK; /* Disnable parity checking */ break; case 'e': case 'E': options.c_cflag |= PARENB; /* Enable parity */ options.c_cflag &= ~PARODD; /* 转换为偶效验*/ options.c_iflag |= INPCK; /* Disnable parity checking */ break; case 'S': case 's': /*as no parity*/ options.c_cflag &= ~PARENB; options.c_cflag &= ~CSTOPB; break; default: fprintf(stderr,"Unsupported parity\n"); return (FALSE); } /* 设置停止位*/ switch (stopbits) { case 1: options.c_cflag &= ~CSTOPB; break; case 2: options.c_cflag |= CSTOPB; break; default: fprintf(stderr,"Unsupported stop bits\n"); return (FALSE); } /* Set input parity option */ if (parity != 'n') options.c_iflag |= INPCK; options.c_cc[VTIME] = 150; // 15 seconds options.c_cc[VMIN] = 0; tcflush(fd,TCIFLUSH); /* Update the options and do it NOW */ if (tcsetattr(fd,TCSANOW,&options) != 0) { perror("SetupSerial 3"); return (FALSE); } return (TRUE); } /** *@breif 打开串口 */ int OpenDev(char *Dev) { int fd = open( Dev, O_RDWR | O_NOCTTY | O_NDELAY); if (-1 == fd) { /*设置数据位数*/ perror("Can't Open Serial Port"); return -1; } else return fd; } /** *@breif main() */ int main(int argc, char **argv) { int fd; int nread; char buff[512]; char *dev ="/dev/ttyS1"; fd = OpenDev(dev); if (fd>0) set_speed(fd,19200); else { printf("Can't Open Serial Port!\n"); exit(0); } if (set_Parity(fd,8,1,'N')== FALSE) { printf("Set Parity Error\n"); exit(1); } while(1) { while((nread = read(fd,buff,512))>0) { printf("\nLen %d\n",nread); buff[nread+1]='\0'; printf("\n%s",buff); } } //close(fd); //exit(0); }
发表评论
-
在CentOS Linux系统的VPS中架设VPN图解教程
2014-03-28 17:10 440转自:http://www.laoyao.cc/post ... -
Mysql 启动服务
2014-03-21 18:37 611chkconfig --add mysqld chkc ... -
centos linux 服务器安全
2014-03-21 18:34 737转自:http://www.dedecms.com/knowl ... -
linux 修改ssh端口
2014-03-21 18:30 572首先修改配置文件 vi /etc/ssh/sshd_con ... -
linux下JAVA环境变量的设置
2014-03-21 14:05 531在终端中输入命令 vi /etc/profile.d/j ... -
linux安装JDK设置环境变量
2014-02-28 11:48 574配置JDK环境: 可以在/etc/profile 文件中添加 ... -
mysql-proxy 集群
2013-04-17 18:04 5本文转自网上,自己稍 ... -
mysql 主从同步(Master / Slave)
2013-04-17 12:06 3转自:[url] http: ... -
linux 分屏
2013-02-02 11:26 1054# nvidia-settings: X config ... -
linux 恢复误删除文件
2012-11-27 10:23 1104如果你不小心误删除了一个重要的文件,如rm -rf kkk , ... -
Linux双网卡绑定
2012-11-06 17:27 611Linux双网卡绑定实现就 ... -
linux 查找字符
2012-06-21 18:07 482grep who /use/local -r g ... -
linux alsa 声卡驱动
2012-05-09 17:53 839linux alsa 声卡驱动 -
vsftp 添加用户 简单步骤
2011-09-14 11:11 8741、rpm -i ftp包 (在安装盘中有) 2、启动 /sb ... -
Linux下用find查找并复制指定文件到指定目录下
2011-09-09 15:40 1656查找当前目录下的所有*.doc文件并将所有结果复制到 /tmp ... -
linux 自动登录
2011-08-24 17:08 852linux 自动登录 注意备份相应文件,此方法会有窗口无边框 ... -
usb linux copy
2011-05-24 11:51 216In order to boot from a USB d ... -
linux ssh tool
2011-05-17 10:58 660下载:http://www.onlinedown.net/so ... -
linux mount
2010-07-27 09:43 3427Linux系统在使用光盘、软盘或U盘时,必须先执行挂载(mou ... -
linux 系统 考贝
2010-07-27 09:25 804转自http://www.lpfrx.com/archives ...
相关推荐
Linux串口编程详解 串口编程是计算机科学中的一种重要技术,它允许计算机与外部设备进行通信。编程语言中串口编程的实现方式有多种,包括使用C语言、Java语言等。 Linux串口编程详解中,串口是计算机上的串行通讯...
嵌入式 linux 串口编程 熟悉了解linux下的串口编程
Linux串口编程,结合ESP8266WIFI模块,实现开发板之间的wifi通信。本工程使用c语言对串口进行编程,运用read,write函数对串口进行AT指令发送以及数据传输。同时,也包含了对termios结构体的运用。
【Linux串口编程】是嵌入式Linux开发中的重要组成部分,它涉及到计算机硬件接口和操作系统对串行通信的支持。串口通信,也称为UART(通用异步收发传输器)通信,是计算机常用的一种接口标准,如RS-232-C,通常使用DB...
本教程主要讲解如何进行Linux串口编程,包括非阻塞`read`,打包`write`,设备打开及串口配置。我们将通过一个名为`uart_test`的示例程序来深入理解这些概念。 首先,我们需要了解Linux系统中的串口接口。在Linux...
Linux 串口编程从驱动到应用 一、串口初始化 Linux 系统中,串口初始化是串口编程的第一步。通常情况下,串口初始化需要在板级支持包(BSP)中实现。在 AT91SAM9260 的板级支持包中,串口初始化是在 `/arch/arm/...
Linux串口编程是嵌入式开发、物联网应用和系统调试中的重要技能,它涉及到与硬件设备的通信,如调制解调器、GPS模块或传感器等。在Linux系统中,串口通常表现为特殊的文件,位于/dev目录下,比如/dev/ttyS0、/dev/...
Linux 串口编程详解(cn)
本资源“非标准输入.rar”提供了关于Linux串口编程的一个实例,名为“linux串口编程示例3”,帮助开发者了解如何通过C语言与串行端口进行交互。 串口在Linux中通常被识别为/dev/ttySx(x为0、1或更高数字,表示串口...
**Linux 串口编程详解** ...总结来说,Linux串口编程是嵌入式开发、物联网设备通信、远程控制等领域的基础技能。理解其工作原理,掌握API的使用,并通过实践编写串口通信程序,能帮助开发者实现高效稳定的串口交互。
Linux串口编程分析--Linux串口编程分析--Linux串口编程分析
Linux串口编程广泛应用于嵌入式系统、自动化设备、遥测系统、GPS模块、无线模块等,通过串口进行数据交换和控制指令的发送。 总之,Linux串口编程是开发者必备的技能之一,通过理解和实践,可以掌握如何在Linux...
本教程主要探讨的是如何在Linux环境下进行串口编程,通过提供的源码实现串口的基础配置,并根据配置文件动态调整串口设置。以下是关于这个主题的详细知识点: 1. **Linux串口基础**: - Linux中的串口通常指的是...
在Linux系统中,串口通信是一种基础且重要的通信方式,广泛应用于...提供的"串口编程资料"应该包含了更多详细的信息,如函数的具体用法、实际代码示例以及错误处理策略,对于学习和提高Linux串口编程技能大有裨益。
### LINUX串口编程入门 #### 串口编程基础与Linux支持 串行接口(简称“串口”)是计算机常用的一种通信接口,以其简洁的连线和便捷的数据传输特性被广泛应用于多种场合。最常见的串行接口标准是RS-232-C(又称为...
在Linux串口编程中,`termios.h`头文件提供了所有相关的函数和结构体定义,它是进行串口通信的基础。通过熟练掌握这些函数和参数,开发者可以灵活地控制串口,实现与各种设备的高效通信。在开发过程中,结合实践不断...