Linux串口打印设置
linux串口编程参数配置详解

linux串口编程参数配置详解1.linux串口编程需要的头文件#include <stdio.h> //标准输入输出定义#include <stdlib.h> //标准函数库定义#include <unistd.h> //Unix标准函数定义#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h> //文件控制定义#include <termios.h> //POSIX中断控制定义#include <errno.h> //错误号定义2.打开串口串口位于/dev中,可作为标准文件的形式打开,其中:串口1 /dev/ttyS0串口2 /dev/ttyS1代码如下:int fd;fd = open(“/dev/ttyS0”, O_RDWR);if(fd == -1){Perror(“串口1打开失败!”);}//else//fcntl(fd, F_SETFL, FNDELAY);除了使用O_RDWR标志之外,通常还会使用O_NOCTTY和O_NDELAY这两个标志。
O_NOCTTY:告诉Unix这个程序不想成为“控制终端”控制的程序,不说明这个标志的话,任何输入都会影响你的程序。
O_NDELAY:告诉Unix这个程序不关心DCD信号线状态,即其他端口是否运行,不说明这个标志的话,该程序就会在DCD信号线为低电平时停止。
3.设置波特率最基本的串口设置包括波特率、校验位和停止位设置,且串口设置主要使用termios.h头文件中定义的termios结构,如下:struct termios{tcflag_t c_iflag; //输入模式标志tcflag_t c_oflag; //输出模式标志tcflag_t c_cflag; //控制模式标志tcflag_t c_lflag; //本地模式标志cc_t c_line; //line disciplinecc_t c_cc[NCC]; //control characters}代码如下:int speed_arr[] = { B38400, B19200, B9600, B4800, B2400, B1200, B300, B384 00, B19200, B9600, B4800, B2400, B1200, B300, };int name_arr[] = {38400, 19200, 9600, 4800, 2400, 1200, 300, 38400, 19200, 9 600, 4800, 2400, 1200, 300, };void SetSpeed(int fd, int speed){int i;struct termios Opt; //定义termios结构if(tcgetattr(fd, &Opt) != 0){perror(“tcgetattr fd”);return;}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]);if(tcsetattr(fd, TCSANOW, &Opt) != 0){perror(“tcsetattr fd”);return;}tcflush(fd, TCIOFLUSH);}}}注意tcsetattr函数中使用的标志:TCSANOW:立即执行而不等待数据发送或者接受完成。
Linux打印机配置教程

Linux打印机配置─────了解应用 以红旗Linux为例配置打印机全过程,其它Linux版本都可以参考。
Red Flag Linux Desktop 5.0 改进了打印机配置工具的设计,使用户可以采用更为方便熟悉的方式进行打印配置和打印任务管理。
目录配置打印机添加本地打印机添加本地打印机续添加本地打印机再续添加SMB 共享打印机添加SMB 共享打印机续添加网络打印机添加远程LPD 队列添加IPP 网络打印机打印机属性设置打印机属性设置续打印机共享设置打印机共享设置续打印任务管理打印机兼容性前言 Red Flag Linux Desktop 5.0 使用了“UNIX 系统所有打印子系统中最先进、强大和易于配置”的CUPS 打印子系统。
CUPS 使用互联网打印协议(IPP)作为管理打印的基础,同时支持精简的 LPD、SMB、JetDirect 等协议,还增加了网络打印机浏览功能和以 Postscrīpt 打印规范为基础的其他选项功能。
除了支持的打印机类型更多和配置选项更丰富外,CUPS 还特别易于设置并允许任何联网的计算机通过局域网访问单个 CUPS 服务器。
主要特点: 添加打印机向导:帮助用户安装和配置新的打印机; 扫描局域网内可使用的打印机和打印队列,帮助用户发现打印机,此功能当网络连接为TCPnetwork/AppSocket、HP JetDirect、IPP 及 SMB 时均有效; 打印作业管理:可显示打印任务信息和状态、挂起或启动作业、把队列中的作业移到另一打印机、取消排队的作业等; 打印预览:在打印对话框中可以预览将要打印的文件; 打印机共享:将本地打印机共享为 Samba 打印服务器; 提供了特殊和伪打印机类型:在外部程序帮助下实现打印到 PDF、将文件做为 PDF 附件发送、打印到Postscrīpt 文件、把文件作为传真发送等。
虽然打印管理器在设计时加入了对 LPD、RLPR、LPRng 等打印子系统模块的支持,但本版本中只有CUPS 的功能得到完全实现,所以推荐使用的只是默认的打印系统:CUPS(通用 UNIX 打印系统)。
linux初始化串口参数

linux初始化串口参数初始化 Linux 串口参数要初始化 Linux 串口,你需要遵循以下步骤:1. 确定串口名称使用 `ls -l /dev/serial/by-id/` 或 `dmesg | grep tty` 命令找出分配给串口的设备名称。
2. 打开串口使用 `open()` 函数打开串口,例如:```cint fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY);```3. 设置串口参数使用 `tcgetattr()` 和 `tcsetattr()` 函数设置串口参数。
这些参数包括波特率、数据位、停止位和奇偶校验:```cstruct termios options;tcgetattr(fd, &options);cfsetispeed(&options, B115200);cfsetospeed(&options, B115200);options.c_cflag &= ~PARENB;options.c_cflag &= ~CSTOPB;options.c_cflag &= ~CSIZE;options.c_cflag |= CS8;tcsetattr(fd, TCSANOW, &options);```4. 启用流控制 (可选)如果需要流控制,可以使用 `tcflow()` 函数启用它: ```cstruct termios options;tcgetattr(fd, &options);options.c_iflag |= IXON | IXOFF;tcsetattr(fd, TCSANOW, &options);```5. 配置接受模式使用 `fcntl()` 函数配置串口接受模式,例如:```cfcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK); ```6. 读取和写入数据要读取和写入数据,可以使用 `read()` 和 `write()` 函数: ```cchar buffer[1024];read(fd, buffer, sizeof(buffer));write(fd, buffer, sizeof(buffer));```示例代码以下是一个示例代码,演示如何使用上面讨论的步骤初始化Linux 串口:```c#include <stdio.h>#include <fcntl.h>#include <termios.h>#include <unistd.h>int main() {int fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY);if (fd < 0) {perror("open");return -1;}struct termios options;tcgetattr(fd, &options);cfsetispeed(&options, B115200); cfsetospeed(&options, B115200); options.c_cflag &= ~PARENB;options.c_cflag &= ~CSTOPB;options.c_cflag &= ~CSIZE;options.c_cflag |= CS8;tcsetattr(fd, TCSANOW, &options);fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK); char buffer[1024];read(fd, buffer, sizeof(buffer));write(fd, buffer, sizeof(buffer));close(fd);return 0;}```。
Linux终端中打印相关的常用命令

Linux终端中打印相关的常用命令Linux终端是开放源代码操作系统中常用的命令行界面,通过终端可以进行各种操作和管理工作。
打印是我们在工作中经常需要的功能,本文将介绍Linux终端中与打印相关的常用命令。
一、查看打印机状态命令1. lpstat该命令用于查看打印队列和打印机状态。
在终端输入lpstat命令,系统将显示当前系统中的打印机列表及其状态信息。
例如:```$ lpstat打印机 Deskjet-500 (默认打印机) 正在运行```这表示名为"Deskjet-500"的打印机正在运行,并且是默认打印机。
二、打印文件命令1. lplp命令用于将文件发送到打印机进行打印。
使用该命令时,需要指定要打印的文件和打印机名称。
例如:```$ lp file.txt -d Deskjet-500```上述命令将名为"file.txt"的文件发送到"Deskjet-500"打印机进行打印。
2. lprlpr命令是lp命令的另一种形式,用法和lp基本相同。
例如:```$ lpr file.txt -P Deskjet-500```上述命令将名为"file.txt"的文件发送到"Deskjet-500"打印机进行打印。
三、取消打印命令1. cancelcancel命令用于取消正在打印的文件。
使用该命令时,需要指定要取消的打印任务的ID。
例如:```$ cancel 123```上述命令将取消ID为123的打印任务。
2. lprmlprm命令是cancel命令的另一种形式,用法和cancel基本相同。
四、设置默认打印机命令1. lpoptionslpoptions命令用于设置默认打印机。
在终端输入lpoptions命令时,系统将显示可用的打印机列表并提供选择。
例如:```$ lpoptions -d Deskjet-500```上述命令将将名为"Deskjet-500"的打印机设置为默认打印机。
linux标准输入输出重定向到串口设置指南

Linux标准输入输出重定向到串口指南邮箱:追风哥455546798@描述:设置linux系统的标准输入输出到com0(console口),以便维护人员在无网络、无显示器的情况下对系统维护。
在各文件(/etc/grub.conf、/etc/inittab、/etc/securetty)中添加红色部分!文件修改完成后reboot系统即可在com0口看到标准输入输出信息。
1、grub.conf 文件配置[root@localhost etc]# more grub.conf# grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You do not have a /boot partition. This means that# all kernel and initrd paths are relative to /, eg.# root (hd0,0)# kernel /boot/vmlinuz-version ro root=/dev/sda1# initrd /boot/initrd-[generic-]version.img#boot=/dev/sdadefault=2timeout=10splashimage=(hd0,0)/boot/grub/splash.xpm.gzhiddenmenuserial --unit=0 --speed=115200 --word=8 --parity=no --stop=1terminal --timeout=10 serial consoletitle Red Hat Enterprise Linux (2.6.32-71.el6.i686)root (hd0,0)kernel /boot/vmlinuz-2.6.32-71.el6.i686 roroot=UUID=0cdc97d9-4515-461c-9691-91a03b9a41ea console=ttyS0,115200n8 rd_NO_LUKS rd_NO_LVMrd_NO_MD rd_NO_DMLANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quietconsole=tty0initrd /boot/initramfs-2.6.32-71.el6.i686.img2、inittab 文件配置[root@localhost etc]# more inittabid:3:initdefault:S0:2345:respawn:/sbin/agetty -L -f /etc/issueserial 115200 ttyS0 vt100//说明在文件末尾添加S0:2345:xxxx行3、securetty 文件配置[root@localhost etc]# more securetty vc/10tty1tty2ttyS0//说明在文件末尾添加ttyS0。
在Linux终端中如何打印文件内容

在Linux终端中如何打印文件内容Linux终端是一个强大的命令行工具,它提供了各种功能来管理文件和操作系统。
在Linux中,打印文件内容是一个经常需要的任务,本文将介绍几种在Linux终端中打印文件内容的方法。
方法一:使用cat命令cat命令是Linux中一个常用的命令,它可以显示文件内容。
在终端中输入以下命令可以使用cat命令打印文件内容:```cat 文件名```例如,假设我们有一个名为example.txt的文件,想要打印该文件的内容,可以使用以下命令:```cat example.txt```cat命令会将文件的内容输出到终端窗口中,可以一次性显示整个文件的内容。
方法二:使用more命令如果文件内容比较长,使用cat命令可能会导致内容一次性显示在终端中,而不是一页一页地输出。
这时可以使用more命令来分页显示文件内容。
```more 文件名```例如,假设我们有一个名为example.txt的文件,想要使用more命令打印该文件的内容,可以使用以下命令:```more example.txt```more命令会将文件内容按照一页一页地输出,每次显示一页内容。
按下空格键可以显示下一页,按下q键可以退出显示。
方法三:使用less命令与more命令类似,less命令也可以用于分页显示文件内容。
使用less命令时,可以使用箭头键进行上下滚动,并且支持搜索文件内容。
```less 文件名```例如,假设我们有一个名为example.txt的文件,想要使用less命令打印该文件的内容,可以使用以下命令:```less example.txt```less命令会将文件内容按照一页一页地输出,与more命令相比,less命令提供了更多的交互功能。
方法四:使用head和tail命令head命令可以显示文件的前几行内容,tail命令可以显示文件的后几行内容。
这两个命令在Linux终端中也可以用来打印文件内容的一部分。
Linux终端命令打印和打印机管理

Linux终端命令打印和打印机管理在Linux操作系统中,终端命令是管理和控制系统的重要工具。
其中,打印和打印机管理也是我们经常需要使用的功能。
本文将介绍一些常用的Linux终端命令,以及如何通过命令来管理和配置打印机。
一、打印命令1. lp命令:lp命令是Linux中用于打印文件的基本命令。
使用lp命令时,可以指定打印机、打印份数以及其他打印选项。
例如: lp -d printername filename这条命令将文件filename发送到名为printername的打印机进行打印。
2. lpr命令:lpr命令同样用于文件的打印,但与lp命令不同的是,lpr命令直接发送文件到默认打印机进行打印。
例如:lpr filename这条命令将文件filename发送到默认打印机进行打印。
3. lpq命令:lpq命令用于查看当前打印队列的状态。
通过lpq命令,我们可以了解到正在排队等待打印的文件以及它们的打印顺序。
例如: lpq这条命令将显示当前打印队列的状态。
4. lprm命令:lprm命令用于从打印队列中删除正在等待的文件。
例如:lprm jobnumber这条命令将从打印队列中删除指定编号的打印任务。
二、打印机管理1. lpadmin命令:lpadmin命令是Linux中用于管理打印机的命令。
通过lpadmin命令,我们可以添加、删除、配置和控制打印机。
例如: lpadmin -p printername -E -v device-uri这条命令将添加一个名为printername的打印机,并将其与设备连接。
2. lpoptions命令:lpoptions命令用于查看和配置打印机的选项。
通过lpoptions命令,我们可以设置打印机的默认设置、纸张大小、打印质量等。
例如:lpoptions -d printername这条命令将将printername设置为默认打印机。
3. lpc命令:lpc命令用于控制和管理打印机的状态。
linux c语言 串口读取数据的方法

linux c语言串口读取数据的方法Linux下使用C语言读取串口数据的方法引言:串口是计算机和外部设备进行通信的一种重要的通信接口。
在Linux系统中,要使用C语言读取串口数据,需要通过打开串口设备文件,设置串口参数,并进行读取数据的操作。
本文将介绍如何通过C语言在Linux下读取串口数据的方法。
目录:1. 了解串口的工作原理2. 打开串口设备文件3. 设置串口参数4. 读取串口数据5. 示例程序6. 总结1. 了解串口的工作原理:在开始编写C语言读取串口数据的方法前,首先需要了解串口的工作原理。
串口是通过硬件电路实现两台设备之间的数据传输,属于一种异步串行通信方式。
典型的串口包含发送数据引脚(TX)、接收数据引脚(RX)、数据位、停止位、奇偶校验位等。
2. 打开串口设备文件:在Linux系统中,每个串口设备都被映射到一个设备文件上,例如/dev/ttyS0代表第一个串口设备,/dev/ttyUSB0代表第一个USB串口设备。
要使用C语言读取串口数据,需要首先打开相应的串口设备文件。
在C语言中,使用open()函数打开串口设备文件。
open()函数的原型如下:cint open(const char *pathname, int flags);其中pathname参数指定要打开的串口设备文件路径,flags参数指定打开方式。
常用的flags参数有O_RDONLY(只读方式打开)、O_WRONLY (只写方式打开)和O_RDWR(读写方式打开)。
例如,要打开第一个串口设备文件,可以调用open()函数如下:cint fd = open("/dev/ttyS0", O_RDWR);if (fd == -1){perror("Error opening serial port");return -1;}当open()函数成功打开串口设备文件时,会返回一个非负整数的文件描述符fd,用于后续的操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、基于VM虚拟机linux系统串口配置
配置分为虚拟机下配置及linux系统下minicom配置两部分。
虚拟机模块配置如下:
打开虚拟机配置界面。
选择Edit virtual machine settings。
进入配置界面。
选择Add…按钮,添加相关的设备文件。
选中串口选项后继续选择下一步。
此处选择”使用主机上的物理串口设备”选项,继续下一步。
此处我们选择文件。
对于物理串口选项,此处可以采用自动检测选项。
如果下来菜单中有对应于串口的端口号,则可以选择。
注意,对于设备状态,要确保选中“connect at power on“,即,上电连接状态。
至此,虚拟机端串口配置完毕。
注意:此处我们串口添加成功后默认未COM2.
Linux下串口配置及使用。
Linux下一般使用minicom来作为串口数据输入输出的终端。
类似于Windows下的超级终端。
虚拟机下配置完毕后,进入Linux系统中,在Shell 终端下输入minicom -s即可配置串口终端。
配置完成后执行minicom启动串口终端。
在终端界面下完成相关的参数配置并保存后,启动终端设备,即可在minicom中观察到数据输出。
<四>Minicom的使用
(1)minicom界面介绍
第一次运行minicom,启动minicom要以root权限登录系统,需要进行minicom的设置,输入下了命令#minicom –s,显示的屏幕如下所示,按
上下光标键进行上下移动选择,我们要对串行端口进行设置,因此选中
Serial port setup,然后回车:
__[configuration]─-─—┐//配置
│ Filenames and paths │//文件名和路径
│ File transfer protocols│//文件传输协议
│ Serial port setup │//串行端口设置
│ Modem and dialing │//调制解调器和拨号
│ Screen and keyboard │//屏幕和键盘
│ Save setup as dfl │//设置保存到
│ Save setup as.. │//储存设定为
│ Exit │//退出
│ Exit from Minicom │//退出minicom
└──────────┘
(2)minicom的参数设置
选中设置串行端口,点击回车后,弹出设置的界面如下:
点击”A”设置串行设置为/dev/ttyS1,这表示使用串口2(com2),如果是
/dev/ttyS1则表示使用串口2(com 2).按”E”键进入设置”bps/par/Bits”(波
特率)界面,如下图所示。
再按”I”以设置波特率为115200,点”F”键硬
件流控制设置为NO,回车
最终的设置结果如下,然后回车返回到串口设置主菜单中
│A-Serial Device(串口设备): /dev/ttyS1
│B-Lockfile Location(锁文件位置): /var/lock
│C-Callin Program(调入程序):
│D-Callout Program(调出程序):
│E-Bps/Par/Bits(): 115200 8N1
│F-Hardware Flow Control(硬件数据流控制): No
│G-Software Flow Control(软件数据流控制): No
二、Linux 标准输入输出重定向到串口指南
设置linux 系统的标准输入输出到com2(console 口),以便维护人员
在无网络、无显示器的情况下对系统维护。
在各文件(/etc/grub.conf、
/etc/inittab、/etc/securetty)中添加红色部分!文件修改完成后
reboot 系统即可在com2 口看到标准输入输出信息。
1、grub.conf 文件配置
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0)
# kernel /vmlinuz-version ro
root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
serial --unit=0 --speed=115200 --word=8 --paity=no --stop=1 terminal --timeout=10 serial console
serial
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro
root=/dev/VolGroup00/LogVol00 console=ttyS1,115200n8
rhgb quiet console=tty1 crashkernel=192M@16M
initrd /initrd-2.6.18-164.el5.img
2、inittab 文件配置
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now. # This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
# If power was restored before the shutdown kicked in, cancel it. pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
7:2345:respawn:/sbin/agetty ttyS1 1152000,115200 xterm
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
3、securetty 文件配置
console
ttyS1
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
三、修改Consle打印过滤级别
echo 8 > /proc/sys/kernel/printk
//执行此命令后各级别printk()打印均可同步输出到串口
此处我们把此命令加入到/etc/rc.d/rc.local,每次开机自动运行。
四、大功告成
以后我么就可以在“步骤一、”中配置的串口关联文件中查看串口打印信息了。