首页
学习
活动
专区
工具
TVP
发布

Linux基础(串口编程)

虽然以太网接口和USB接口也是以一个串行流进行数据传送的,但是串口连接通常特指那些与RS-232标准兼容的硬件或者调制解调器的接口。废话少讲,今天来解剖使用串口时的编程代码细节。...上面的代码是使用串口的第一步,来解释下都是啥意思。...来瞧瞧: 第21-22行,定义了一个用来配置串口属性的结构体: struct termios serial; bzero(&serial, sizeof(serial)); 第24行,将串口设置为raw...cfsetispeed(&serial, B9600); cfsetospeed(&serial, B9600); 第28-32行,设置串口控制属性(c_cflag),其中: serial.c_cflag...: tcsetattr(fd,TCSANOW,&serial); 当然,上面的 fd 就是系统中的某一个你想要设置的成上面那样的属性参数的串口,比如就拿粤嵌GEC210开发板来说,他有四个串口,其中第一个就已经被用于终端控制了

12.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

Linux 查看本机串口方法

最近在了解嵌入式方面的知识,就随笔记录一下: 查看Linux本机串口: 1、查看串口是否可用    可以对串口发送数据比如对com1口,echo /dev/ttyS0 2、查看串口名称使用    ls...-l /dev/ttyS*   一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS*,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的; 3、...查看串口驱动    cat/proc/tty/drivers/serial 4、查看串口设备    dmesg | grep ttyS* 5、查一下板子上的串口有没有设备    grep tty/proc.../dev下应该有一个USB串口:/dev/ttyUSB0. 当一个串行卡或数据卡被侦测到时,它会被指定成为第一个可用的串行设备。...PC上的串口一般是ttyS,板子上Linux串口一般叫做ttySAC; 串口使用: 如果需要查看这个串口设备输出: cat ttyUSB0 如果需要对这个设备输入: echo yaoxu > ttyUSB0

20.9K20

Linux 串口的基本用法

查看Linux本机串口: 1、查看串口是否可用 如果需要查看这个串口设备输出: cat ttyUSB0 如果需要对这个设备输入: echo yaoxu > ttyUSB0 常用的调试工具有: minicom...cutecom Linux系统可视化串口应用软件,使用上与Windows系统串口调试工具。 picocom 效果上类似 minicom 的精简版,设置比较简单,还可以有背景颜色。...PC上的串口一般是ttyS,板子上Linux串口一般叫做ttySAC; 串口权限问题 临时调试解决 在使用串口进行通信时,经常需要使用指令来赋予用户读写的权限 $ sudo chmod 777 /dev...查看linux所有用户 使用 /etc/passwd 文件 使用任何一个像 cat、more、less 等文件操作命令来打印 Linux 系统上创建的用户列表。.../etc/passwd 是一个文本文件,其中包含了登录 Linux 系统所必需的每个用户的信息。

9.7K41

嵌入式Linux串口编程

简介 嵌入式Linux串口编程与Linux系统下的编程没有什么区别,系统API都是一样的。...嵌入式设备中串口编程是很常用的,比如会对接一些传感器模块,这些模块大多是RS232或者RS485接口,对于软件层面上来说,RS232与RS48区别不大。...RS232与RS485在使用上的区别,RS232是全双工的,只能对接一个设备串口设备。RS485是半双工的总线协议,一般可以挂多个传感器设备,半双工的意思是同时只能有一个设备向串口发数据。...用到的API函数 函数 说明 open 打开设备,用于打开串口设备 fcntl 修改设备描述符属性参数 isatty 检测打开的描述符是否指向一个终端 tcgetattr 用来获取串口终端参数 cfmakeraw...将终端设置为原始模式,该模式下所有的输入数据以字节为单位被处理 tcflush 用于清空输入、输出缓冲区 tcsetattr 设置串口终端参数 read 读取数据 write 写数据 close 关闭串口设备

13K20

VC++ 串口开、关、、写操作及注意事项

下面资料将介绍串口在打开、关闭、和写的时候一些注意事项以及参数的配置(代码中有详细注释。)...串口的开关 在串口打开的时候,我们要对串口做一些基础的初始化,比如波特率、数据位、校验位、停止位几个参数,他们分别被声明在 WinBase.h 头文件中。 ?...串口读写 串口的读写可以同步也可以异步,但是同步方式会造成一个问题就是当你调用了 ReadFile 在等待串口数据时,再去调用 WriteFile 就会被阻塞,因为 ReadFile 一直没有返回。...} return false; } QLOG_APP(L"Finished to write data."); return true; } 因为是异步操作...打开串口时要根据硬件情况初始化串口参数(在 WinBase.h 中有声明) 设置串口的缓冲区和超时 异步去读写串口通过返回值判断是否读写成功 不要忘记初始化 OVERLAPPAD 结构 读取完成后 PurgeComm

2.1K20

Linux&Win双系统下时间显示不正常的问题

于近期开始研究Linux,目前用的是ubuntu。本想着用Linux搞事情,没想到却被Linux搞了。 我安装的是双系统,Linux&windows的组合。...加上本人有总结的习惯(逃~ 好了,废话不多说,直接上解决办法,后面我会介绍双系统时间显示不正常的具体原因。 现象: 1.可能出现Linux和Windows系统时间相差8个小时。...2.可能出现Linux和windows系统时间差得天南海北。...解决方法(以下方法任选一种 ): 1.Linux平台下:在最新的发行版本上,我们只需要一个命令就可以解决 sudo timedatectl set-local-rtc 1 如果您用的是比较老版本的Linux...出现这种问题的原因: 由于Window和Linux两个系统设定时间时以主板内的时间为依据,但却有不同的时间计算标准。所以导致了系统时间的纠纷问题 。

2.1K20

图解|Linux文件预原理

概述 本文主要阐述内核(linux-3.12)的文件系统预设计和实现。...当然,这个细节对应用程序透明,应用程序可能的感觉就是下次的速度会更快,当然这是好事。文中我们会通过设置几个情境(顺序、随机、多线程交织)来分析预的逻辑。...且是顺序),那让我们看看操作系统是如何对文件进行预的。...顺序(本次偏移为上次偏移 (ra->start) + 大小(ra->size,包含预量) - * 上次预大小(ra->async_size)) * 2. offset...本次预窗口的起始以及大小以及预大小可根据前一次的预窗口计算得到,又由于本次是异步预,因此,预大小就是本次的页面数量,因此将本次预的第一个页面(PAGE 4)添加预标记。

6010

Linux小说「GitHub 热点速览 v.22.03」

作者:HelloGitHub-小鱼干 本周特推选取了一个画风有点意思的 Linux 代码带项目 flash-linux0.11-talk,希望有趣的文风能带你读完 Linux 代码。...本周特推 1.1 小说一样 Linux:flash-linux0.11-talk 本周 star 增长数:1,050+ flash-linux0.11-talk 带你 Linux 0.11 核心代码并理解背后的操作系统设计思考...,按照作者的宣言“你管这破玩意叫操作系统源码 — 像小说一样品读 Linux 0.11 核心代码”这是一个 Linux 代码趣项目,可以从章节(节选)感受下画风: 第 5 回 进入保护模式前的最后一次折腾内存...GitHub 地址→https://github.com/sunym1993/flash-linux0.11-talk 1.2 彩色方程注释:annotated_latex_equations 本周

3.3K20

使用picocm来进行Linux下的串口调试

主要原因就是minicom没有彩色文字,看着难受,特别是调试ARM Linux的时候233 安装 因为正常是在Debian系列的Linux发行版上面使用的(deepin或者ubuntu这些的,解决方案比较完善...然后使得这个设备能被picocom工具访问使用 sudo chmod 777 /dev/ttyUSBx 请自行将ttyUSBx替换为当前使用的串口设备 连接串口设备 下面是一般连接一个串口设备说使用的命令...参数讲解 -b: 设置波特率参数 /dev/ttyUSBx:串口设备,请替换为当前使用的串口设备 打开帮助提示页面 ?...需要注意的一点是,里面的命令提示都是说C-x什么的,其实C-就是由Ctrl+a转义过来的,正如帮助页面的C-h,就是用Ctrl a+h打开的,所以其他的命令也是同理 发送接收文件 如果直接使用上面的连接串口设备的命令直接去进行文件发送的话...例如使用ymode进行发送接收的例子 picocom --send-cmd "sb -vv" --receive-cmd "rb -vv" -b 115200 /dev/ttyUSBx 同样的,使用当前的串口设备文件

9.1K60

Spring boot串口通信,windows、linux,docker环境配置说明

1.Spring boot有转用于串口通讯包 该包网上教程大多都是监听串口获取数据,如果只接收数据,可以自行百度,该包使用方法 2.使用com.fazecast下的jSerialComm...(); //通过串口名称获取串口对象,Windows一般COM+数字,Liunx一般ttyUSB+数字 SerialPort.getCommPort("COM") //预设rts; serialPort.setRTS...,off为字节数组,返回写入的字节长度 serialPort.writeBytes(off, off.length); //读取串口输出内容,content为串口输出内容,返回读取长度 serialPort.readBytes...(content, content.length) //关闭串口 serialPort.closePort(); 3.docker容器配置 使用docker发布jar时,如果不映射本机设备,将导致无法访问串口...,所以最好指定特定串口

3.4K30

Linux内核32--拷贝-更新(RCU)

所以,Linux内核引入了-拷贝-更新技术(英文是Read-copy update,简称RCU),它是另外一种同步技术,主要用来保护被多个CPU读取的数据结构。...RCU允许多个操作和多个写操作并发执行。更重要的是,RCU是一种免锁算法,也就是说,它没有使用共享的锁或计数器保护数据结构(但是,这儿还是主要指的操作是无锁算法。...所以,其使用场合也是比较严格的,多个写操作中的锁开销不能大于操作采用无锁算法省下的开销)。...因为,这时候操作可能还在读取旧数据,所以,必须等到所有的可能的操作执行rcu_read_unlock()离开临界代码段后,旧数据的存储空间才能被释放。...4 使用场合 RCU是从Linux2.6版本引入的,主要使用在网络层和虚拟文件系统层。

1.6K10
领券