在全志H616核桃派开发板GPIO基础实验之UART串口通讯

前言

串口是应用广泛的通讯接口,很多工控产品、无线透传模块都是使用串口来收发指令和传输数据,这样用户就可以在无须考虑底层实现原理的前提下将各类串口功能模块灵活应用起来。你也可以可以通过串口跟其它开发通讯实现数据交互,如STM32、ESP32、Arudio等。

实验目的

编程实现串口收发数据。

实验讲解

核桃派的GPIO有引出串口,8、10引脚,uart2。 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Serial对象

核桃派串口通讯可以使用linux系统自带的Serial标准库编程。具体介绍如下:

构造函数

serial.Serial(“dev”,baudrate)

构建UART对象

  • ”dev” :设备号,核桃派的uart2是”/dev/ttyS2”;
  • baudrate :串口波特率,可以设置为常用的9600、115200等。

使用方法

Serial.inWaiting()

返回串口接收并存放在缓冲区的字符个数,int型。可以用来判断是否有接收到数据。

Serial.read(num)

读取数据,返回字节字符串。

  • num :读取字符数量。
Serial.write(b'str')

发送数据,要求格式为字节字符串。

  • b'str' :发送内容。

更多Serial的python用法,请看官方文档: https://pyserial.readthedocs.io/en/latest/pyserial_api.html#module-serial

了解了UART对象用法后,我们可以用一个USB转TTL工具,配合电脑上位机【串口助手】来跟核桃派进行串口通信。这类工具大同小异,需要注意的是如果带3.3V和5V电平切换的,需要将跳线帽打到3.3V,因为核桃派的GPIO电平是3.3V的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本实验我们使用UART2,也就是TX2(PI5)和RX2(PI6),接线示意图如下:(3.3V可以不用接)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在本实验中我们可以先初始化串口,然后给串口发去一条信息,这样PC机的串口助手就会在接收区显示出来,然后进入循环,当核桃派检测到有数据可以接收时候就将数据接收并打印,并通过终端打印显示。代码编写流程图如下:

参考代码

'''
实验名称:UART(串口通讯)
实验平台:核桃派
'''

#导入相关模块
import serial,time

# 配置串口
com = serial.Serial("/dev/ttyS2",115200)

#发送提示字符
com.write(b'Hello WalnutPi!')

whileTrue:

# 获得接收缓冲区字符个数 int
    count = com.inWaiting()

if count !=0:#收到数据

# 读取内容并打印
        recv = com.read(count)
print(recv)

#发回数据
        com.write(recv)

# 清空接收缓冲区
        com.flushInput()

# 延时100ms,接收间隔
    time.sleep(0.1)

实验结果

使用USB转TTL工具链接核桃派和电脑。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

电脑打开串口助手,选择USB转TTL对应的COM,波特率115200。点击打开,等待接收数据:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里使用Thonny远程核桃派运行以上Python代码,关于核桃派运行python代码方法请参考: 运行Python代码

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

运行后可以看到电脑串口助手接收到信息:

uart7

在串口助手发送栏输入信息,点击发送,可以看到thonny下方终端打印接收到的数据(核桃派开发板接收到的数据):

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

串口数据收发应用非常广泛,除了本例程跟电脑通讯外,还可以跟其它单片机开发板或者串口模块设备通讯。

  • 27
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全志H616平台上使用I2C协议实现舵机转动,可以按照以下步骤进行操作: 1. 硬件准备:获取一个舵机和全志H616开发板,确保舵机的供电和I2C信号线连接正确。 2. 软件配置:在全志H616开发板上,需要通过设备树(Device Tree)配置I2C控制器和相关引脚。确保I2C控制器的驱动程序已经加载,并且设备节点正确配置。 3. I2C编程:使用编程语言(如C、C++或Python)编写控制舵机的程序。在程序中,需要打开并初始化所使用的I2C控制器,并设置相应的I2C参数,如设备地址、速率等。 4. 舵机驱动程序:根据舵机的型号和规格,编写相应的驱动程序。驱动程序需要实现将控制命令通过I2C总线发送给舵机,并控制舵机的转动角度。 5. 测试和调试:完成以上步骤后,可以进行测试和调试,确保舵机能够正常转动。可以通过修改程序中的参数来调整舵机的转动角度和速度。 以下是一个示例代码(使用Python)来控制舵机通过I2C协议在全志H616平台上转动: ```python import smbus # I2C控制器地址 i2c_bus = smbus.SMBus(0) i2c_address = 0x12 # 舵机的I2C设备地址 # 舵机转动命令 command = 0x01 # 命令字节 angle = 90 # 转动角度 # 发送舵机控制命令 i2c_bus.write_byte_data(i2c_address, command, angle) ``` 请注意,以上代码仅是一个示例,具体的实现方式和命令格式可能会根据舵机的型号和规格而有所不同。因此,在编写代码之前,建议查阅舵机的相关文档和驱动程序,以了解具体的控制方式和命令格式。 另外,需要注意的是,为了避免对硬件造成损坏,需要仔细阅读相关文档,并确保操作正确和安全。同时,确保I2C总线的正常工作,并且舵机的I2C地址正确设置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值