arduino - USART 通过 Arduino Leonardo 将十六进制代码传输到设备
问题描述
我正在尝试向带有 Arduino Leonardo 的设备发送十六进制命令,该设备也通过蓝牙接口接受命令。
基本上,我试图通过 Arduino Leonardo 上传输的十六进制命令打开和关闭激光,但我没有运气。如果我通过蓝牙 USB 接口发送十六进制代码,它可以在当前配置接线配置中工作,但当我尝试将其推过 TX 引脚时却不行(我必须使用具有 5k6 和 12k 欧姆的分压器来提供电压从 5V 降至 3.3V) 。
我正在尝试的代码如下所示:
byte laserON[] = {0xAA,0x00, 0x01, 0xBE, 0x00, 0x01, 0x00, 0x01, 0xC1};
byte laserOFF[] = {0xAA,0x00, 0x01, 0xBE, 0x00, 0x01, 0x00, 0x00, 0xC0};
void setup() {
Serial1.begin(19200);
}
void loop() {
for(byte i =0;isizeof(laserON);i++)(Serial1.write(laserON[i]));
delay(1000);
Serial1.write(laserON, sizeof(laserON));
for(byte i =0;isizeof(laserOFF);i++)(Serial1.write(laserOFF[i]));
delay(1000);
Serial1.write(laserOFF, sizeof(laserOFF));
}
解决方案
该问题的解决方案如下:
与其使用上述代码行,Tarick 的建议效果最好:Serial.write(&laserON[0], sizeof(laserON))
问题是分压器没有按预期工作。一个 5v 到 3.3v 的逻辑电平转换器起到了作用。
推荐阅读
- python - 在 settings.py 中将“rest-framework”添加到 INSTALLED_APPS 时遇到问题
- eclipse - 制作:[main.rel] SDCC -Eclipse IDE 上的错误 1
- azure-database-mysql - MariaDB 连接上的 PDO 异常,对等证书不匹配
- java - Maven 项目不包括 IntelliJ IDEA 中的依赖项/库?
- scala - 除了 localhost,我如何指定 IP 地址?
- android - 我应该在 Room 中使用 @DatabaseView 和 LiveData 吗?
- r - 每日零数据的 Box Cox 变换
- javascript - 无法使用 useState 挂钩限制功能
- bash - bash 函数可以用来完全转义任何字符串(包括嵌套的单引号)吗?
- charles-proxy - 即使未选中 Focused Hosts,Charles 仍然只显示来自一位主机的请求?