无线串口NRF24L01的使用与调试

毕业设计中,需要做一个无线遥控的小车,无线使用NRF24L01转串口模块。
上位机界面设计完成如图:
这里写图片描述
上位机的作用仅仅是每个按键发送不同的字符串而已。
在调试过程中使用过不同的串口调试助手。
这里写图片描述
这里写图片描述

但是使用过程中出现了一些意想不到的事情。
波特率,数据位,停止位这些都正常。
无线串口模块的参数调整按照手册上进行调整。

但是有的串口助手能正确发送,有的却 不能。

经过调试,发现有些串口助手发送的机制有些不同。

调试方法:使用Keil的调试。
我本设计的是比较接收到的数据和既定数据进行比较,然后下位机采取不同的运动方案。
将得到后的数据加入到watch中,然后观察发送一次数据之后,watch数据的变化情况,
这里写图片描述
XCOM的串口助手发送数据会自带加上一个\n
自己设计和串口调试小助手不会自带\n

所以在使用不同的串口调试助手时,下位机解码的方式也不一样。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
nrf24L01是一种常用的2.4GHz无线收发模块,可以实现低功耗、低成本的无线通信。下面是一个基本的nrf24L01模块的发送和接收代码,你可以根据自己的需要进行修改和调试。 首先,需要引入nRF24L01库文件: ```c #include <nRF24L01.h> #include <RF24.h> RF24 radio(7, 8); // CE, CSN byte address[] = "00001"; // 接收端地址 void setup() { Serial.begin(9600); radio.begin(); radio.openWritingPipe(address); radio.setPALevel(RF24_PA_MIN); radio.stopListening(); } void loop() { const char text[] = "Hello World!"; radio.write(&text, sizeof(text)); delay(1000); } ``` 以上代码为发送端代码,其中使用了RF24库。我们在setup函数中,初始化了nrf24L01模块,并设置了接收端的地址。在loop函数中,我们定义了要发送的数据,在每次发送后延时1秒。 接下来是接收端代码: ```c #include <nRF24L01.h> #include <RF24.h> RF24 radio(7, 8); // CE, CSN byte address[] = "00001"; // 接收端地址 void setup() { Serial.begin(9600); radio.begin(); radio.openReadingPipe(0, address); radio.setPALevel(RF24_PA_MIN); radio.startListening(); } void loop() { if (radio.available()) { char text[32] = {0}; radio.read(&text, sizeof(text)); Serial.println(text); } } ``` 以上代码为接收端代码,其中也使用了RF24库。我们在setup函数中,初始化了nrf24L01模块,并设置了接收端的地址。在loop函数中,我们通过判断是否有数据接收,如果有则读取数据并输出到串口上。 以上是nrf24L01模块的基本发送和接收代码,如果你遇到问题可以根据具体情况进行调试
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值