串口屏和NRF24问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 640|回复: 1

[未解决] 串口屏和NRF24问题

[复制链接]
发表于 2022-9-8 14:37 | 显示全部楼层 |阅读模式
本帖最后由 saigon 于 2022-9-9 11:41 编辑

本人想用串口屏和NANO做主机用NRF24下建立两个从机。让从机控制电机等设备。

微信图片_20220908081050.jpg
微信图片_20220908081037.png
现在我硬件弄好了。发现单独运行串口屏和NANO通讯是正常的。比如我用串口屏通过NANO控制电机是正常的。就是让陶晶驰i屏幕发送屏幕上滑块位置数据控制电机角度。让NRF24主机副机通讯主机用电位器控制副机电机角度也正常。就是加了串口屏后就不正常
下面是串口屏编辑界面和屏幕串口输出数据(a1对应滑块位置数字)
:covx t0.txt,h0.val,0,0 (把文本t0的txt十进制数字字符串变量转换为数值并赋值给滑块h0的val数值变量, 长度为自动)
QQ图片20220908081416.png
QQ图片20220908081449.png
下面是我的主副机程序,本人编程小白痴一个。烦请各位高人嘴下留情别见笑。还请高人多多指点谢谢。


主机程序
#include <RF24.h>
#include <RF24Network.h>
#include <SPI.h>


RF24 radio(7, 8); // CE, CSN
RF24Network network(radio); // Include the radio in the network
const uint16_t this_node = 00; // Address of this node in Octal format ( 04,031, etc)
const uint16_t node01 = 01;


String dataIn = "";




int angleValue =0;


void setup() {
Serial.begin(9600);


SPI.begin();
radio.begin();
network.begin(90, this_node);
}


void loop() {

if ( Serial.available() > 0) {
dataIn = Serial.readString();}

if (dataIn.startsWith("a1")) {
String dataInS = dataIn.substring(2, dataIn.length()); // 如果开头是a1切取字符串开始2位后

delay (5);

network.update();

angleValue = dataInS.toInt();
RF24NetworkHeader header(node01); // (Address where the data is going)
bool ok = network.write(header, &angleValue, sizeof(angleValue));


}
}


副机程序


#include <RF24.h>
#include <RF24Network.h>
#include <SPI.h>
#include <Servo.h>


RF24 radio(7, 8); // CE, CSN
RF24Network network(radio);
const uint16_t this_node = 01;
Servo myServo;
void setup() {
Serial.begin(9600);
myServo.attach(5);
SPI.begin();
radio.begin();
network.begin(90, this_node); //(channel, node address)


}


void loop() {



network.update();
while ( network.available() ) { // Is there any incoming data?
RF24NetworkHeader header;
unsigned long angleValue;
network.read(header, &angleValue, sizeof(angleValue));// Read the incoming data
myServo.write(angleValue);


}
}
麻烦大师指点迷津了,谢谢。


发表于 2022-9-14 13:00 | 显示全部楼层
你看模拟器返回的数据,61 31 37 38 它向单片机发送和实际单片机收到的数据是 0x61 0x31 0x37 0x38。你要转换了以后在放入变量调用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 01:42 , Processed in 0.286851 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表