学习
实践
活动
工具
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开发板来说,他有四个串口,其中第一个就已经被用于终端控制了

2.1K20

Linux串口分析open

/* * uart 打开分析 * * 问题: 当应用程序调用open系统调用函数,那么是如何open串口的?

40120
  • 广告
    关闭

    腾讯云精选爆品盛惠抢购

    腾讯云精选爆款云服务器限时体验20元起,云数据库19.9元/年起,还有更多热门云产品满足您的上云需求

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

    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

    3K20

    Linux串口驱动分析read

    /*串口read函数分析 * 当应用程序调用read系统调用时,会调用tty_fops中的tty_read * 接下来分析tty_read函数 * * 其中最重要的就是ld->ops->read(tty * 那么当我们的串口有数据的话,当然就调用我们以前注册的rx中断函数了。 unsigned int ufcon, ch, flag, ufstat, uerstat; int max_count = 64; while (max_count-- > 0) { /*读取UFCON串口配置寄存器 */ ufcon = rd_regl(port, S3C2410_UFCON); /*读取 UFSTAT串口状态寄存器。 UERSTAT_OVERRUN, ch, flag); } /*这是才将整个数据送tty->read_buf中去*/ tty_flip_buffer_push(tty); } /* 将串口产生的数据送进

    31320

    Linux串口驱动分析write

    23530

    嵌入式Linux串口编程

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

    98420

    Linux串口驱动分析初始化

    /**
     * uart分析
     *
     * 其实串口分析就两个重要的文件: S3c2440.c  Samsung.c
     *
     * **/
    
    
    /*1
    其实每一个串口都对应一个uart_port结构
     * 这里只初始化了tty_port结构。
    KERN_ERR "s3c24xx_init_uarts: cpu has no uart init\n");
    	} else
    		(cpu->init_uarts)(cfg, no);
    }
    
    /*初始化系统上的串口资源
    用于初始化uart_port
    3. s3c24xx_serial_ops: 硬件的操作集
    4. s3c24xx_uart_info: 用于初始化uart_port
    
    其实也就是:编写S3c2440.c这个串口文件

    9310

    高通linux-串口笔记「建议收藏」

    msm_serial_hs_lite.c: 低速版本, 设备树内容配置为compatible = “qcom,msm-lsuart-v14”;

    9110

    linux下检测可用串口并使用minicom打开

    目前使用minicom作为串口软件。但使用过程中,有一点感觉不方便的地方,就是我需要使用多个串口,当使用的不是串口0时,就要手动修改minicom的配置。 于是考虑实现脚本,自动列出当前串口,选择后调用minicom打开指定串口,免去手工修改的麻烦。 "Invaild selection" fi done 添加可执行权限,给脚本起个方便输入的别名 ln -s /path/to/myminicom.sh /usr/bin/com 需要打开串口的时候 ,输入com,即可列出当前的串口,选择后可打开对应串口

    1.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 同样的,使用当前的串口设备文件

    1.9K60

    Linux客户端网口输入转串口输出

    概要与环境 使用socket通信方式,建立连接,在服务端将获取到的数据调用串口发送即可 服务端为Linux,客户端为Linux或Windows 测试过程中请:使用iptables -F,免得让人感觉不好 另外,在Linux下的C语言头文件一部分不可以在Windows系统上运行,可能导致一些不便。 该代码在python2中可能输入数据需要添加双引号, 串口控制 串口部分可以参阅:周立功【开发指南】M6G2C&A6G2C;系列核心板软件开发指南。 该指南中,在第16章,有详细的串口发送案例。 ,则需要使用虚拟串口。 这里可以采用他人python写的一个虚拟串口脚本,建立两个互通的串口

    80420

    串口通信—串口发送和接收代码讲解

    我们不仅仅可以将数据发送到串口调试助手,我们还可以在串口调试助手发送数据给控制器,控制器程序根据接收到的数据进行下一步工作。    开发板中的CH340G 的收发引脚默认通过跳帽连接到USART1,如果想使用其他串口,可以把CH340G 跟USART1 直接的连接跳帽拔掉,然后再把其他串口的IO 用杜邦线接到CH340G的收发引脚即可 这里把串口的Tx 引脚配置为复用推挽输出,Rx 引脚为浮空输入,数据完全由外部输入决定。    下载验证   保证开发板相关硬件连接正确,用USB 线连接开发板的USB 转串口跟电脑,在电脑端打开串口调试助手并配置好相关参数:115200 8-N-1,把编译好的程序下载到开发板,此时串口调试助手即可收到开发板发过来的数据 我们在串口调试助手发送区域输入任意字符,点击发送按钮,马上在串口调试助手接收区即可看到相同的字符。

    1.8K30

    Python操作串口

    一个Python实现的串口Echo import serial import sys try: ser = serial.Serial('/dev/ttyUSB0', 9600) except Exception

    40310

    C#串口操作类,包括串口读写操作

    C#串口操作类,包括串口读写操作 本文转载自博客园:C#串口操作类,包括串口读写操作 串口进行操作的类,其中包括写和读操作,类可设置串口参数、设置接收函数、打开串口资源、关闭串口资源,操作完成后,一定要关闭串口 、接收串口数据事件、接收数据出错事件、获取当前全部串口、把字节型转换成十六进制字符串等功能。 这个串口类已经过了调试,可以使用,相关C#代码如下: using System; using System.Collections.Generic; using System.Text; using Error; //接收事件是否有效 false表示有效 public bool ReceiveEventFlag = false; #region 获取串口名 ///

    /// 关闭串口资源,操作完成后,一定要关闭串口 /// public void

    1.3K20

    windows下的串口编程,串口操作类封装

    以往都是在嵌入式设备中经常操作串口,或者使用QT的串口类。在Win32中处理串口也是有办法的,操作文件的打开和读写进行串口的操作。使用ReadFile、WriteFile函数。 基本步骤 使用Win32文件方式操作:打开串口(创建文件)->配置参数->发送(写文件)-->接收(读文件) 打开串口 打开串口的第一步是初始化或设置串口配置,目的是创建串口代理,整篇文章我们都将用文件句柄作为串口代理 串口数据读取过程 串口读取事件分为两个阶段: 第一个阶段:串口执行到ReadFile()函数时,串口还没有开始传输数据,所以串口缓冲区的第一个字节是没有装数据的,这时候总超时起作用,如果在总超时时间内没有进行串口数据的传输 第二:串口进行了数据的传输。 成功的进行一次串口数据的传输和读取,只有总超时和间隔超时相互参与配合才能完成。 发送数据 串口数据发送多作为写文件处理的,程序员可以应用文件操作函数发送数据到串口。 程序员可以应用文件操作函数从串口接收数据。用ReadFile函数接收串口的数据。

    17910

    Android 串口调试_串口转usb需要驱动吗

    本文背景: 是真的不喜欢脑子记这些引脚,串口节点,动不动忘记了。 1.首先记录一下硬件引脚----tty节点对应关系 2.找一组/dev/ttyHSL1,先测试一下自环,然后写个app,从app里面读写这个节点 3.通过串口和单片机通信 硬件平台配置: 平台:msm8909 默认log串口:Board_KERNEL_CMDLINE := console=ttyHSL0, 115200, n8 对应文件节点:/dev/ttyHSL1 — ——————————————– 1.串口linux驱动配置 (/dev/ttyHSL1) //msm8909.dtsi blsp1_uart2:serial@78b0000 { compatible termios.h> #include <stdint.h> #include <stdio.h> #include <fcntl.h> #include <sys/ioctl.h> #include <linux

    7710

    linux下检测可用串口并使用minicom打开(改进版)

    之前使用的方式是这样的 http://www.cnblogs.com/zqb-all/p/7073612.html

    42920

    扫码关注腾讯云开发者

    领取腾讯云代金券