公孙先生 发表于 2023-5-15 00:22:04

Ubuntu下串口工具 PicoCOM 的使用和时间戳显示

PICOCOM

Ubuntu下的串口软件, 除了 CuteCOM, screen, MiniCOM 以外, 还有一个和 MiniCOM 很像的 PicoCOM. 最近在调试 CH340C 串口的过程中, 发现只有 PicoCOM 的连接Reset才能正常工作, 因此单独记录一下.

[*]GitHub 仓库 https://github.com/npat-efault/picocom

[*]仓库的所有者 Nick Patavalis (npat-efault) 在 2018 年之后就未再更新
[*]在 Ubuntu22.04 下能编译通过并正常工作

[*]GitLab 分支仓库 https://gitlab.com/wsakernel/picocom

[*]Wolfram Sang 维护的, 在原仓库基础上继续开发的一个版本

安装

在 Ubuntu 上直接通过sudo apt install picocom安装, 版本是3.1
使用

连接和断开

使用 115200 波特率连接串口设备 /dev/ttyUSB0
picocom -b115200 /dev/ttyUSB0断开有两种方式

[*]Ctrl+A, Ctrl+Q 退出, NO RESET
[*]Ctrl+A, Ctrl+X 退出, RESET
在串口通信时, RTS(Ready To Send)会处于低电平, 当断开串口时如果RESET, 就会恢复高电平, 默认会进行RESET.
在调试STC单片机的时候, 往往会使用带自动烧录的串口转USB设备连接, 而这种设备的自动烧录机制, 就是通过拉低RTS触发MCU断电重启. 在使用这种RTS触发的设备进行烧录和调试时, 就要灵活使用RESET机制.

[*]当进行调试时, 我们不希望每次连接MCU时自动重启, 因此断开串口时要避免RESET, 让RTS一直处于低电平, 断开连接时使用 Ctrl+A Ctrl+Q 退出, 可以避免RESET
[*]当进行烧录时, 如果RTS还处于低电平, 拉低RTS无效, 导致无法重启MCU. 所以在烧录时, 断开串口要RESET, 让RTS回到高电平, 使用 Ctrl+A Ctrl+X 退出
PS: 这个功能在 picocom 上工作是正常的, 但是在 minicom 上工作不正常, 使用 Ctrl+A, Q 退出一次之后, 无论再使用 Ctrl+A,X, 还是 Ctrl+A,Q 都无法再触发 RESET
显示二进制

在调试串口通信时, 有时候需要观察串口的二进制输出, 这时候就需要将数据通过16进制打印出来, 在 picocom 下需要用 --imap 参数, 这个参数是一个多选项, 可以区分不同类型的数值进行转换.
--imap <map> (input mappings)
<map> is a comma-separated list of one or more of ...例如
picocom --imap spchex,tabhex,crhex,lfhex,nrmhex,8bithex -b 19200 /dev/ttyS0各参数的说明
<ul>spchex (map special chars (< 0x20 || 0x7f), excl.CR, LF, and TAB to hex)
tabhex (map TAB to hex)
crhex (map CR to hex)
lfhex (map LF to hex)
8bithex (map chars with 8th-bit set to hex)
nrmhex (map normal ascii chars (0x20
页: [1]
查看完整版本: Ubuntu下串口工具 PicoCOM 的使用和时间戳显示