蓝桥杯单片机国赛客观题_如何基于NRF24L01进行单片机间的时间同步

1f060250fa4795d93e310b302539da2e.png

点击上方「电子菌」关注我们

408bef31a9bd3135c9c7ecaeba5d2531.gif nRF24L01同时支持250kbps和1Mbps的传输速率,当其它应用参数一致时,两种数据传输速率实际测的通讯距离相差很大。低速率的250kbps通讯距离至少在高速率的1Mbps的2倍以上。传输速率又与时间有关,那么,时间的同步有2个方法,分别是: 测量和计算。 测量法简单而精确。稍稍改改程序,利用空余IO直接有线互连来做同步,发送侧在发送第一个字节前使IO状态反转,接收侧据此开始计时,待收到所有数据后结束计时,由此即可准确获知延时。   计算法不用改程序,甚至不用测试,直接根据指令执行时间和空速计算,但前提是你必须用汇编编程,高级语言是无法根据程序准确计算执行时间的。

往期精彩回顾

【1】电子菌11月送开发板活动开始——暨开源征集令【2】蓝桥杯电子组视频教程通知【3】蓝桥杯单片机省赛--第11届--客观题【4】蓝桥杯嵌入式国赛--第10届--客观题【5】蓝桥杯单片机国赛--第10届--程序题

扫描右侧二维码

申请试用开发板

电子菌

64b56a524e20ba61756e05c914d5b596.png 9af3da182fd313adeaf0ae4044300acd.png如果不转发,那就点赞与好看吧!
一、测试距离 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值