参考自:https://blog.csdn.net/qq_41076734/article/details/116885672
    https://www.imooc.com/article/254136
    https://blog.csdn.net/u011559046/article/details/118867666

1. 前言

在嵌入式开发中,串口打印是工程师最常用也是最好用的调试方式,所以串口终端软件是一个嵌入式开发者必备的工具,一般我们都习惯使用Windows下的串口终端软件(譬如SecureCRT、Xshell、putty等等),今天我介绍一款Ubuntu下的串口终端软件 minicom。

2. 安装

在Ubuntu终端中输入命令 sudo apt-get install minicom 进行安装。

3. 配置

第一次启动时,在Ubuntu终端中输入 sudo minicom -s ,对minicom进行第一次的配置。

注意:前边一定要加sudo,否则在配置完后会出现 cannot write to /etc/minicom/minirc.dfl 的权限问题!

在弹出的对话框内,选择 Serial port setup 一项,然后按下 a 键,修改为 /dev/ttyUSB0,然后按下回车; //之所以选择 ttyUSB0,是因为我将串口插到主机上后在 dev 目录下多出来的就是 ttyUSB0

再按 e,修改为 115200 8N1 (波特率:115200,数据位:8,奇偶校验位:N 无,停止位:1),设置传输的比特率等设置,然后按下回车;

再按 f,把 Hardware Flow Control 修改为No,然后按下回车;

再在刚才的主菜单中选择 Save setup as dfl,保存为默认配置,最后选择Exit from minicom,退出配置菜单。

这个配置过程和内容,与Windows下的串口终端软件的配置没什么区别,就是设置串行端口号、波特率、流控。

注意:非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件阻止了minicom的运行,将它们删除后即可恢复。

4. 启动

在第三步配置完成并保存的情况下,在终端中执行命令 sudo minicom 来启动minicom,将开发板与电脑用串口线连接起来并上电启动,这时 minicom 界面就会有打印出来。

还可以通过命令 sudo minicom -D /dev/ttyUSB0 -s xr872 在启动minicom时指定端口号和配置文件(需存在 /etc/minicom/minirc.xr872 文件)。

此时会有打印输出,但是没有换行或者没有回显,还需要对minicom进行配置,如下所示:

5. 退出

首先按下CTRL+A,然后输入Z,进入菜单项,按下X键退出minicom。

6. 配置权限

注意:minicom 本身不需要sudo权限,但因为要打开串口设备/dev/xxx ,所以一般会需要使用sudo来启动minicom。

这里我们可以修改下串口设备的权限,这样以后就不用使用sudo了。

方式一:使用命令更改

简单粗暴地使用chmod命令修改

sudo chmod 666 /dev/ttyUSB0

方式二:配置udev规则(推荐)

修改配置文件

sudo vim /etc/udev/rules.d/70-ttyusb.rules

增加一行

KERNEL=="ttyUSB[0-9]*", MODE="0666"

修改后,需要重新插拔设备,以重新生成设备节点。

7. 自动设置设备名

如果日常只用一个设备,设备名固定是 /dev/ttyUSB0,那每次直接打开minicom即可。

但当你可能需要使用多个串口时,问题就来了,每次需要先查看下设备名

ls /dev/ttyUSB*

再配置下minicom,手工改成这个设备,才能使用。一点都不方便。

这里给出了解决方式:

使用参数指定设备(推荐)

研究mincom的参数后,发现使用 minicom 的 -D 参数可以很简单的实现。

编写脚本 ~/.myminicom.sh

com() {ports_USB=$(ls /dev/ttyUSB*)ports_ACM=$(ls /dev/ttyACM*)  #arduinoports="$ports_USB $ports_ACM"select port in $ports;doif [ "$port" ]; thenecho "You select the choice '$port'"minicom -D "$port" "$@"breakelseecho "Invalid selection"fidone
}

在~/.bashrc中引入此函数

echo 'source ~/.myminicom.sh' >> ~/.bashrc
source ~/.bashrc

添加完毕后,可使用 com 命令调用。

使用效果

houxiaoni@houxiaoni-Haier-PC:~$ com
1) /dev/ttyUSB0
2) /dev/ttyUSB1
#?

此时输入数字,选择要的打开的串口设备,回车即可。

8. 自动保存log

让 minicom 自动保存log,可以方便调试。

查看参数,minicom可以使用 -C 参数指定保存log文件。于是完善脚本,自动把log以日期命名,保存到 ~/Log 目录下。

注意,如果保存到 /tmp 目录需谨慎,tmp目录关机即清空,如果想持久保存log,需要修改到其他目录。

com() {                                                                     ports_USB=$(ls /dev/ttyUSB*)ports_ACM=$(ls /dev/ttyACM*)  #arduinoports="$ports_USB $ports_ACM"datename=$(date +%Y-%m-%d-%H-%M-%S)select port in $ports;doif [ "$port" ]; thenecho "You select the choice '$port'"minicom -D "$port" -C ~/Log/"${port##*/}-$datename".log "$@"breakelseecho "Invalid selection"fidone
}

下面还介绍了两种保存log的方式,这两种方式都需要每次进行设置,不如上面使用脚本的方式便捷。

方法一:

通过如下命令可以使minicom 从系统获取准确的时间保存log

sudo minicom -c on -C Log/com-log-$(date +%Y-%m-%d_%H:%M:%S).log

sudo minicom -D /dev/ttyUSB0 -C Log/com-log-$(date +%Y-%m-%d_%H:%M:%S).log (指定端口号)

方法二:

首先打开minicom,然后按一下ctrl + a,再按z键,会出现下面这个界面:
看到Capture on/off这个选项,按下L键,会出现下面的窗口:

提示输入一个Capture的文件名,默认就是minicom.cap,上图我做了修改,然后按一下回车,就可以将log信息保存到一个文件中了,这样遇到log相对较多也能抓取完整,也方便我们查看。

9.自动设置配置文件

com() {ports_USB=$(ls /dev/ttyUSB*)ports_ACM=$(ls /dev/ttyACM*)  #arduinoports="$ports_USB $ports_ACM"datename=$(date +%Y-%m-%d-%H-%M-%S)confs=$(ls /etc/minicom/minirc.*)set_conf=""select conf in $confs;doif [ "$conf" ];thenecho "You select the choice '$conf'"conf_name=$(basename "$conf")conf_ext=${conf_name##*.}set_conf="-s $conf_ext"breakelseecho "Invalid selection, use the default configuration."breakfidoneselect port in $ports;doif [ "$port" ]; thenecho "You select the choice '$port'"minicom -D "$port" $set_conf -C ~/Log/"${port##*/}-$datename".log "$@"breakelseecho "Invalid selection"fidone
}

使用效果

houxiaoni@houxiaoni-Haier-PC:~$ com
1) /etc/minicom/minirc.bl606p  3) /etc/minicom/minirc.xr872
2) /etc/minicom/minirc.dfl
#? 1
You select the choice '/etc/minicom/minirc.bl606p'
1) /dev/ttyUSB0
2) /dev/ttyUSB1
#?

10. 更多

(1)暂停输出

Ctrl+A 是mimicom的特殊功能前缀按键,但还有另一个很实用的作用,就是暂停屏幕输出。
在设备开始大量输出log时,基本看不清屏幕内容。此时可以按 Ctrl+A,暂停输出,方便查看所需log。

Ctrl+A 进入特殊功能:

  • 按 Z 键:进入设置菜单
  • 按 O 键:打开配置选项
  • 按 W 键:自动卷屏。当显示的内容超过一行之後,自动将後面的内容换行。这个功能在查看内核的啓动信息时很有用
  • 按 C 键:清除屏幕的显示内容
  • 按 B 键:浏览minicom的历史显示
  • 按 X 键:退出minicom,会提示确认退出
  • 按 N 键:可激活时间戳,在每行log前添加当前系统的时间戳
  • 按 S 键:可向设备端发送文件
  • 按 R 键:可接收文件

(2)打开minicom时间戳

在minicom中,按下 Ctrl+A,再按 N,即可激活时间戳,在每行log前添加当前系统的时间戳。

用于观察启动时间之类的,还是比较方便。

(3)发送接收文件

设备端支持的话,按下 Ctrl+A,再按 S,即可向设备端发送文件。

按 Ctrl+A,再按 R,可接收文件。

(4)自动换行

当你的log中可能存在,单行长度超过屏幕宽度的log时(比如启动时打印的kernel cmdline),可以使用mimicom的自动换行功能。

在启动minicom时加上 -w 选项,或者在minicom中,按 Ctrl+A 再按 W。

(5)更多功能

可以使用 minicom -h 查看,也可在mincon中,按 Ctrl+A 再按 Z 查看。

(6)源码

文中的代码非最新版本,请访问 https://github.com/zqb-all/EasierMinicom 获取带有更多功能的最新版本。

11. 附录

网上提供的其他自动脚本,供以后参考使用。参考:EasierMinicom

com() {local ports_USB ports_ACM ports datename dev devs dev_countports_USB=$(ls /dev/ttyUSB* 2>null | xargs -I {} basename {})ports_ACM=$(ls /dev/ttyACM* 2>null | xargs -I {} basename {})ports="$ports_USB $ports_ACM"#check lockdevs=""dev_count=0for dev in ${ports}; do! ls /run/lock/*"${dev}"* &>/dev/null && {devs+="${dev} "((dev_count++))}done[ -z "$devs" ] && echo "No Unlock Devices" && return 0datename=$(date +%Y%m%d-%H%M%S)if [ $dev_count -eq 1 ]; thendev=$devselse#select dev to openecho "Please select one device: (Ctrl+C to abort)"select dev in $devs; doif [ "$dev" ]; thenecho "You select the '$dev'"breakelseecho "Invaild selection"fidonefiout="/tmp/$(basename ${dev}).$datename.log"keep_dir="${HOME}/minicom_keep"minicom $dev -C "${out}" "$@"[ -f "${out}" ] && {echo log : "${out}"read -p "Keep it? [y|N]: " keep[ "${keep}" = 'Y' -o "${keep}" = 'y' ] && {read -p "Enter file name > " keep_file_name[ x"$keep_file_name" = x"" ] && keep_file_name=$(basename "${out}")mkdir -p "$keep_dir"cp "${out}" "${keep_dir}/$keep_file_name"echo "saved in $keep_dir/$keep_file_name"}}read -p "Vim it? [y|N]: " edit_vim[ "${edit_vim}" = 'Y' -o "${edit_vim}" = 'y' ] && vim "${out}"
}
  • 自动检测未锁定的设备,如果有多个则列出给用户选择,如果只有一个则直接使用。
  • 默人加载 /etc/minicom/minirc.${dev} 的配置文件。
  • 自动保存log到/tmp目录,退出时,询问是否要保存到另外的目录。

使用


echo "source $(pwd)/EasierMinicom.sh" >> ~/.bashrcsource ~/.bashrccom

Ubuntu工具---minicom安装和使用相关推荐

  1. ubuntu中minicom安装和使用

    想要对嵌入式开发板进行开发和操作,都需要进行文件传输或者是控制,这时基本都是需要通过串口线或者是网线进行连接的,在Windows下是使用超级终端通过串口对开发板进行操作的,而在Linux下,最后最常见 ...

  2. minicom指令_Linux下的命令行串口工具minicom安装和使用教程

    Linux下的Minicom的功能与Windows下的超级终端功能相似,可以通过串口控制外部的硬件 设备.适于在linux通过超级终端对嵌入式设备行管理.同样也可以使用minicom对外置Modem进 ...

  3. ubuntu安装串口工具minicom

    电脑端安装串口工具minicom 在Ubuntu终端中输入命令 sudo apt-get install minicom 进行安装. 第一次启动时,在Ubuntu终端中输入 sudo minicom ...

  4. 在Ubuntu|CentOS上安装Shutter截图工具及快捷键设置

    简介 Shutter前身叫GScrot,它是一款相当棒的截图软件. 通过Shutter,你可以截取包括选定区域.全屏幕.窗口.窗口内的控件甚至网页的图像.通过内置的强大插件机制,你可以在截图后,对图像 ...

  5. linux gif 编辑软件,Ubuntu 16.10 安装byzanz截取动态效果图工具

    Ubuntu 16.10 安装byzanz截取动态效果图工具 1.了解byzanz截取动态效果图工具 byzanz能制作文件小,清晰的GIF动态效果图,不足就是,目前只能通过输入命令方式来录制. by ...

  6. ubuntu 20.04 安装 flameshot截图工具

    ubuntu 20.04 安装 flameshot截图工具 安装命令 使用命令 设置快捷键 效果图 安装命令 sudo apt-get install flameshot 安装日志 $ sudo ap ...

  7. linux 安装软件 垃圾,Ubuntu 18.04 安装垃圾清理工具 BleachBit 2.2

    Ubuntu 18.04 安装垃圾清理工具 BleachBit 2.2 BleachBit 可以清理系统缓存文件, 清理磁盘垃圾.下面记录在Ubuntu 18.04下安装垃圾清理工具 BleachBi ...

  8. ubuntu 20.04 安装 免费 Beyond Compare对比工具

    ubuntu 20.04 安装 免费 Beyond Compare对比工具 下载安装包 安装 免费使用 成功的重要标志 效果图 下载安装包 https://www.scootersoftware.co ...

  9. #Ubuntu#__装机必备__常用软件和工具库安装

    #Ubuntu#__装机必备__常用软件和工具库安装 一.常用软件与功能库 1. 常用软件: 2. 常用库: 3. 代码管理工具git 4. C++开发: 5. python开发: 6. 其他库: 二 ...

最新文章

  1. Silverlight学习笔记之文字特效之ImageBrush
  2. python如何开启多进程_python如何写多进程
  3. iOS - UIRefreshControl
  4. 【渝粤教育】电大中专跨境电子商务理论与实务 (28)作业 题库
  5. js二级下拉被flash档住的解决办法
  6. linux原理与应用期末考试,武汉大学计算机学院2009-2010学年第一学期期末考试《Linux原理与应用》期末考试试卷(共8套,有答案)...
  7. Ajax提交与传统表单提交的区别说明
  8. java自动封箱_Java程序员面试,自动封箱/拆箱原理与包装类的缓冲机制你知道么?(转)...
  9. Notes for Linux Administration Handbook (1) : Booting and Shutting Down
  10. 54.用环信实现聊天功能
  11. 韦根协议 wiegand
  12. EXCEL 未启用宏,但包含启用宏的内容
  13. 依次计算一系列给定字符串的字母值,字母值为字符串中每个字母对应的编号值(A对应1,B对应2,以此类推,不区分大小写字母,非字母字符对应的值为0)的总和
  14. 我真的不懂微信营销(一)
  15. 走近秦岭深山小镇--四亩地镇
  16. 【Transformers】第 5 章 :文本生成
  17. 微型计算机室内太干燥,暖气屋里太干燥怎么办 七种方法增加室内湿度
  18. 对于nth-child()的理解
  19. 适用于老版本的魔兽世界登陆器编写指南
  20. IDEA使用maven配置内置的Tomcat8

热门文章

  1. 智能名片,这个名字起的真不好
  2. three.js自定义材质 切线空间及阴影
  3. MongoDB-Cannot autogenerate id of type java.lang.Long for entity of type
  4. 关于Mask_RCNN的工程化应用cpu服务器部署日记(一)
  5. jvm有这一篇就够了,深入理解
  6. 哪款蓝牙耳机降噪效果好?降噪效果好的蓝牙耳机推荐
  7. 【网络安全】通过Redis2.x实现ssh未授权访问
  8. 西典冲刺上交所:拟募资8.7亿 实控人盛建华已移民加拿大
  9. JDBC连接数据库步骤
  10. linux 网卡自动挂死,shell脚本自动检测网络掉线和自动重连