windows串口控制linux,linux及windows下串口的使用.doc
设置串口属性通常有以下几个步骤:
包含头文件:
#include /*标准输入输出定义*/
#include /*标准函数库定义*/
#include /*Unix 标准函数定义*/
#include
#include
#include /*文件控制定义*/
#include /*POSIX 终端控制定义*/
#include /*错误号定义*/
#include /*字符串功能函数*/
termios结构体
struct termios {
tcflag_t c_iflag; /* 输入参数 */
tcflag_t c_oflag;/* 输出参数 */
tcflag_t c_cflag; /* 控制参数*/
tcflag_t c_ispeed; /* 输入波特率 */
tcflag_t c_ospeed; /* 输出波特率 */
cc_t c_line;/* 线控制 */
cc_t c_cc[NCCS]; /* 控制字符*/
};
设置波特率
struct termios opt;
tcgetattr(fd, &Opt);//设置前先获取属性
tcflush(fd, TCIOFLUSH);
cfsetispeed(&stOpt, DEVICE);//cfgetispeed 获取波特率
cfsetospeed(&stOpt, DEVICE);//cfgetospeed
tcsetattr(fd,TCSANOW,&options);//设置属性
配置串口属性(包括:数据位、校验位、停止位等)
struct termios options;
tcgetattr(iCom, & options);//设置前先获取
tcflush(fd,TCIFLUSH);//清空缓存数据
tcsetattr(fd,TCSANOW,&options);//设置属性
校验位:
奇校验:options.c_cflag |= (PARODD | PARENB);//
options.c_iflag |= INPCK;//
偶校验:options.c_cflag |= PARENB;
options.c_cflag &= ~PARODD;
options.c_iflag |= INPCK;
无校验:options.c_cflag &= ~PARENB;
options.c_iflag &= ~INPCK;
停止位:
1位:options.c_cflag &= ~CSTOPB;//
2位:options.c_cflag |= CSTOPB;
数据位:
7位:options.c_cflag &= ~CSIZE; //
options.c_cflag |= CS7;
8位:options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
超时:
tcflush(iCom, TCIFLUSH);//清空缓存
stOpt.c_cc[VTIME] = 120; //超时12秒
stOpt.c_cc[VMIN] = 0; //
常用属性
PARODD 输入输出是奇校验
PARENB允许输出产生奇偶信息以及输入的奇偶校验。
INPCK启用输入奇偶检测
CSIZE字符长度掩码。取值为 CS5, CS6, CS7, 或 CS8。
CSTOPB设置两个停止位,而不是一个。
例:
Linux下打开串口(9600,n,8,1):
//变量声明
td_s32 g_fdCom[4] = {-1, -1, -1, -1};//串口句柄
struct termios stOpt;
//打开设备
g_fdCom[2] = open("/dev/ttyAMA1", O_RDWR); //| O_NOCTTY | O_NDELAY| O_SYNC
tcgetattr(g_fdCom[2], &stOpt);
tcflush(g_fdCom[2], TCIFLUSH);
//设置波特率
//cfmakeraw(&stOpt);//存储属性吗?,这句话导致超时设置失效
cfsetispeed(&stOpt, B9600);//cfgetispeed 获取波特率
cfsetospeed(&stOpt, B9600);//cfgetosp
windows串口控制linux,linux及windows下串口的使用.doc相关推荐
- linux串口环形缓冲区,能不能讲解下串口环形缓冲区的概念?
有段串口收发程序,看起来费劲,感觉可能是环形收发,能不能普及下思路? /* 变量声明 */ INT8U * p_uart1SendBuf; ...
- STM32F40实现 按键密码锁、按键控制LED 、串口选择菜单 、串口控制LED开关 、串口控制蜂鸣器开关及响度 、串口控制蜂鸣器播放音乐 、按键控制LED的亮度
本人第一次发文,很多都不懂,尤其害怕版权问题,如果有人质疑我有盗权行为,请联系我,因为项目也遇到很多问题,然后就解决嘛,可印象中只有播放音乐代码有借鉴,所以如果有质疑盗了权的,请务必联系我.板子是使用 ...
- c语言stm32串口控制单片机,基于STM32F103C8T6单片机电脑串口通讯控灯设计(原理图+程序+论文)...
题目:基于STM32F103C8T6单片机电脑串口通讯控灯设计 内容要求: 一. 任务 通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据从一端传送到另一端,实现数据的交换.在现代工业控 ...
- 串口控制74HC164C语言,51单片机74HC164串口控制数码管显示
一般数码管需要接7个脚才能显示,如果用单片机本身的I/O口,虽然可以但是浪费宝贵的i/O口资源.本例用移位寄存器74HC164作为数码管驱动进行控制. 74HC164特性 是一种8位串转并口的控制 ...
- 小车PWM调速-串口控制
小车PWM调速-串口控制 串口控制调速,即通过串口修改speed的值, 1.将上节PWM调速用到的定时器0源文件和头文件引入进来,工程文件如下 mian.c:主函数 Motor.c:小车前进.后退.左 ...
- 嵌入式linux开发,minicom,串口通信工具,就像Windows下的超级终端
Linux 下的 minicom 的功能与 Windows 下的超级终端功能相似,可以通过串口控制外部的硬件设备.适于在 Linux 通过超级终端对嵌入式设备行管理. 一.安装 sudo apt-ge ...
- 探讨如何在Linux上通过windows的域控制上网( by quqi99 )
探讨如何在Linux上通过windows的域控制上网( by quqi99 ) 作者:张华 发表于:2012-05-08 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及 ...
- ubuntu搭建vnc实现windows端控制linux桌面
ubuntu搭建vnc实现windows端控制linux桌面 vnc-server和vnc4server ubuntu18.04 ubuntu20.04 x11vnc 安装 设置登录密码 启用服务 方 ...
- windows命令行下访问linux,Windows支持直接访问Linux子系统文件:你的下一台Linux何必是Linux...
原标题:Windows支持直接访问Linux子系统文件:你的下一台Linux何必是Linux 晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 微软,致力于做最好的Linux发行版. 今天, ...
- windows 远程访问别人的linux下的ftp服务器,linux与windows之间使用ftp相互访问(CentOS提示ftp:command not found)...
启动linux及windows系统,这里默认linux系统的IP为192.168.1.15.打开windows的DOS终端,首先输入 :ftp 192.168.1.15 在使用账户和密码登陆:登陆格式 ...
最新文章
- 如何在三个月学习三年的生活经验
- LVS负载均衡之持久性连接介绍(session篇)
- Oracle游标学习笔记
- exp/expdp中query参数的使用
- mysql function函数_详解MySQL如何按表创建千万级的压测数据
- vue表格刷新数据_Vue.js+Layer表格数据绑定与实现更新的实例
- 第五百一十八天 how can I 坚持
- 访问属性与类数据成员
- 416亿元公有云市场:阿里173亿、腾讯50亿、华为35亿
- 简单的php文件_超简单的php文件上传程序
- C语言日字,【C语言日日练(二)】static关键字
- textbox 下拉模糊查询ajax,Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中...
- 【流媒体开发】6、ffplay命令
- 基于图神经网络的时空预测
- css为中英文设置不同的字体
- 模拟一个“系统登陆“窗体,进行用户名和密码的验证: 1.当用户名和密码都正确时,弹出一个对话框,提示“用户名和密码正确”, 2.用户名错误,弹出一个对话框,提示“用户名错误,请重新输入!”
- 微信小程序聊天客服工具
- 【技术类】【ArcGIS对国产卫星的支持2:高分一号卫星】篇9、动态影像服务发布
- OSChina 周日乱弹 ——我已经开始适应这个身体了
- python中description_python中cursor.description什么意思
热门文章
- 二、多并发实现接口压力测试
- ADPRL - 近似动态规划和强化学习 - Note 8 - 近似策略迭代 (Approximate Policy Iteration)
- Blender左轮手枪制作教程
- Python完全学习大师班
- 3ds Max中的V-Ray学习
- VOLTE parameter in Attach Request/Accept message
- Springboot+mybatisplus搭建新闻管理系统
- windows下 Source Monitor代码度量工具的使用
- 美元加息怎么“剪羊毛”
- Thrift源码解析--TBinaryProtocol