linux串口应用开发
linux串口应用开发
2009年10月20日 星期二 14:16
1、串口概述
用户常见的数据通信的基本方式有两种:并行通信和串行通信。
串行通信是计算机常用的接口,如:RS-232-C接口。该标准规定采用一个DB25芯引脚连接器或DB9芯引脚连接器。芯片内部常具有UART控制器,其可工作于Interrupt(中断模式)或DMA(直接内存访问)模式。
UART的操作主要包括以下几个部分:
数据发送;数据接收;产生中断;产生波特率;Loopback模式;红外模式;自动流控模式。
串口参数的配置主要包括:波特率、数据位、停止位、流控协议
linux中的串口设备文件存放于/dev目录下,其中串口一,串口二对应设备名依次为“/dev/ttyS0”、“/dev/ttyS1”。在linux下操作串口与操作文件相同。
2、串口详细配置
在使用串口之前必须设置相关配置,包括:波特率、数据位、校验位、停止位等。
串口设置由下面结构体实现:
Struct termios {
tcflag_t c_iflag; /*input flags */
tcflag_t c_oflag; /*output flags */
tcflag_t c_cflag; /*control flags */
tcflag_t c_lflag; /*local flags */
cc_t c_cc[NCCS]; /*control characters */
};
该结构中c_cflag最为重要,可设置波特率、数据位、校验位、停止位。在设置波特率时需在数字前加上‘B’,如B9600或B19200。使用其需通过“与”“或”操作方式。
输入模式c_iflag成员控制端口接收端的字符输入处理。
串口控制函数:
Tcgetattr 取属性(termios结构)
Tcsetattr 设置属性(termios结构)
cfgetispeed 得到输入速度
Cfgetospeed 得到输出速度
Cfsetispeed &nb
相关文档:
其实是个蛮简单的问题。在LDD3的第15章上有写(见“Remapping Specific I/O Regions”这一节)。不过当时作者选择了一个错误的做法:先把这块IO空间用ioremap映射到了内核空间,然后在用户进程访问被映射的地址所产 生的缺页中断里,用vmalloc_to_page得到page,返回给用户进程。
然而,vmalloc_to_page没法用 ......
1.等待线程
pthread_join 函数用来等待一个线程的结束,类似于进程的 wait 函数。
此函数将阻塞调用当前线程的进程,直到此线程退出。即这个函数是一个线程阻塞的函数,调用它的进程将一直等待到被等待的线程结束为,当函数返回时,处于被等待状态的线程资源被收回。如果执行成功,将返回 0,如果失败则返回一个非 0。 ......
以下为SHELL脚本创建一个比较完整的FTP帐号,包括:
1) 新增FTP帐户和目录
2) 修改FTP帐户密码
3) 在FTP帐户目录下,新建三个子目录,存放不同数据
4) 目录权限置为可读写
使用说明:
1) 创建新sh文件(如:addFTPAcc.sh), 将源脚本全部拷贝其中
......
windows下使用foxmail很容易设置hotmail和gmail,转到linux后,发现evolution不太好使,邮件信息的编码没法设置,gbk编码的邮件主题显示乱码,只好换成thunderbird。
thunderbird本身不支持hotmail这类webmail的收发,需要下载插件webmail和hotmail,需要接收yahoo的 ......