串口通讯
串口波特率: 部分产品(使用USB转串口芯片):9600bps,1位停止位,无校验其它产品(使用USB-CDC协议):无波特率限制(无论上位机如何设置,都以USB最大速率传输) 命令行结束符: CR+LF结尾,对应两个二进制字符0x0D和0x0A,用C语言编程则是\r\n命令行特殊符号: Ctrl-C复位:单个二进制字符0x03,用C编程则是\x03在绝大数情况下,发送这个字符会直接停止当前执行的命令或复位控制台,并打印新的提示符“=>” 调试工具(Linux): miniterm.py 是pyserial库自带的终端调试脚本,使用pip自动安装无须特别设置接收/发送行结束符 mcush_util的shell模式,提供了一个迷你的串口交互调试环境 调试工具(Windows): Tera Term https://ttssh2.osdn.jp/ (若外网无法下载,请自行搜索其它链接)注意设置接收/发送行结束符,如图: Ubuntu系统下串口端口和权限: 端口通常会枚举成/dev/ttyUSBxxx或/dev/ttyACMxxx,编号自动递增。为了避免编号变换,可以按USB设备VID/PID检索: /dev/serial/by-id/usb-??????????? 或者按总线路径检索: /dev/serial/by-path/pci-??????????? 普通用户需要加入dialout组获得权限(修改/etc/group文件)。 Windows命令行发送串口指令: 如echo a -c 0xff00ff > \\.\comXX (XX为生成的串口编号,到设备管理器中检查)上述命令会发送“a -c 0xff00ff”到指定串口 可以将命令放进.bat脚本自动化运行。 发送过程并任何无反馈检查,只适合发送简单命令 控制台使用mcush_util工具发送串口指令: 直接在控制台下发送串口指令可能会失败,原因有:此时可以借用命令行工具mcush_util来处理(支持Win/Linux)。 如:
该命令打开指定串口,发送Ctrl-C重置控制台得到提示符,执行*idn?检查,并执行指定的多个命令。 下载:Win(32bit) mcush_util.exe, Linux(64bit) mcush_util 其它平台的可自行源码编译(提供CodeBlocks项目,或Makefile/GCC,支持交叉编译) LabVIEW使用DLL发送串口指令: 调用动态链接库mcush_util.dll的mcush_command函数给设备发送命令,只需传入端口号和命令参数字符串即可。 |
C/C++编程
C语言封装示例
mcush_api.c
mcush_api.h
调用示例
C++语言封装示例 mcush_drv.cpp mcush_drv.h mcush_api.c mcush_api.h
调用示例
调用示例
|
C++语言封装示例 mcush_drv.cpp mcush_drv.h mcush_api.c mcush_api.h
调用示例
|