在ubuntu下利用minicom实现串口通信

Advertisement

windos有串口调试助手,linux下也有这样的工具——minicom。不过,minicom和linux下的许多工具都一样,也是命令行模式,没有图形化界面供我们享受。作为一款串口调试工具,虽然难看但总比没有的好。

为什么linux下的工具都这么的简朴,没什么华丽的界面,好像回到了解放前。一种可能的原因是linux这种非商业性质的软件,都是有自由软件爱好者通过其业余时间创作的,没有时间搞用户体验度调查,也没有精力搞优美的图形界面。而且,linux是一种面向专业用户的系统,而非windows那种傻瓜式系统,工具软件实现功能就行了,没必要太过华丽。甚至,我认为简陋的工具软件可以让程序开发人员更能深刻领会软件的机理,而完美包装的软件却屏蔽了技术的细节,很难提高自我。所以,忍受linux下的痛苦软件,才能获得开心知识。

回到正题,下面来一步一步实现minicom的安装。首先声明本文涉及的平台,(虚拟机 VMware 6.5 ) || (linux Ubuntu12.0.4) || (usb转串口),相信广大开发者很大一部分用的都是笔记本,自然选择的也是USB转串口。

安装minicom

一条命令就搞定了minicom的安装

#sudo apt-get install minicom

在linux下实现串口通信

有两者方法可以实现串口通信,依次展开。

方法1--以硬串口挂载到linux系统中

1、查看主机usb转串口的串口号

我这里是COM1

2、为虚拟机Ubuntu添加一个硬串口

这里选择和物理主机一样的虚拟串口COM1

配置完成后的效果

启动虚拟机后,可以通过VM -> Removable Devices 查看当前主机什么可移动硬件连接在虚拟机上。方式一,必须保证Serial port(Using port COM1)连接在虚拟机上,而Prolific USB-Serial Controller与虚拟机是断开的。

需要说明的是,前边打钩的代表是连在虚拟机上的,没打勾代表连在主机上。一个硬件或者连接在主机上,或者连接在虚拟机上,只能挂载在一个操作系统下。当一个硬件需要连接到虚拟机操作系统上,比如说U盘挂载到Ubuntu上,发生的动作时:先从主机上卸载,然后挂载到Ubutu上。

从下边的图,也可以查看虚拟机当前拥有的硬件有哪些。色彩比较重的代表连接在虚拟机上,相反则连接在主机上。

3、配置minicom

#minicom -s

在终端下输入minicom的配置命令,就可以打开配置菜单,选择第三项串口配置(Serial port setup )

这里重要的是以下几个选项:

A 设置使用哪个串口设备(因为一台电脑上的串口可能不止一个),注意这里输入的是ttyS0

E 设置波特率、数据位、奇偶校验位、停止位,这里依次是115200,8,N,1

F 这个选项的含义,在下不知,但是网上众多人都说此项必须选成no,否则可能不能通信

对于方法一的A选项(设置使用哪个串口设备),可以从/dev目录中看我们用的是哪个设备

配置完成后,将其保存成默认配置(Save setup as dfl),然后退出(Exit from Minicom),终端下输入#minicom命令以打开minicom软件。

展示效果图

方法2--以U转串方式挂载到linux系统中

1、检查是否支持这种方法

首先看自己的Ubuntu 版本是否自带了U转串驱动,倘若没有,这种方法对你的系统还不适用。执行命令#lsmod | grep usbserial,如果能打印出上边的信息,证明此版本的Ubuntu操作系统自带有U转串驱动(U转

串芯片是PL2303)。

2、配置虚拟机

对于方法二,没必要添加串口,如下所示的硬件构成(默认配置)已经够了

启动虚拟机,确保以下硬件连接方式,Prolific USB-Serial Controller是连接在虚拟上的。倘若你的虚拟机上边添加了一个串口,那么确保这个串口不要启动,即前边没有打钩。

对应的在虚拟机的右下角,可以看到Prolific USB-Serial Controller图标是高亮的,而Serial port(Using port COM1)是浅色的(倘若你的虚拟机上添加有串口)。

3、配置minicom

在终端上输入#minicom -s命令,选择Serial port setup,打开如下配置界面。这里的E、F选项与方法一一样,需要注意的是:A选项输入的是ttyUSB0。倘若不是这个配置,有可能不能成功通信。

以默认配置方式保存,然后退出。输入#minicom命令,启动软件。效果图如下。

两种方法对比--ttyUSB0对应的是什么

倘若拔掉U转串,或者Prolific USB-Serial Controller与虚拟机断开连接,在Ubuntu的/dev目录中是没有ttyUSB0的。

而且,输入命令#lsusb也是看不到U转串对应的信息。

倘若插上U转串,并且确保Prolific USB-Serial Controller与虚拟机断是连接的,这个时候的效果与之前的相反。

结论

ttyUSB0就是U转串在Ubuntu操作系统下对应的设备文件。事实上,方法一把U转串当做是一个实实在在的串口(COM1)挂载在Ubuntu上,在/dev目录下是找不到ttyUSB0,与之对应的设备文件是ttyS0。

而且,我猜测方法一是不需要Ubuntu的串口驱动的。以虚拟机上Ubuntu的眼光看,U转串是一个实实在在的串口,而非一个虚拟的串口。

其他

短接串口的2脚和3脚,可以测试串口是否正常工作。正常工作的效果是键盘上输入什么,串口调试助手显示什么。

串口接口定义

1   DCD   Carrier Detect

2   RXD   Receive Data

3   TXD   Transmit Data

4   DTR   Data Terminal Ready

5   GND   System Ground

6   DSR   Data Set Ready

7   RTS   Request to Send

8   CTS   Clear to Send

9   RI    Ring Indicator

参考博客:ubuntu下minicom的安装及使用

Similar Posts:

  • Ubuntu下利用scp在虚拟机和主机之间传输文件

    在Ubuntu下使用虚拟机时经常需要在虚拟机和主机之间进行文件传输.Ubuntu的scp指令就能够方便地实现这个功能.首先介绍一下本次使用的主机host操作系统是Ubuntu12.04,使用qemu搭建虚拟机,虚拟机guest的操作系统也是Ubuntu12.04.首先需要在host主机上安装openssh服务器.安装命令如下: host$ sudo apt-get install openssh-server 之后启动虚拟机使用scp命令进行文件传输.scp命令可以实现远程文件传输,这里使用的是

  • Ubuntu下利用ant编译Android项目

    最近公司需要把一些源码中的应用做成公共的APK.提供给不同平台能够使用,这就需要使这些apk不要依赖于平台的Framework,转至依赖于android的SDK,从而就把这些应用单独拉出来开始是基于ecplice编译,最后为了能够很好的开发和管理,转到了ubuntu下,管理和开发,这就需要想一种办法和android源码开发一样,于是经过分析,选择使用ant编译android项目. 一:Ant安装和使用 1. 环境:Ubuntu 10.04 2. 安装工具 3) 安装jdk 1.6及android

  • ubuntu下使用 kermit作为串口终端

    1 安装sudo apt-get install ckermit 2 用户要目录下配置 .kermrc内容如下:set line /dev/ttyS0set speed 115200set carrier-watch offset handshake noneset flow-control none 3 使用打开串口:kermit -cCtrl+/+c进入ckermit命令模式ctrl+/+c 再按q 可以退出kermit

  • ubuntu下虚拟机NFS与OK6410通信错误记录/*嵌入式博客3_8*/

    测试环境,ubuntu11.04.OK6410,开发板: 资源主要是分享于百度文库: 具体步骤  安装及配置 NFS 服务 1. 安装 NFS Ubuntu 上默认是没有安装 NFS 服务器的,首先要安装 NFS 服务程序: $ sudo apt-get install nfs-kernel-server 2. 配置 NFS a) 配置 portmap $ sudo dpkg-reconfigure portmap 对 Should portmap be bound to the loopb

  • UBUNTU下利用net-snmp进行GTK编程

    编辑页面,代码显示很正常,发布后就乱掉了? /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ /* * main.c * Copyright (C) UBUNTU10_32 2011 <[email protected]> * * MyListView is free software: you can redistribute it and/or modify it * under the terms

  • Keil MDK 下利用 printf( )的串口编程

    重定向是指用户可以自己重写C语言的库函数,当连接器检查到用户编写了与C语言库函数相同名字的函数时,优先采用用户编写的函数,这样就可以对库函数进行修改了. 若要printf( )函数工作,需要把printf( )函数重新定向到串口函数. 为了实现重定向 printf( ) 函数,需要重写fputc( )这个C标准库函数,因为printf()在C标准库函数中实质是一个宏,最终是调用了fputc( )函数. fputc(int ch, FILE *f)函数可在main.c文件中编写,如下: int f

  • 在Ubuntu下,建立下载image文件到Mini2440或者TQ2440开发板的环境

    如果需要转载本文,就注明本文出处,谢谢. 众所周知,在做这类嵌入式开发,尤其是我们自己在玩开发板的时候,一般,都需要建立起一个下载的环境. 通常,串口工具软件会使用标准的COMx端口与目标开发板进行通信,控制与显示,而下载image文件到目标开发板,通常用并口或者USB口. 很遗憾的是,随着电子技术,通信技术的发展,并口,串口这类接口正在退出舞台,逐渐成为历史. 今天,我们就针对于笔记本或者台式机上没有COM口和并口的计算机,介绍一个可用的方法,建立起下载image文件到目标开发板的一个通道.

  • 基于API的MFC串口通信程序编写

    问题描述:很多同学接触的MFC的第一个较为完整和有用的程序就是串口通信程序.由于MFC是基于控件和对话框的,因此对于从纯文本程序到MFC会有一个较为痛苦的转变过程(比如本人).当然基于文本或者MFC的编程思想其基础是一致的,需要熟悉的只是如何将需要操作的程序添加进MFC中通过点击按钮触发的事件函数中去.只要将适当的处理程序添加进合适的位置,就很容易编写出简单易懂的小软件. 程序效果图: 下面大家可以跟着我一步一步操作,最后得到如图所示的结果. 步骤(串口调试助手和虚拟串口连接自己提前搞好): 一

  • Ubuntu下VirtualBox虚拟机串口设置

    VirtualBox虚拟机的串口通信机制有两种,一种是通过将虚拟机的串口连接到主机的串口,另外一种是将虚拟机的串口连接到主机上的一个命名管道,第一种方式到现在我还没有实践出来,目前只是对命名管道的方式实践成功. 1.启用串口 新建虚拟机后在设置中会出现串口面板,可以进行串口设置,默认是不起用的,一般端口选择使用COM1对应虚拟机的/dev/ttyS0,端口模式选择Host Pipe,表示将虚拟机的串口连接到主机的一个命名管道,创建通道表示启动虚拟机时VirtualBox会在HostOS中对应地创

  • ubuntu下安装配置minicom(解决默认的端口/dev/tty8,改不过来的问题)

    Minicom是linux下串口通信的软件,下面讲下ubuntu Minicom的安装和配置. 安装: sudo apt-get install minicom 或在新立得软件包管理器中搜索"minicom",安装搜索到的minicom 配置: 在使用minicom之前, 首先要保证你对串口有读/写的权限. 串口COM1对应ttyS0, COM2对应ttyS1. 使用这个命令来看你对COM1的权限: $ ls -l /dev/ttyS0 1. 运行$ sudo minicom 2. 先

Tags: