串口通讯常见问题
C语言编程常见问题
串口指令:
IO控制命令
=>gpio --help
usage: gpio [--loop[=loop_delay_ms]] [-p port_bit_name] [--input[=input_mode]] [--output[=output_mode]]
[--set[=set_high_val]] [--clr[=set_low_val]] [--toggle[=toggle_val]] [-n] [-U] [-D] [-O]
options:
-l/--loop default 1000ms
-p/--port port[.bit] name, eg 0[.0]
-i/--input set input mode mask
-o/--output set output mode mask
-s/--set set output high mask
-c/--clr set output low mask
-t/--toggle toggle output mask
-n/--number query
-U/--pullup pullup
-D/--pulldown pulldown
-O/--opendrain opendrain
=>
示例:
0~7路继电器分别对应P0.0~P0.7引脚,且上电后已设置为低电平输出模式
导通第2路继电器
=>gpio -p0.2 -s
=>
关闭第4路继电器
=>gpio -p0.4 -c
=>
翻转第5路继电器
=>gpio -p0.5 -t
=>
查询第6路继电器状态
=>gpio -p0.6
1 (0-关闭,1-打开)
=>
同时关闭0~3共4个继电器
=>gpio -p0 -c 0xF
=>
串口交互模式下,循环翻转所有继电器,翻转延时500毫秒
=>gpio -p0 -c 0xF
=>gpio -p0 -t 0xFF -l 500
(此时单片机等待用户中断,串口发送Ctrl-C退出)
=>(退出后打印新的提示符)
蜂鸣器响一次
=>beep
=>
设置指示灯错误号为12(上电默认零,绿色慢闪)
=>e 12 (红灯闪烁顺序:先十位后个位,1次快闪+2次快闪)
=>
Python封装:
安装:pip3 install mcush
升级:pip3 install -U mcush
class ShellLab(mcush.Mcush.Mcush):
def gpio(self, port, i=None, o=None, s=None, c=None, t=None):
# 封装的串口命令,控制单片机GPIO
def pinInput(self, pin):
# 设置端口输入模式
def pinRead(self, pin):
# 读端口电平
def pinIsHigh(self, pin):
# 检测端口电平是否为高
def pinIsLow(self, pin):
# 检测端口电平是否为低
def pinOutput(self, pin):
# 设置端口输出模式
def pinOutputHigh(self, pin):
# 设置端口输出高电平
def pinOutputLow(self, pin):
# 设置端口输出低电平
def pinClr(self, pin):
# 设置端口低电平
def pinSet(self, pin):
# 设置端口高电平
def pinSetVal(self, pin, val):
# 设置端口电平
def pinToggle(self, pin):
# 翻转端口电平
示例:
import time
import mcush
from mcush.linkong.ShellLab import ShellLab
s = ShellLab('COM10') # 填入对应的串口号
while True:
s.pinToggle( '0.0' ) # 翻转第0路继电器
time.sleep(2)
下载
Shell Lab 测试台软件
CH341虚拟串口驱动(Windows)
|