第十一节 Linux系统编程-串口编程-基本概念以及流程分析

-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.

第一:

实战 Linux 串口编程

本章导读

1)学习过单片机的用户,对串口不会太陌生,在单片机串口编程中,需要用户直接对寄存器以及中断进行控制。
2)在 linux 串口编程中,无论是从 linux 官方直接下载的原生态内核,还是任何厂家提供的linux 内核,都会将串口驱动写好,所以对于所有的驱动工程师来说,是完全不需要自己动手写串口驱动的。
3)本章介绍的 linux 串口编程,实际上指的是 Linux 串口应用编程,直接使用提供原厂提供的接口,进行初始化配置以及发送和接收。对于从事 linux 编程的程序员来说,这一部分内容必须熟练掌握

 

串口通信

串口通信是指一次只传送一个数据位。虽然在通信的时候串口有 8 位或者 9 位等,但是在物理层面传输的时候,它仍然是以单个 bit 的方式传输的。

 

串口

虽然以太网以及 USB 等等也是以串行的方式发送数据,但是串口一般特指 RS232 标准的接口

 

 RS232 的针脚定义

RS232 有两种标准定义,25 针和 8 针的。不过即使是 8 针,在大多数场合工程师也觉得太多了,绝大多数情况下都是只使用 TX,RX 针脚发送和接收信号,再加上一个 GND 地脚。其它定义大家可以通过网络了解一下

 

第二:

串口编程的流程分析

1)打开串口,一般使用 open 函数,打开之后会返回句柄,这个句柄就可以提供给发送和接收函数使用。串口本质上也是字符设备,但是串口是属于一种比较特殊的字符设备。
2)初始化串口,串口需要配置波特率,数据位,校验位等等一系列的参数,初始化的过程掌握了,发送和接收都比较容易实现。虽然初始化比较麻烦,但是无论是在 window 下还是在 linux下,串口的初始化都是很容易找到例程的。个人建议只要能够读懂代码,根据实际需求进行验证和配置即可。
3)发送和接收数据,前面提到过串口是属于字符设备的,可以使用 read 函数和 write 函数实现。
4)关闭,使用函数 close 即可关闭串口

 

第三:

实验-开机启动运行

做串口实验的时候,通过另外的串口读和写,考虑到部分用户可能没有多余的串口或者串口线,这里简单的做一个开机启动的实验。
一个程序能够开机自动启动运行,那么就能不用超级终端的调试串口也能进行程序的测试了。

 

实验例程

如下图所示,使用前面最简单的 helloworld 程序。,前面也编译运行通过了,代码如下

如上所示,代码非常简单,只是打印“Hello World”。

 

操作方法

1)首先确保上面的 helloworld 可执行程序已经在 U 盘中了。开机启动开发板,插入 U 盘,加载 U 盘。

 

 

2)然后如下图所示,使用拷贝命令“cp -r /mnt/udisk/helloworld /bin/”将其拷贝到/bin目录下,然后使用 ls 命令确认一下。

 

3)使用命令“chmod 777 /bin/helloworld”修改权限

 

4)接着使用命令“vi /etc/init.d/rcS”打开文件系统的启动文件,如下图所示。

 

5)保存退出

6)为了方便查找打印信息,可以按照前面入门介绍的方法设置一下开机启动 log,我这里的路径是桌面上的 startlog.log 文件。如下图所示,迅为提供的超级终端设置保存 log 的方法为,“控制”→“日志设置”,然后弹出下图所示的日志配置窗口。

 

7)然后重启开发板。重启开发板之后,其实超级终端中也是会打印信息的,但是启动信息太多,不容易查找。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值