香橙派调试 --IO控制&串口通信

香橙派IO控制

在实际应用中,对于需要使用到开发板的PWM功能,但现成的IO控制库又不支持PWM控制,因此想能不能用python直接执行命令行指令,找到如下方法:

import subprocess
command = "ping -c 1 baidu.com "
back = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()
# back输出为bytes类型,以下为检测输出是否为0;若不为0,则解码输出
if len(back[0]):
	print("back0----", back[0].decode())  # 注意需要进行解码操作,默认输出的是字节
if len(back[1]):
	print("back1----", back[1].decode())  # back是一个元祖,可以通过元祖取值的方式获取结果
# back[0]----stdout(输出结果),back[1]–stderr(错误捕获)

# 设置 GPIO 口为输出模式
gpio mode 2 out
# 设置 GPIO 口输出低电平
gpio write 2 0
# ps:也可以用wiringpi的python库来控制

香橙派调试串口

在linux系统,串口通信不同于windows,指定端口号“COMx”就行。linux系统是以设备进行驱动的,因此我们首先需找出串口的设备号:

# 查看可用串口
 [IN1]:ls /dev/ttyS*
 [OUT1]:/dev/ttyS4 /dev/ttyS9
# ttyS4为我们要使用的串口
def RPowerDuty(command):
	protx = "/dev/ttyS4"
	# 设置波特率-9600、奇偶检验位-无、停止位-1
	ser = serial.Serial(port=protx, baudrate=9600, timeout=1, parity=serial.PARITY_NONE, stopbits=1)
	write_len = ser.write(command.encode('utf-8'))
	if ser.isOpen(): # 判断串口是否成功打开
		print("打开串口成功")
		print(ser.name) # 输出串口号
	else:
		print("打开串口失败")
		print(command)
	# 读取串口输入信息并输出。
	# 接收返回数据
	while True:
		com_input = ser.read(10)
		if com_input: # 如果读取结果非空,则输出
			print(com_input.decode("utf-8"))
			ser.close()
			break
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值