一、测试距离
0.软件为Keil5,不知道是否支持Keil4(如不行请手动新建Keil4工程)
1.单片机为STM32F103C8,采用硬件SPI
2.nRF24L01+采用3.3V供电,接线如下:
24L01+ STM32
CE —— PA3
CS —— PA4
SCK —— PA5
MISO —— PA6
MOSI —— PA7
IRQ未接(采用查询方式,如须用自加外部中断程序)
3.led灯为PC13控制,低电平亮(在User\led.c中修改GPIO);按键为PA0,按下后(接地)才开始发送,默认注释了,如需要可在程序中加上
4.My24L01_Tx为发送端程序,My24L01_Rx为接收端程序;
5.发送端约100ms发送一次,不要ACK;接收端每接收到一次led反转;将程序下载到单片机后可看到接收端led快速闪动,可将接收端的24L01在一定范围内走动,若led闪动变慢,则说明有丢包;led不闪,说明没有收到数据;因此大致可测得发送距离
6.24L01采用0频道,2Mbps, 0dBm, Address 3Bytes,实测距离大于10米(在不同的房间)
二、测试速率
0.软件为Keil5,不知道是否支持Keil4(如不行请手动新建Keil4工程)
1.单片机为STM32F103C8,采用硬件SPI
2.nRF24L01+采用3.3V供电,接线如下:
24L01+ STM32
CE —— PA3
CS —— PA4
SCK —— PA5
MISO —— PA6
MOSI —— PA7
IRQ未接(采用查询方式,如须用自加外部中断程序)
3.led灯为PC13控制,低电平亮(在User\led.c中修改GPIO);按键为PA0,按下后(接地)才开始发送!!!
4.My24L01_Tx为发送端程序,My24L01_Rx为接收端程序;
5.接收端先上电,发送端上电后按下按键后才发送50KB(32B一帧 共32*50帧 32*32=1024=1K),发送端收到ACK后才发下一帧,发完后进入死循环,如须再发要先复位或重新上电;接收端每收到一次led反转;(如未反转说明未成功发送,发送端接收端重新复位后再试)时间可看在接收程序中tim3Count(单位ms 16进制,定时器1ms中断)在Watch1中
6.发送端我用的是延时等待查询STATUS寄存器,用外部中断IRQ应该会更好(未测试)
7.24L01采用0频道,2Mbps, 0dBm, Address 3Bytes,实测速率约为50KB/s
1