张高兴的 Windows 10 IoT 开发笔记:无线收发芯片 nRF24L01

本文介绍了一个使用C#在Raspberry Pi 2/3上实现的Windows 10 IoT Core项目,该项目利用NRF24L01模块进行无线通信。文章详细展示了如何通过SPI接口连接NRF24L01模块,并提供了NRF24L01.cs文件中关键函数的说明,包括初始化、发送和接收数据的方法。此外,还提供了创建和初始化NRF24L01对象的示例代码,以及如何发送数据和处理接收数据的事件。

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

This is a Windows 10 IoT Core project on the Raspberry Pi 2/3, coded by C#.

GitHub:https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/NRF24L01

Image

img.png

Connect

NRF_bb.jpg

nRF1

  • VCC - 3.3V (Best)
  • GND - GND
  • MOSI - SPI0 MOSI (GPIO 10)
  • MISO - SPI0 MISO (GPIO 9)
  • SCK - SPI0 SCLK (GPIO 11)
  • CSN - SPI0 CS0 (GPIO 8)
  • CE - GPIO 23
  • IRQ - GPIO 24
  • nRF2
  • VCC - 3.3V (Best)
  • GND - GND
  • MOSI - SPI1 MOSI (GPIO 20)
  • MISO - SPI1 MISO (GPIO 19)
  • SCK - SPI1 SCLK (GPIO 21)
  • CSN - SPI1 CS0 (GPIO 16)
  • CE - GPIO 5
  • IRQ - GPIO 6

What Contains

In NRF24L01.cs file

/// <summary>
/// Initialize
/// </summary>
public async Task InitializeAsync();

/// <summary>
/// Send
/// </summary>
/// <param name="data">Data</param>
public async void Send(byte[] data);

/// <summary>
/// Receive
/// </summary>
/// <param name="length">Packet Size</param>
/// <returns>Data</returns>
public byte[] Receive(byte length);

......

How to Use

  • First, you need to create a NRF24L01 object. After that you should call InitializeAsync() to initialize.
// Create and Initialize
// CSN Pin, CE Pin, IRQ Pin, SPI Friendly Name, Receive Packet Size
NRF24L01 sender = new NRF24L01(0, 23, 24, "SPI0", 12);
NRF24L01 receiver = new NRF24L01(0, 5, 6, "SPI1", 12);

await sender.InitializeAsync();
await receiver.InitializeAsync();
  • Secondly
sender.Send(Encoding.UTF8.GetBytes("ZhangGaoxing"));
receiver.ReceivedData += Receiver_ReceivedData;

private void Receiver_ReceivedData(object sender, ReceivedDataEventArgs e)
{
    var raw = e.Data.Skip(1).ToArray();
    var res = Encoding.UTF8.GetString(raw);

    Debug.Write("Received Raw Data : ");
    foreach (var item in raw)
    {
        Debug.Write($"{item} ");
    }
    Debug.WriteLine("");
    Debug.WriteLine($"Received Data : {res}");
}
  • If you want to close the sensor, call Dispose().
sender.Dispose();
receiver.Dispose();

转载于:https://www.cnblogs.com/zhanggaoxing/p/8444673.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值