找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1875|回复: 0
打印 上一主题 下一主题
收起左侧

单片机stc15f204ea+nrf24l01模块源程序

[复制链接]
跳转到指定楼层
楼主
ID:735293 发表于 2020-4-22 16:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近正在搞一搞wifi通讯下面是我拥有的通讯资料
nrf24l01
大家分享交流一下程序
这是调试程序

单片机源程序如下:
  1. #include "typedef.h"
  2. #include "gpio.h"
  3. #include "uart.h"
  4. #include "nrf_24l01.h"
  5. #include "delay.h"

  6. /******************************************************************************/
  7. // 函数名称:main
  8. // 输入参数:
  9. // 输出参数:
  10. // 函数功能:
  11. /******************************************************************************/
  12. void main(void)
  13. {
  14.   unsigned char i=0;

  15.   unsigned int count_send=0;
  16.   unsigned int rec_new=0;
  17.   unsigned int rec_old=0;
  18.   unsigned int rec_err=0;
  19.   unsigned int lock_key=0;
  20.   uartInit();

  21.   Delay100ms();
  22.   init_nrf24l01_io();
  23.   led=0;
  24.   Delay100ms();
  25.   led=1;
  26.   Delay100ms();
  27.   led=0;
  28.   Delay100ms();
  29.   led=1;
  30.   Delay100ms();
  31.   TI=1;
  32.   Delay100ms();
  33.   uartSendString("READY!\r\n");
  34.   ifnnrf_rx_mode();

  35.   while(1)
  36.   {

  37.     KEY=1;
  38.     KEY2 = 1;
  39.     while(KEY == 0 || KEY2 == 0){
  40.         IRQ=1;
  41.         SPI_RW_Reg(WRITE_REG+STATUS,0xff);
  42.         if (KEY == 0) {
  43.             tx_buf[0]=0xAA;
  44.         } else if (KEY2 == 0) {
  45.             tx_buf[0]=0x55;
  46.         }
  47.         ifnnrf_tx_mode();
  48.         while(IRQ);
  49.         sta=SPI_Read(STATUS);
  50.         SPI_RW_Reg(WRITE_REG+STATUS,0xff);
  51.         if(sta&STA_MARK_TX){
  52.             if (KEY == 0){
  53.                         led=0;
  54.                         Delay100ms();
  55.                         led=1;
  56.                 Delay100ms();
  57.             } else {
  58.                         led2=0;
  59.                         Delay100ms();
  60.                         led2=1;
  61.                 Delay100ms();
  62.             }
  63.            } else {
  64.             ifnnrf_CLERN_ALL();
  65.            }
  66.            lock_key=1;

  67.     }        //发送
  68.     if(lock_key) {
  69.         lock_key=0;
  70.         ifnnrf_rx_mode();
  71.         IRQ=1;
  72.         while(IRQ==0);
  73.         _delay_us(400);
  74.     }
  75.     IRQ=1;
  76.     if(IRQ==0) {        
  77.         sta=SPI_Read(STATUS);
  78.         SPI_RW_Reg(WRITE_REG+STATUS,0xff);
  79.         
  80.         if(sta&STA_MARK_RX) {
  81.             SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);
  82.             if (rx_buf[0] == 0xAA) {
  83.                 uartSendString("你按下了左边按键\r\n");
  84.                 led=0;
  85.                 Delay100ms();
  86.                 led=1;
  87.                 Delay100ms();
  88.             } else if (rx_buf[0] == 0x55)  {
  89.                 uartSendString("你按下了右边按键\r\n");
  90.                         led2=0;
  91.                         Delay100ms();
  92.                         led2=1;
  93.                 Delay100ms();
  94.             }
  95.             rx_buf[0] = 0;
  96.         } else {
  97.             ifnnrf_CLERN_ALL();
  98.             ifnnrf_rx_mode();
  99.             IRQ=1;
  100.             while(IRQ==0);
  101.         }
  102.     } //接收
  103.          
  104.   }
  105. }
复制代码

所有资料51hei提供下载:
STC15F204 NRF24L01接口 无线驱动板模块 无线开发板.zip (1.54 MB, 下载次数: 24)
出厂标准测试程序.rar (75.87 KB, 下载次数: 16)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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