jetson nano 串口通信

目录

1.UART通信介绍

2.电脑端准备工作

2.1 安装串口调试助手

2.2 硬件接线

3.Jetson Nano端准备工作

3.1安装库文件

 3.2修改主板上电启动串口权限

4.示例程序-发送及接收

4.1 开启串口调试助手

 4.2 导入示例程序

4.3 执行程序

4.4 查看效果 

4.4.1 串口调试端

4.4.2 Jetson Nano端 

5.串口通信代码 


目录

1.UART通信介绍

2.电脑端准备工作

2.1 安装串口调试助手

2.2 硬件接线

3.Jetson Nano端准备工作

3.1安装库文件

 3.2修改主板上电启动串口权限

4.示例程序-发送及接收

4.1 开启串口调试助手

 4.2 导入示例程序

4.3 执行程序

4.4 查看效果 

4.4.1 串口调试端

4.4.2 Jetson Nano端 


1.UART通信介绍

        通信协议在组织设备之间的通信方面起着重要作用。它根据系统要求以不同的方式设
计,并且这些协议具有在设备之间达成一致的特定规则以实现成功的通信。
        嵌入式系统、微控制器和计算机大多使用UART 作为设备到设备硬件通信协议的一种
形式。在可用的通信协议中,UART仅使用两条线作为其发送端和接收端。
        尽管是一种广泛使用的硬件通信协议方法,但它并没有一直得到充分优化。在微控制器
内部使用UART 模块时,通常会忽略帧协议的正确实现。
        根据定义,UART是一种硬件通信协议,它使用可配置速度的异步串行通信。异步意味
着没有时钟信号来同步从发送设备到接收端的输出位。
        每个UART 设备的两个信号命名为:

  • 发射机(Tx)
  • 接收器(Rx)

        每个设备的发送器和接收器线的主要目的是发送和接收用于串行通信的串行数据。

        发送UART 连接到以并行形式发送数据的控制数据总线。由此,数据现在将在传输线
(线)上逐位串行传输到接收UART。反过来,这会将串行数据转换为接收设备的并行数
据。
        UART 线用作通信介质,将一个数据发送和接收到另一个数据。请注意,UART 设备
具有专用于发送或接收的发送和接收引脚。
        对于UART 和大多数串行通信,需要在发送和接收设备上设置相同的波特率。波特率
是信息传输到通信信道的速率。在串行端口上下文中,设置的波特率将作为每秒传输的最大
位数。
        在UART 中,传输方式是数据包的形式。连接发送器和接收器的部分包括创建串行数
据包并控制这些物理硬件线路。数据包由起始位、数据帧、奇偶校验位和停止位组成。

  • 起始位

        UART 数据传输线在不传输数据时通常保持在高电压电平。为了开始数据传输,发送
UART 将传输线从高拉低一(1) 个时钟周期。当接收UART 检测到从高到低的电压转换
时,它开始以波特率的频率读取数据帧中的位。

  • 数据框

        数据帧包含正在传输的实际数据。如果使用奇偶校验位,它可以是五(5) 位,最多八(8)
位。如果不使用奇偶校验位,则数据帧可以是九(9) 位长。在大多数情况下,首先发送的
数据是最低有效位。

  • 平价

        奇偶性描述了一个数字的偶数或奇数。奇偶校验位是接收UART 判断数据在传输过程
中是否发生变化的一种方式。位可以通过电磁辐射、不匹配的波特率或长距离数据传输来改
变。
        接收端UART 读取数据帧后,计算值为1 的位数,并检查总数是偶数还是奇数。如
果奇偶校验位为0(偶校验),则数据帧中的1 或逻辑高位应总计为偶数。如果奇偶校验
位为1(奇校验),则数据帧中的1 位或逻辑高电平应总计为奇数。
        当奇偶校验位与数据匹配时,UART 知道传输没有错误。但如果奇偶校验位为0,总
数为奇数,或者奇偶校验位为1,总数为偶数,则UART 知道数据帧中的位发生了变化。

  • 停止位

        为了发出数据包结束的信号,发送UART 将数据传输线从低电压驱动到高电压,持续
一(1) 到两(2) 位持续时间。

2.电脑端准备工作

2.1 安装串口调试助手

        本节以友善串口助手为例,进行说明。
        双击打开本目录下的“serial5.2.3.exe”安装程序。然后按照下方图示步骤,依次进行。

### Arduino Nano串口通信介绍 Arduino Nano 提供了多种方式进行串行通信,这使得它能够与其他设备交换数据。默认情况下,Arduino Nano 配备了一个硬件 UART 接口用于 TTL 电平的串行通信[^1]。 #### 硬件 UART 接口 该板上的 ATMega328P 微控制器自带有一个 UART 模块,可以用来实现全双工的数据传输。这个模块通常连接到计算机或其他微控制器上,通过 USB 至 TTL 转换器来进行编程以及监视程序运行状态。为了利用这一功能,在编写代码时可以直接调用 `Serial` 对象的方法来发送和接收字符流。 ```cpp void setup() { Serial.begin(9600); // 初始化波特率为 9600 bps 的串行通信 } void loop() { if (Serial.available()) { // 如果有可用的数据 char receivedChar = Serial.read(); // 读取接收到的一个字节 Serial.println(receivedChar); // 将其回显回去 } } ``` #### SoftwareSerial 库扩展多路串行端口 除了上述提到的标准硬件串行接口外,还可以借助于名为 **SoftwareSerial** 的库来增加更多的独立逻辑串行通道。这意味着可以在不同的 GPIO 引脚之间建立虚拟的 RX/TX 对应关系,并以此为基础构建起额外的异步收发机制[^2]。 ```cpp #include <SoftwareSerial.h> // 创建一个新的软串行对象实例 SoftwareSerial mySerial(10, 11); // RX, TX void setup() { // 开启两个串行通讯链接 Serial.begin(9600); mySerial.begin(9600); } void loop() { if (mySerial.available()) Serial.write(mySerial.read()); if (Serial.available()) mySerial.write(Serial.read()); } ``` #### 解决常见问题 有时可能会遇到串口不通畅或者数据丢失的情况。这类现象往往是由不当配置所引起的,比如选择了错误的波特率或者是未正确指定 I/O 引脚的功能定义等问题。因此建议仔细核对参数设定并参照官方文档中的指导说明完成相应调整[^3]。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

命运从未公平

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

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

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

打赏作者

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

抵扣说明:

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

余额充值