linux c 串口 调用命令,Linux系统C语言串口收发

本文介绍了在Linux系统下如何使用C语言进行串口通信,包括串口设备的识别、利用minicom进行测试、串口配置函数以及串口读写操作的示例代码,最后给出了Makefile的编写示例。
摘要由CSDN通过智能技术生成

Linux系统C语言串口收发

Linux系统对串口提供了很好的支持,使我们很容易就能用C语言编写出串口收发程序。

先简单说明一下编写串口收发程序前的准备工作。首先串口收发需要有硬件上的串口,在Linux系统中串口是以ttySn(如ttyS0对应串口1,ttyS1对应串口2)文件的形式存放于/dev目录下的,因此我们会看到程序中将串口设备定义为char

*dev = "/dev/ttyS6";

。但是现在的笔记本电脑已经不再带有9针串口,因此我们需要一个USB转串口的工具。U转串的工具在Linux系统下会被识别成ttyUSBn文件,同样存在于/dev目录下。比如我虚拟机的Linux系统只连接了一个U转串,则/dev目录下就多出了一个ttyUSB0文件。

有了硬件的支持,我们还需要使用现有的工具测试一下,以便确定出问题时是我们的程序不行还是硬件不行。minicom是Linux系统下常用的串口工具,可以通过

sudo apt-get install minicom

命令安装(操作串口最好在root权限下,否则可能会提示无法打开串口)。安装完后输入

minicom -s

命令配置串口。需要配置Serial port setup选项中的Serial

Device为我们已有的串口,我的是ttyUSB0,因此这一项为

A -  Serial

Device  :

/dev/ttyUSB0

然后是波特率,我用115200,8位数据位,无奇偶校验,1位停止位,因此为

E -  Bps/Par/Bits  : 115200 8N1

之后去掉硬件流控(这个一般不需要)

F - Hardware Flow Control : No

然后保存退出即可

Save setup as dfl

输入minicom即可打开minicom,按ctrl+A,然后按Z可打开帮助菜单。如果出现

minicom: cannot open /dev/ttyUSB0:

没有那个文件或目录

而/dev目录下确实有ttyUSB0这个文件的话,对不起,重启Linux系统吧,重要提示,如果使用minicom时强制退出了,或运行自己写的程序时强制退出,而没有关闭串口,就可能出现串口无法使用的情况,这时可以看看/var/lock目录下是否有对应的lock文件,有就删了再试试,再不行就重启系统吧。如果你发现了不用重启就能解决的办法,非常欢迎能够教教我。

串口可以正常使用后就可以编写程序了!

***********************************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值