查看: 7788|回复: 12

[原创] [我为LPC代言]利用LPC824驱动nRF24L01+实现无线通信

[复制链接]
  • TA的每日心情
    奋斗
    2017-1-18 20:00
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    17

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    533
    最后登录
    2024-11-23
    发表于 2016-12-20 23:56:18 | 显示全部楼层 |阅读模式
    利用LPC824驱动nRF24L01+实现无线通信
    nRF24L01+是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。可以应用在如下领域:无线鼠标 键盘 游戏机操纵杆
    ● 无线门禁
    ● 无线数据通讯
    ● 安防系统
    ● 遥控装置
    ● 遥感勘测
    ● 智能运动设备
    ● 工业传感器
    ● 玩具

    我们可以利用它来实现近距离的无线控制与传输。nRF24L01+引脚说明如下:
    1GND 2VCC
    3CE 4CSN
    5SCK 6MOSI
    7MISO 8IRQ

    知道了nRF24L01+的引脚就是给它分配引脚了


    /***************************************************************************************/
    //              GND                    地
    //              VCC                  3.3电源
    //              MISO                  P0_24 LPC824设置为输入
    //              CE                        P0_8        //使能
    //              SCK                  P0_26  //SPI时钟
    //              MOSI                   P0_15        //数字输入
    //              CSN                   P0_27    //片选信号
    //                             IRQ                   P0_9          //LPC824设置为输入
    /***************************************************************************************/
    可以看到,这里使用的模拟SPI,其中MISO与IRQ引脚设置的都是输入,其他的是输出。程序如下:
    1. #define nRF24L01_CSN_Clr()  Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 27, 0)           //0
    2. #define nRF24L01_CSN_Set()  Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 27, 1);                //1

    3. #define nRF24L01_CE_Clr() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 26, 0)           //0
    4. #define nRF24L01_CE_Set() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 26, 1)                //1

    5. //#define nRF24L01_IRQ_Clr() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 15, 0)                   //0
    6. //#define nRF24L01_IRQ_Set() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 15, 1)                //1

    7. #define nRF24L01_SCK_Clr() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 24, 0)           //0
    8. #define nRF24L01_SCK_Set() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 24, 1)                //1

    9. #define nRF24L01_MOSI_Clr() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 8, 0)           //0
    10. #define nRF24L01_MOSI_Set() Chip_GPIO_PinSetState(LPC_GPIO_PORT, 0, 8, 1)                //1
    复制代码
    引脚初始化:
    1. void nRF24L01_PIN_Init(void)
    2. {
    3.         Chip_GPIO_Init(LPC_GPIO_PORT);                     
    4.         Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 24, 0);         //ÉèÖÃΪÊäÈë  MISO
    5.         Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 8, 1);          //ÉèÖÃΪÊä³ö
    6.         Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 26, 1);          //ÉèÖÃΪÊä³ö
    7.         Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 15, 1);          //ÉèÖÃΪÊä³ö
    8.         Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 27, 1);          //ÉèÖÃΪÊä³ö
    9.         Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 9, 1);          //ÉèÖÃΪÊäÈë  IRQ
    10. }
    复制代码
    接下来就是修改网上找到的程序中需要修改的地方,待会会贴出源代码,这里就不叙述了。
    nRF24L01是需要两个通信的,我这里只有一个LPC824,所示,另一半用的是LPC1114来写的程序,但是与平台没有关系,只要通信两个模块的地址一样就行。
    LPC1114这里就不叙述了,我直接给出源代码。LPC824作为发送端,LPC1114作为接收,并通过串口与计算机通信,将接收到的数据发送给上位机,这里用串口助手替代。源程序与结果图如下:
    接收数据.PNG
    IMG_20161220_213112.jpg
    源程序:


    nRF24L01P.rar

    1.42 MB, 下载次数: 70, 下载积分: 威望 1

    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2024-9-24 10:29
  • 签到天数: 95 天

    连续签到: 1 天

    [LV.6]常住居民II

    15

    主题

    228

    帖子

    23

    高级会员

    Rank: 4

    积分
    663
    最后登录
    2024-9-24
    发表于 2016-12-21 00:51:21 | 显示全部楼层
    不错学习了,尝试做下
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-1-13 17:13
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    13

    主题

    166

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    494
    最后登录
    2018-1-6
    发表于 2016-12-21 08:53:54 | 显示全部楼层
    牛逼啊啊啊啊啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-12-21 08:58:15 | 显示全部楼层
    不错,学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-12-21 08:59:15 | 显示全部楼层
    本帖最后由 zhjb1 于 2016-12-21 09:00 编辑

    不错,学习了。Sorry,可能是网或电脑的问题,点击回复无反应,再点击出现两个。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    35

    主题

    356

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3261
    最后登录
    2023-6-23
    发表于 2016-12-21 09:19:06 | 显示全部楼层
    zhjb1 发表于 2016-12-21 08:59
    不错,学习了。Sorry,可能是网或电脑的问题,点击回复无反应,再点击出现两个。 ...

    最近服务器好像比较慢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-1-18 20:00
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    17

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    533
    最后登录
    2024-11-23
     楼主| 发表于 2016-12-21 10:03:56 | 显示全部楼层
    香水橙 发表于 2016-12-21 09:19
    最近服务器好像比较慢

    我也发现了这个问题,特别慢有时候
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-1-18 20:00
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    17

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    533
    最后登录
    2024-11-23
     楼主| 发表于 2016-12-21 10:04:18 | 显示全部楼层

    谢谢支持
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-1-18 20:00
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    17

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    533
    最后登录
    2024-11-23
     楼主| 发表于 2016-12-21 10:04:42 | 显示全部楼层
    xinshuwei 发表于 2016-12-21 00:51
    不错学习了,尝试做下

    相互学习
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-1-21 08:52
  • 签到天数: 861 天

    连续签到: 1 天

    [LV.10]以坛为家III

    75

    主题

    2523

    帖子

    24

    金牌会员

    Rank: 6Rank: 6

    积分
    5867
    最后登录
    2025-1-22
    发表于 2016-12-21 10:46:05 | 显示全部楼层
    谢谢分享,不错
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 20:30 , Processed in 0.108406 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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