您现在的位置: 主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > nRF24L01 无线模块 测试 按键-灯-远程控制 -
本文所属标签:
为本文创立个标签吧:

nRF24L01 无线模块 测试 按键-灯-远程控制 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-08 

[导读]哈哈,穷吊死一个,自己做的一个超简单的板还没有电源提供,只得借助我的大开发板啦。其实这2个模块是完全可以分开的,无线嘛,你懂得!进入正题,这个实验的功能就是一个发送模块(大的那个板)连接4个按键,通过按

哈哈,穷吊死一个,自己做的一个超简单的板还没有电源提供,只得借助我的大开发板啦。其实这2个模块是完全可以分开的,无线嘛,你懂得!进入正题,这个实验的功能就是一个发送模块(大的那个板)连接4个按键,通过按动这4个不同的按键来发送4种不同的命令,来控制接收端(小的板)点亮4个不同的灯。

本文引用地址: http://www.21ic.com/app/mcu/201808/782867.htm

>_


1 void main()

2 {

3 uchar Tx_Buf1[]={1}; //发送的信息1

4 uchar Rx_Buf[32]; //接收到的数据暂存器,最多32字节数据

5 init_NRF24L01();

6 LED6=1; //初始灯6熄灭

7

8 while(NRF24L01_Check()) //检查不到24l01则报警

9 {

10 beep=0;

11 delay_ms(200);

12 beep=1;

13 delay_ms(200);

14 }

15 while(1)

16 {

17 RX_Mode(); //接收模式

18 while(!nRF24L01_RxPacket(Rx_Buf)) //等待接收数据,返回1则接收到数据,在等待接收数据期间,可以随时变成发送模式

19 {

20 if(KEY1==0) //按了按键1,则变成发送模式,发送对应数据,发送完后变成接收模式

21 {

22 delay_ms(5);//消抖动

23 if(KEY1==0)

24 {

25 while(!KEY1);

26 TX_Mode(); //发送模式

27 Tx_Buf1[0]=1; //将1发送过去

28 nRF24L01_TxPacket(Tx_Buf1); //发送命令数据

29 LED6=0;

30 delay_ms(300);

31 LED6=1;

32 delay_ms(300); //发送后LED1闪一下

33 break; //退出最近的循环,从而变回接收模式,这句关键

34 }

35 }

36 else if(KEY2==0)

37 {

38 delay_ms(5);//消抖动

39 if(KEY2==0)

40 {

41 while(!KEY2);

42 TX_Mode(); //发送模式

43 Tx_Buf1[0]=2; //将2发送过去

44 nRF24L01_TxPacket(Tx_Buf1); //发送命令数据

45 LED6=0;

46 delay_ms(300);

47 LED6=1;

48 delay_ms(300);

49 break; //退出最近的循环,从而变回接收模式,这句关键

50 }

51 }

52 else if(KEY3==0)

53 {

54 delay_ms(5);//消抖动

55 if(KEY3==0)

56 {

57 while(!KEY3);

58 TX_Mode(); //发送模式

59 Tx_Buf1[0]=3; //将3发送过去

60 nRF24L01_TxPacket(Tx_Buf1); //发送命令数据

61 LED6=0;

62 delay_ms(300);

63 LED6=1;

64 delay_ms(300);

65 break; //退出最近的循环,从而变回接收模式,这句关键

66 }

67 }

68 else if(KEY4==0) //按了按键8,则变成发送模式,发送对应数据,发送完后变成接收模式

69 {

70 delay_ms(5);//消抖动

71 if(KEY4==0)

72 {

73 while(!KEY4);

74 TX_Mode(); //发送模式

75 Tx_Buf1[0]=4; //将4发送过去

76 nRF24L01_TxPacket(Tx_Buf1); //发送命令数据

77 LED6=0;

78 delay_ms(300);

79 LED6=1;

80 delay_ms(300);

81 break; //退出最近的循环,从而变回接收模式,这句关键

82 }

83 }

84 }

85 if(Rx_Buf[0]==1) //若接收到对应的数据则实现对应功能

86 {

87 Rx_Buf[0]=0; //清空数据

88 LED6=0;

89 delay_ms(300);

90 LED6=1;

91 delay_ms(300); //接收到数据 后闪烁

92 }

93 }

94 }


第8~14行检测nRF24L01是否存在,



              查看评论 回复



嵌入式交流网主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > nRF24L01 无线模块 测试 按键-灯-远程控制 -
 

"nRF24L01 无线模块 测试 按键-灯-远程控制 -"的相关文章

网站地图

围观()