问题:在Linux应用层,直接从/dev/tty***使用read()函数读数据,无法读到,只有在数据末尾加上0a/0d才可以读到数据(这里是发送十六进制的数据,ASCLL码同理,增加回车才可以读到数据) 原因:在linux内核中增加了行缓存的机制,必须出现一个结束符read函数才能从缓冲区里读出数据 解决: 改变termio这个类型定义的结构体变量,改变Linux串口设置参数 termio这个结构体的介绍需要学习的详细参考:https://blog.csdn.net/querdaizhi/ar…
串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用.常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统.调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准.串口通讯指的是计算机依次以位(bit)为单位来传送数据,串行通讯使用的范围很广,在嵌入式系统开发过程中串口通讯也经常用到通讯方式之一. Linux对所有设备的访问是通过设备文件来进行的,串口也是这样,为了访问串口,只需打开其设备文件即可操作串口…
串行口是计算机一种经常使用的接口,具有连接线少.通讯简单,得到广泛的使用.经常使用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统.调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准.串口通讯指的是计算机依次以位(bit)为单位来传送数据.串行通讯使用的范围非常广.在嵌入式系统开发过程中串口通讯也经经常使用到通讯方式之中的一个. Linux对全部设备的訪问是通过设备文件来进行的,串口也是这样,为了訪问串口.仅仅需打开…
来源:https://www.cnblogs.com/sunyubo/archive/2010/09/26/2282116.html 串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用.常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统.调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准.串口通讯指的是计算机依次以位(bit)为单位来传送数据,串行通讯使用的范围很广,在嵌入式系统开发过程中串口通讯…
嵌入式 Linux下永久生效环境变量bashrc 1) .bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到4个隐藏文件, .bash_history   记录之前输入的命令 .bash_logout    当你退出时执行的命令 .bash_profile    当你登入shell时执行 .bashrc             当你登入shell时执行 请注意后两个的区别:'.bash_profile'只…
嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误 2015-05-27 14:19 184人阅读 评论(0) 收藏 举报  分类: 嵌入式(928)  一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的. 在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈. int backtrace(voi…
rs232串口通信接口:当通信距离较近时(<12m),可以使用电缆线直接连接,若距离较远,需附加调制解调器. 9个脚针的定义: CDC数据载波检测,RXD接收数据,TXD发送数据,DTR数据中断准备,GND信号地,DSR数据设备准备好,RTS请求发送,CTS清楚发送,DELL振铃指示. linux下查看串口信息 查看串口是否可用,可以对串口发送数据比如对com1口,echo helloworld >/dev/ttyS0 查看串口名称使用 ls -l /dev/ttyS*一般情况下串口的名称全部…
这个教程描述了在嵌入式linux下使用Qt如何设置一个支持多点触摸和单点触摸的输入系统.这里假定你已经有了对应的驱动程序,驱动可以从触摸屏的厂商那里获得或者使用一个linux 内核源码中已经存在的驱动.   第一要务,找到你的驱动程序(通常在/drivers/input/touchsreen/*)并且确认你已经定义好了tslib中所需要的每个事件类型.通常你需要EV-SYN, EV-ABS和EV_KEY.我自己使用的驱动中没有定义EV_KEY, 因此驱动不会发送这一个类型的事件.为了能够使tsl…
Linux下的串口调试工具——Xgcom xgcom的下载网址:https://code.google.com/archive/p/xgcom/downloads (1)安装必须的库 apt-get install automake apt-get install libglib2.0-dev apt-get install libvte-dev apt-get install libgtk2.0-dev (2)下载xgcom源码包 tar -xvf xgcom-0.04.2.tgz cd xg…
转自:http://blog.csdn.net/jimmy_1986/article/details/5838297 嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至少需要个把月的时间,不信?那是你没做过. 本人做过2年的嵌入式驱动开发,usb占了一大半的时间.期间走了不少弯路,下面将我的血的经验教训总结下,为要从事和正在从事的战友们做一点点贡献吧:) 首先,扫盲: 要做的是阅读usb Spec(英文的哦,其实很多文章.书籍和资料真有水平的还是原创的好,就像食品…
本篇介绍了如何在linux系统下向串口发送数据.包括read的阻塞和非阻塞.以及select方法. 打开串口 在Linux系统下,打开串口是通过使用标准的文件打开函数操作的. #include <fcntl.h> /* 以读写的方式打开 */ int fd = open( "/dev/ttyUSB0",O_RDWR); 设置串口 所有对串口的操作都是通过结构体 struct termios 和 几个函数实现的. tcgetattr //获取属性 tcsetattr //设置…
[一].驱动相关说明: 如果直接使用串口线,而没有用到USB转串口设备,就不需要安装驱动. 如果使用了USB转串口,一般情况下也不需要安装驱动了,目前linux系统已经包含了该驱动,可以自动识别,亦可通过以下命令查看以便确认是否支持. 查看模块装载的情况: 引用 # lsmod |grep pl2303 pl2303                 18629  0 usbserial              29865  1 pl2303 如果看到类似于上述信息,则表明能正确识别该设备,否则…
*************************************************************************************************************************** 作者:EasyWave                                                       时间:2014.09.28 类别:Linux应用-网页serverBOA WebServer       声明:转载,请…
在window下以前就`有一个现成的串口代码.想移植到ubuntu下,发现都不一样了.要重新找个. 折腾了一上午之后,发现自己写这个串口通讯还是有一点难度. 于是,用了github上 Erick Cobos T的代码.写得真是规范. 在此基础上,需要进行一些改动. 原来的只发命令,让它走就可以了,可是我要查询传感器数据,读串口的地方要改,否则读不到数据.这里之前都是0 settings.c_cc[VMIN] = ; /* Update the options and do it NOW */ s…
#x86 ./configure --disable-shared --enable-static --disable-ftp --disable-ipv6 --disable-rtsp --disable-tftp --disable-telnet --disable-largefile --disable-smtp --disable-imap --without-ssl --without-libssh2 --without-zlib --without-librtmp --without…
Linux下修改MAC地址 方法一: 1.关闭网卡设备ifconfig eth0 down2.修改MAC地址ifconfig eth0 hw ether MAC地址3.重启网卡ifconfig eth0 up 方法二:以上方法一修改后linux重启后MAC又恢复为原来的,为了下次启动时修改后的MAC仍有效,我们可以修改文件file:/etc/rc.d /rc.sysinit(RedFlag Linux为这个文件,其他版本的linux应该不同)的内容,在该文件末尾加以下内容:ifconfig et…
首先编译iw,Iw支持两种加密/认证方式.第一种是OPEN/OPEN 第二种是WEP/WEP在网上下载iw源码,发现iw的编译需要依赖libnl库(这个库是为了方便应用程序使用netlink借口而开发的一个库)什么是netlink:netlink套接字是用以实现用户进程与内核间进行通信的一种特殊的进程间通信,也是网络应用程序与内核通信的最常用的借口 在嵌入式软件开发的过程中,通常需要很多的开源软件的编译及其使用,经过了这个久的开发,现在结合这几个实例谈谈软件编译移植的过程,以及debug的过程首…
*************************************************************************************************************************** 作者:EasyWave                                                                             时间:2014.10.31 类别:Linux应用-MP4视频录制库MP4V2…
转自:http://blog.csdn.net/fwqlzz/article/details/51126653 版权声明:本文为博主原创文章,未经博主允许不得转载. USB video class(又称为USB video device class or UVC)就是USB device class视频产品在不需要安装任何的驱动程序下即插即用,包括摄像头.数字摄影机.模拟视频转换器.电视卡及静态视频相机. 最新的UVC版本为UVC ] []. 这个链接是Linux中对UVC支持的相关描述.htt…
#x86 ./configure --disable-shared --enable-static --disable-ftp --disable-ipv6 --disable-rtsp --disable-tftp --disable-telnet --disable-largefile --disable-smtp --disable-imap --without-ssl --without-libssh2 --without-zlib --without-librtmp --without…
很少使用到Linux,这次刚好用户有一个在linux下搭建Websphere MB/MQ的任务.试了几次都不行,经过多方打听,询问原来是少了rpm包的问题,但是,具体包名不详.. --#mount /dev/cr1 /mnt/cdrom--将光盘挂载到文件系统 直接使用rpm -ivh *.rpm --replacepkgs --force --nodeps --aid –忽略依赖强制替换所安装的rpm包某些情况下是可以的,但是需要近四个小时的时间(但是系统安装时,只能尽量少选择rpm包,否则竟…
在linux下打开windows编辑过的文本,会出现由于换行符不一致而导致的内容格式错乱的问题.最常见的就是出现^M . 我出现的问题是:在windows编辑过的文件,传到linux上后再用vim打开,内容没有换行.也就是所有文件内容都在一行.然后再实际换行的位置多了个^M. 下面的方法是网上搜的.其中dos2unix还有一个相对应的unix2dos 1.使用dos2unix命令.一般的分发版本中都带有这个小工具(如果没有可以根据下面的连接去下载),使用起来很方便: $ dos2unix myf…
主要难点在于设置recv()与send()的超时时间,具体要注意的事项,请看代码注释部分,下面是代码: #include <stdio.h> #include <sys/types.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <string.h> #ifdef _WIN32   ///包含win socket相关头文件 #include …
linux版本为CentOs6.5,php集成环境为lanmp_v3.1,集成环境中默认的pdo扩展为:mysql, sqlite, sqlite2,现在有需求想链接微软的Access数据库,所以需要pdo_odbc模块的支持.查询了很多资料,如下: 编译模块不求人,编译助手诞生支持curl,memcache,bcmath,pdo_mysql等,主要是参照这个,但是这个可能是旧的lanmp版本的并不全适用,但可以参照其原理,其shell脚本如下: #!/bin/bash # ext instal…
要想利用HLS来实现视频的在线播放,就得需要将一个完整的视频文件切割成多个ts视频流,然后利用m3u8的索引文件来播放. 在Mac下,苹果提供了streamingTools的工具,里面有mediafilesegmenter和 mediastreamsegmenter来分别实现文件和直播流的切割,一行命令直接就可以将输入的原始视频文件导出成几个ts和索引文件,直接就可以 用了.但是一般服务器都是基于linux的,要想在linux下实现同样的切割,着实费了一番功夫. 网上也找了好多相关的资料,基本是…
本文转自:http://blog.csdn.net/mirkerson/article/details/8464231 在嵌入式设备中对GPIO的操作是最基本的操作.一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的.其实linux下面有一个通用的GPIO操作接口,那就是我要介绍的 “/sys/class/gpio” 方式.首先,看看系统中有没有“/sys/class/gpio”这个文件夹.如果没有请在编译内核的时候加入 Device Drivers-> GPIO Support->…
昨天应为要测试主板上的串口,查了一下,可以使用microcom 这条命令进行测试. 命令使用方法很简单: Usage: microcom [-d DELAY] [-t TIMEOUT] [-s SPEED] [-X] TTY 参数如下: -d 表示延时时间,一般我都不设置. -t 表示超时时间,超多少时间就自动退出.单位为ms -s 表示传输速度,波特率的意思,这个根据自己的情况而定. -X 不加 最后指定你的串口设备.如 /dev/ttyO0 , 这是TI的串口设备节点 测试方式如下: 将要测…
有readme先看看readme看看有没有编译的方法 里面告诉我们安装时可能会依赖某些库事实证明会依赖openssl库,之前也使用过openssl 这个文件中有个defualtconfig,先用它做.config 这里面没有configure,那么直接修改makefile CC=arm-linux-gcc 接下来make,发现出错,看提示应该是缺少openssl库.这个库以前也用过,一个加密库,就是抓包后看不到包里面的内容 Shell命令:make > log.txt 2>&1 0:表…
一般情况下,嵌入式Qt界面需要中文显示,下面总结自己在项目中用到的可行的办法 1,下载一种中文简体字体,比如我用的是”方正准圆简体“,把字体文件放在ARM开发板系统的Qt字库中,即/usr/lib/fonts下 2,添加ARM开发板上的环境变量,打开vi /etc/profile,添加 export QT_QWS_FONTDIR=/usr/lib/fonts 3,在main.cpp中,添加 QTextCodec::setCodecForCStrings(QTextCodec::codecForL…
*************************************************************************************************************************** 作者:EasyWave                                                                   时间:2014.10.25 类别:Linux应用-ALSA音频架构ALSA-lib的移植于编译…