电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>嵌入式开发>Linux串口应用编程解析

Linux串口应用编程解析

2017-10-18 | rar | 0.3 MB | 次下载 | 1积分

资料介绍

6.4.1 串口概述
  常见的数据通信的基本方式可分为并行通信与串行通信两种。
  n 并行通信是指利用多条数据传输线将一个字数据的各比特位同时传送。它的特点是传输速度快,适用于传输距离短且传输速度较高的通信。
  n 串行通信是指利用一条传输线将数据以比特位为单位顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于传输距离长且传输速度较慢的通信。
  串口是计算机一种常用的接口,常用的串口有RS-232-C接口。它是于1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通信的标准,它的全称是“数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。该标准规定采用一个DB25芯引脚的连接器或9芯引脚的连接器,其中25芯引脚的连接器如图6.3所示。
  Linux串口应用编程解析
  图6.3 25引脚串行接口图
  S3C2410X内部具有两个独立的UART控制器,每个控制器都可以工作在Interrupt(中断)模式或者DMA(直接存储访问)模式。同时,每个UART均具有16字节的FIFO(先入先出寄存器),支持的最高波特率可达到230.4Kbps。UART的操作主要可分为以下几个部分:数据发送、数据接收、产生中断、设置波特率、Loopback模式、红外模式以及硬软流控模式。
  串口参数的配置读者在配置超级终端和minicom时也已经接触过,一般包括波特率、起始位比特数、数据位比特数、停止位比特数和流控模式。在此,可以将其配置为波特率115200、起始位1b、数据位8b、停止位1b和无流控模式。
  在Linux中,所有的设备文件一般都位于“/dev”下,其中串口1和串口2对应的设备名依次为“/dev/ttyS0”和“/dev/ttyS1”,而且USB转串口的设备名通常为“/dev/ttyUSB0”和“/dev/ttyUSB1”(因版本不同该设备名会有所不同),可以查看在“/dev”下的文件以确认。在本章中已经提到过,在Linux下对设备的操作方法与对文件的操作方法是一样的,因此,对串口的读写就可以使用简单的read()、write()函数来完成,所不同的只是需要对串口的其他参数另做配置,下面就来详细讲解串口应用开发的步骤。
  6.4.2 串口设置详解
  串口的设置主要是设置struct termios结构体的各成员值,如下所示:
  #include《termios.h》
  struct termios
  {
  unsigned short c_iflag; /* 输入模式标志 */
  unsigned short c_oflag; /* 输出模式标志 */
  unsigned short c_cflag; /* 控制模式标志*/
  unsigned short c_lflag; /* 本地模式标志 */
  unsigned char c_line; /* 线路规程 */
  unsigned char c_cc[NCC]; /* 控制特性 */
  speed_t c_ispeed; /* 输入速度 */
  speed_t c_ospeed; /* 输出速度 */
  };
  termios是在POSIX规范中定义的标准接口,表示终端设备(包括虚拟终端、串口等)。口是一种终端设备,一般通过终端编程接口对其进行配置和控制。在具体讲解串口相关编程之前,先了解一下终端相关知识。
  终端有3种工作模式,分别为规范模式(canonical mode)、非规范模式(non-canonical mode)和原始模式(raw mode)。
  通过在termios结构的c_lflag中设置ICANNON标志来定义终端是以规范模式(设置ICANNON标志)还是以非规范模式(清除ICANNON标志)工作,默认情况为规范模式。
  在规范模式下,所有的输入是基于行进行处理。在用户输入一个行结束符(回车符、EOF等)之前,系统调用read()函数读不到用户输入的任何字符。除了EOF之外的行结束符(回车符等)与普通字符一样会被read()函数读取到缓冲区之中。在规范模式中,行编辑是可行的,而且一次调用read()函数最多只能读取一行数据。如果在read()函数中被请求读取的数据字节数小于当前行可读取的字节数,则read()函数只会读取被请求的字节数,剩下的字节下次再被读取。
下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1PC3103 低功耗电流模式PWM控制器技术手册
  2. 1.23 MB   |  3次下载  |  免费
  3. 2L7805CV TO-220三端稳压IC规格书
  4. 0.71 MB   |  1次下载  |  免费
  5. 3LoRa2021 全频段无线通讯模块规格书
  6. 814.22 KB  |  1次下载  |  免费
  7. 4L7812CV TO-220三端稳压IC规格书
  8. 1.35 MB   |  次下载  |  免费
  9. 5L7815CV TO-220三端稳压IC规格书
  10. 1.48 MB   |  次下载  |  免费
  11. 6N-12电子倾斜仪指南
  12. 0.24 MB   |  次下载  |  10 积分
  13. 7基于CP500S扫描测头的三坐标测量系统:复杂曲面零件解决方案
  14. 0.35 MB   |  次下载  |  免费
  15. 8STM32H747xI/G 英文数据手册
  16. 5.09 MB   |  次下载  |  免费

本月

  1. 1PFC电路与BOOST电路设计实例分享
  2. 1.83 MB   |  18次下载  |  4 积分
  3. 2电源测试报告-基于 国民技术 N32L406 和杰华特 JW3376+3330 的 BMS 方案
  4. 6.47 MB  |  17次下载  |  免费
  5. 3世平基于灵动微 SPIN560C 的低压无刷电机应用方案
  6. 10.93 MB  |  11次下载  |  免费
  7. 4900MHz全双工无线发射器参考设计原理图资料
  8. 0.40 MB   |  6次下载  |  免费
  9. 5PWM控制器的控制方法
  10. 0.39 MB   |  3次下载  |  4 积分
  11. 6900MHz全双工无线发射器参考设计
  12. 0.15 MB   |  3次下载  |  1 积分
  13. 7美的电磁炉TM-S1-20B PN8124F+CHK S009资料图
  14. 0.28 MB   |  3次下载  |  10 积分
  15. 8FS313B USB 的 PD和QC 快充协议电压诱骗控制器规格书
  16. 2.61 MB   |  3次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935134次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420064次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233089次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191424次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183352次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81602次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73819次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65991次下载  |  10 积分