Linux 下串口编程入门[IBM]
级别: 初级
左锦 (zuo170@163.com), 副总裁, 南沙资讯科技园
2003 年 7 月 03 日
Linux 操作系统从一开始就对串行口提供了很好的支持,本文就 Linux 下的串行口通讯编程进行简单的介绍。
串口简介
串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定采用一个 25 个脚的 DB25 连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。传输距离在码元畸变小于 4% 的情况下,传输电缆长度应为 50 英尺。
Linux 操作系统从一开始就对串行口提供了很好的支持,本文就 Linux 下的串行口通讯编程进行简单的介绍,如果要非常深入了解,建议看看本文所参考的 《Serial Programming Guide for POSIX Operating Systems》
计算机串口的引脚说明
序号
信号名称
符号
流向
功能
2
发送数据
TXD
DTE→DCE
DTE发送串行数据
3
接收数据
RXD
DTE←DCE
DTE 接收串行数据
4
请求发送
RTS
DTE→DCE
DTE 请求 DCE 将线路切换到发送方式
5
允许发送
CTS
DTE←DCE
DCE 告诉 DTE 线路已接通可以发送数据
6
数据设备准备好
DSR
DTE←DCE
DCE 准备好
7
信号地
信号公共地
8
载波检测
DCD
DTE←DCE
表示 DCE 接收到远程载波
20
数据终端准备好
DTR
DTE→DCE
DTE 准备好
22
振铃指示
RI
DTE←DCE
表示 DCE 与线路接通,出现振铃
回页首
串口操作
串口操作需要的头文件
#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> /*错误号定义*/
回页首
打开串口
在 Linux 下串口文件是位于 /dev 下的
串口一 为 /dev/ttyS0
串口二 为 /dev/ttyS1
打开串口是通过使用标准的文件
相关文档:
例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......
Checking kernel parameters
Checking for semmsl=250; found semmsl=250. Passed
Checking for semmns=32000; found semmns=32000. Passed
Checking for semopm=100; found semopm=32. Failed <<<<
Checking for semmni=128; found semmni=128.&nb ......
1. lpr: line printer 按行打印, 用来将一个或者多个文件放入打印队列等待打印。
举例:
lpr report #打印文件report
lpr -Pprinter1 report #将文件在名称为 printer1 的打印机上打印;
2. touch
修改文件的访问和修改时间。
3. linux中目录由“冒号”分隔; ......
线程处于分离状态后,当线程退出后,则有操作系统来负责系统的回收。
创建分离状态线程的方法有:
1、在线程函数中调用, pthread_detach(pthread_self());
2、线程属性的设置函数
摘自:Unix 环境高级编程
int makethread(void *(*fn),void *arg)
{
int err;
&n ......
我们在linux下面的程序开发,很多时候都会遇到命令行处理,命令行参数处理这样一种控制台程序,它能够很明了的给用户程序出程序的使用方法,也能够使我们的程序开发的流程变得更加明了。下面我们就一起来讨论一下,我们平时如何处理这种命令的输入参数,其实这个就跟readline的处理差不多,我们如果掌握了这种固有的 ......