Linux下串口编程之一:基础设置函数
1,串口操作需要的头文件
#include <stdio.h> /* 标准输入输出定义 */
#include <stdlib.h> /* 标准函数库定义 */
#include <unistd.h> /* Unix 标准函数定义 */
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h> /* 文件控制定义 */
#include <termios.h> /*终端控制定义 */
#include <errno.h> /* 错误号定义 */
2,打开串口
在 Linux 下串口文件是位于/dev下的。串口一为/dev/ttyS0,串口二为/dev/ttyS1。打开串口是通过使用标准的文件打开函数操作: int fd; /* 以读写方式打开串口 */
fd = open( "/dev/ttyS0",O_RDWR);
if (-1 == fd)
{
perror(" 提示错误!"); /* 不能打开串口一 */
}
3,串口结构体及参数
串口的设置主要是设置 struct termios 结构体的各成员值。
struct termio
{
unsigned short c_iflag; /* 输入模式标志 */
unsigned short c_oflag; /* 输出模式标志 */
unsigned short c_cflag; /* 控制模式标志 */
unsigned short c_lflag; /* local mode flags */
unsigned char c_line; /* line discipline */
unsigned char c_cc[NCC]; /* control characters */
};
在这个结构中最为重要的是c_cflag,通过对它的赋值,用户可以设置波特率、字符大小、 数据位、停止位、奇偶校验位和硬件流控等。另外c_iflag 和c_cc 也是比较常用的标志。在此主要对这3 个成员进行详细说明。
(1)c_cflag支持的常量名称
CBAUD 波特率的位掩码
B0 0波特率(放弃DTR)
B1800 1800波特率
B2400 2400波特率
&nbs
相关文档:
1. Workqueue
Workqueue的名字就和他的功能一样:需要处理的工作列表和工作的添加删除(貌似没有看到如何删除的)、以及工作的调度执行。
需要处理的工作列表通常都维护在内核对象workqueue_struct里面。系统里面可以有多个workqueue_struct。 ......
嵌入式系统与通用PC机不同,一般没有硬盘这样的存储设备而是使用Flash闪存芯片、小型闪存卡等专为嵌入式系统设计的存储装置,本文分析了嵌入式系统中常用的存储设备及其管理机制,介绍了常用的基于FLASH的文件系统类型。
1.嵌入式系统存储设备及其管理机制分析
构建适用于嵌入式系统的Li ......
Unix中的函数select和poll用来,支持Unix中I/O复用的功能,在Unix中I/O模型可以分为以一几种:
(1)阻塞I/O
(2)非阻塞I/O
(3)I/O复用(select和poll)
(4)信号驱动I/O(SIGIO)
(5)异步I/O
其中,现在比较流行的I/O模型是阻塞I/O模型.阻塞I/O是当应用程序和内核交换数据时,由于内核还没有准备好 ......
下面这个例子列出了所有系统定义的错误代码及错误描述
源代码是:
/************关于本文档********************************************
*filename: strerror.c
*purpose: 列出了系统定义的所有错误代码及描述
*wrote by: zhoulifa(zhoulifa@163.com) 周立发(http://zhoulifa.bokee.com)
Linux爱好者 Linux知识传播 ......
1、LINUX下TTY、CONSOLE、串口之间是怎样的层次关系?具体的函数接口是怎样的?串口是如何被调用的?
tty和console这些概念主要是一些虚拟设备的概念,而串口更多的是指一个真正的设备驱动。Tty实际是一类终端I/O设备的抽象,它实际上更多的是一个管理的概念,目的是向上层的VFS提供 ......