Arduino学习笔记⑥ 硬件串口通信

本文介绍了Arduino的硬件串口通信,包括常用串口函数如begin、end、print、println、read和available的使用,并通过实验展示了如何与电脑进行串口通信及串口控制开关灯,帮助理解串口通信的基础开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.前言

    Ardunio与计算机通信最常用的方式就是串口通信。在Arduino控制器上,串口都是位于Rx和Tx两个引脚,Arduino的USB口通过一个转换芯片与这两个串口引脚连接。该转换芯片会通过USB接口在计算机上虚拟出一个用于Arduino通信的串口。当你使用串口功能的时候,就意味着你不能引用串口引脚作为输入或者输出。
    要想使串口与计算机通信,首先需要先启用串口功能,初始化Arduino的串口通信功能,也就是:

  • Serial.begin(speed)

    其中参数speed指串口通信波特率,用于设定串口通信速率的参数。串口通信双方必须使用相同的波特率才可以正确通信。
    波特率是一个衡量通信速度的参数,表示每秒传送的bit的个数。如9600波特表示每秒发送9600bit的数据,常用以下波特率:300,600,1200,2400,4800,9600,14400,19200,28800,38400,57600,115200。波特率高表示串口通信速率越快。
    你可以使用Arduino IDE内置的串口监视器与Arduino板子通信。点击工具栏上的串口监视器按钮(注意设置相同波特率),我们接下来的实验就是用到它。
    Arduino Mega上有三个额外的串口:Serial1,Serial2,Serial3。若有使用这三对引脚与您的个人电脑通信,你需要一个额外的USB转串口适配器;若要用它们来与外部的TTL串口设备进行通信,将Tx引脚连接到设备Rx引脚,将Rx引脚连接到设备的Tx引脚,将GND连接到设备的GND。

2.

(yolo8n) wuzijian@orangepiaipro-20t:~/ultralytics-main/weights$ atc --framework=5 --model=yolov8n.onnx --input_format=NCHW --output=yolov8n_huawei --input_shape="images:1,3,1280,1280" --soc_version=Ascend310B1 atc: invalid option -- '-' atc: invalid option -- '-' atc: invalid option -- 'm' atc: invalid option -- 'o' atc: invalid option -- 'd' atc: invalid option -- 'e' atc: invalid option -- '=' atc: invalid option -- 'y' atc: invalid option -- 'o' atc: invalid option -- 'o' atc: invalid option -- 'v' atc: invalid option -- '8' atc: invalid option -- 'n' atc: invalid option -- '.' atc: invalid option -- 'o' atc: invalid option -- 'n' atc: invalid option -- 'n' atc: invalid option -- 'x' atc: invalid option -- '-' atc: invalid option -- 'i' atc: invalid option -- 'n' atc: invalid option -- '_' atc: invalid option -- '-' atc: invalid option -- 'o' atc: invalid option -- '=' atc: invalid option -- 'y' atc: invalid option -- 'o' atc: invalid option -- 'o' atc: invalid option -- 'v' atc: invalid option -- '8' atc: invalid option -- 'n' atc: invalid option -- '_' atc: invalid option -- 'h' atc: invalid option -- 'a' atc: invalid option -- 'w' atc: invalid option -- 'e' atc: invalid option -- 'i' atc: invalid option -- '-' atc: invalid option -- 'i' atc: invalid option -- 'n' atc: invalid option -- '_' atc: invalid option -- 'h' atc: invalid option -- 'a' atc: invalid option -- 'e' atc: invalid option -- '=' atc: invalid option -- 'i' atc: invalid option -- 'm' atc: invalid option -- 'a' atc: invalid option -- '-' atc: invalid option -- 'o' atc: invalid option -- 'c' atc: invalid option -- '_' atc: invalid option -- 'v' atc: invalid option -- 'e' Usage: atc -[u?lstp] [-[gf] game_name] [-r random seed] #: name host game time real time planes safe ------------------------------------------------------------------------------- 1: wuzijian orangepiaipro-20t default 6 :25 0 available games: default easy crossover K
最新发布
03-10
### 解决ATC命令行工具转换YOLOv8n模型时遇到的无效选项问题 当尝试使用`atc`命令行工具将YOLOv8n ONNX模型转换为Ascend310B1平台支持的OM格式时,如果遇到多个`invalid option`错误,这通常意味着使用的命令参数不被识别或者存在拼写错误。为了确保成功转换,建议遵循以下指导原则: #### 正确配置环境并验证输入模型 确保已经按照官方文档完成了CANN环境的安装,并且可以正常运行ATC工具[^4]。 #### 使用正确的命令语法 根据提供的信息,在执行转换操作之前应当仔细核对所使用的命令及其参数是否符合要求。对于YOLOv8n这样的特定网络结构来说,可能需要注意一些特殊的设置项。下面是一个推荐的基础命令模板用于ONNX至OM的转换过程: ```bash bash common/util/atc.sh --model=<path_to_yolov8n.onnx> \ --framework=5 \ # 表明这是来自PyTorch/ONNX的模型 --output=<output_path_without_extension> \ --soc_version=Ascend310P1 \ --input_format=NCHW \ --input_fp16_nodes="data" \ --enable_small_channel=1 \ --insert_op_conf=<optional_config_file> ``` 请注意上述命令中的几个关键点: - `--model`: 指定待转换的`.onnx`文件路径。 - `--framework`: 设置为`5`表示这是一个来源于ONNX框架的模型。 - `--output`: 输出目录加上期望的名字(不需要扩展名),例如`./outputs/yolov8n`. - `--soc_version`: 应该匹配目标硬件的具体型号;这里假设是Ascend310P1而不是题目提到的Ascend310B1,请依据实际情况调整。 - `--input_format`, `--input_fp16_nodes`, 和其他类似的选项应该基于具体的应用场景来决定,有时这些不是必需的。 考虑到不同版本之间的差异可能导致兼容性问题,导出ONNX模型时应特别关注opset版本的选择。过高或过低都可能导致后续处理出现问题。文中提及到`export`函数里的`opset=11`可能是较为合适的起点[^3]。 此外,关于Ultralytics YOLO系列模型的表现,确实有报告指出直接从其官方渠道获取的预训练权重在某些情况下表现不佳。因此,除了检查ATC命令外,也值得重新审视原始ONNX模型的质量和适用性[^2]。 最后提醒一点,由于软件更新频繁,最好查阅最新的官方指南和技术论坛帖子以获得最准确的帮助和支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值