Jetson Nano 入坑之路 ---- (7)UART 使用

        UART串口使用两条杜邦线就可以实现数据发送和接收,可以很方便的与其他扩展设备进行数据连接。接下来具体说明Jetson nano串口的使用:


1、UART 引脚

        其中红框框选的8、10是我们要用到的引脚。不过注意了,这里怎么写得是 UART_2 呢?UART_1 去哪里了呢?大家看看板子,卡槽下方是不是有一排引脚啊? ~~ 懂的都懂。

2、安装串口函数库

 如果使用的是官方镜像,应该是已经安装好了。如果不幸丢失或卸载了,再装一下就好了。

sudo pip3 install pyserial
sudo pip install pyserial

3、使用UART收发数据

  • 导入串口 serial 库
import serial as ser
  • 设置使用的引脚、波特率和超时时间
se = ser.Serial("/dev/ttyTHS1", 9600, timeout=1)

        熟悉 uart 通讯的同学应该知道9600是波特率了,那常用的波特率有哪些呢?你们应该知道吧,这里就不多讲了,需要了解的自行百度一下。

        timeout 顾名思义就是 超时时间 设置

在运行此句如果报错如下:

Serial Exception: [Errno 13] could not open port /dev/ttyTHS1: [Errno 13] Permission denied: '/dev/ttyTHS1'

这是因为没有权限,使用下面的命令设置其权限为可读可写可执行

sudo chmod 777 /dev/ttyTHS1
  • 使用write函数进行数据的发送(注意发送类型必须是字节,因此需要使用encode()函数进行转换)
se.write("hello".encode())

        可以传入指定的编码名称来做指定编码:

se.write("hello".encode("UTF-8"))

        或者直接在字符串前边加b:

ser.write(b'hello')
  • 读取数据
s = ser.read(100)        # 读取100个字符
line = ser.readline()    # 读取一行(当读到 ‘\n’ 时,视当前读到的内容为一行。)

         读取的都是原始字节,需要用decode()函数进行解码进行输出:

print(line.decode("UTF-8"))

4、串口状态

  • 打开串口
ser.open()
  • 关闭串口
ser.close()
  • 检测串口是否打开
ser.is_open

        返回值为 TrueFalse。

5、测试程序

import serial as ser
import time

se = ser.Serial("/dev/ttyTHS1", 9600, timeout=1)

while True:
    time.sleep(1)
    line = se.readline()
    if line:
        se.write("GET OK.\r\n".encode())
        print(line)

        我用 arduino 进行收发测试的。测试结果忘截图了~

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星羽空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值