OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6224|回复: 10

NRF905无线模块程序。

[复制链接]

13

主题

206

帖子

1

精华

高级会员

Rank: 4

积分
613
金钱
613
注册时间
2014-10-26
在线时间
32 小时
发表于 2015-8-9 14:06:02 | 显示全部楼层 |阅读模式
      不知不觉,两年一度的全国电子设计竞赛又要来了,前几天出了原件清单,发现有无线模块,然后我立马对24l01写一个实时性程序(IRQ中断触发),搞了大半天,发现IRQ引脚居然不发生电平跳变,分析有两个原因(至今不知道是哪个):1.只要24l01+型才能有中断触发功能,2.程序不对。    个人认为前者可能性较大,希望以后谁写出24l01中断接收的程序分享下(我已经发帖求助),      
       正好手上有两块NRF905,又搞了两天,网上资料又少,困难重重,出不了效果,今天沉下心来分析,发现高级单片机在某些程序需要小延时(如图),终于调出了效果,用的是SPI硬件传输数据,主循环查询方式,以后会更新个接收中断查询。现在分享给大家。



又花了半天时间做出了中断接收版本,主机按键一次发送一次数据,从机接收到数据进入中断读取。提高了实时性。

stm32_NRF905.rar

4.51 MB, 下载次数: 3246

stm32_NRF905(更新版).rar

6.77 MB, 下载次数: 14254

学习!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-8-9 22:02:15 | 显示全部楼层
不错,谢谢分享。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2011-6-2
在线时间
0 小时
发表于 2015-8-21 18:01:48 | 显示全部楼层
谢谢楼主, 赞美楼主.
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2016-5-17
在线时间
8 小时
发表于 2016-5-31 16:03:13 | 显示全部楼层
下载了
回复 支持 反对

使用道具 举报

8

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-6-29
在线时间
34 小时
发表于 2016-7-16 10:54:44 | 显示全部楼层
谢谢,楼主分享,对了,问一下楼主,我现有一个项目需要用到无线模块通讯,点对点的通讯,一帧数据10个字节 每个字节10位,从机从发送一帧数据到主机接收到一帧数据,要在1-10ms内完成,请问我该用什么无线模块符合,可以是蓝牙也可以是wifi,,只要符合就行,对了无线模块接口是选spi好还是串口的好?
回复 支持 反对

使用道具 举报

20

主题

65

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2016-11-3
在线时间
79 小时
发表于 2017-7-4 15:50:05 | 显示全部楼层
多谢
回复 支持 反对

使用道具 举报

6

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2018-3-26
在线时间
107 小时
发表于 2018-5-16 14:48:18 | 显示全部楼层
楼主,怎么测试啊,我怎么测试不成功啊
回复 支持 反对

使用道具 举报

6

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2018-3-26
在线时间
107 小时
发表于 2018-5-17 15:53:43 | 显示全部楼层
楼主为什么接收到的数据是随机的呢?不知道是哪里的问题
回复 支持 反对

使用道具 举报

9

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2018-3-28
在线时间
16 小时
发表于 2018-5-31 22:04:59 | 显示全部楼层
谢谢............
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-1-30
在线时间
14 小时
发表于 2018-10-21 13:49:05 | 显示全部楼层
楼主的程序是不是有点BUG?
uint8_t NRF_RW(uint8_t date)
{
        CSN_LOW();
        delay_ms(1);
//                printf("\r\n通信检测1\r\n");
                while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE) == RESET);//等待发送缓冲器为空
//                printf("\r\n通信检测2\r\n");
                SPI_I2S_SendData(SPI1,date);
//                printf("\r\n通信检测3\r\n");
                while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE)== RESET);//等待接收缓冲区为非空
//                printf("\r\n通信检测4\r\n");
                CSN_HIGH();   //这条语句是不是改写在这里呢?不然放下面都返回了,怎么执行呢
                return  SPI_I2S_ReceiveData(SPI1);

       
}
回复 支持 反对

使用道具 举报

0

主题

91

帖子

0

精华

初级会员

Rank: 2

积分
177
金钱
177
注册时间
2018-9-27
在线时间
15 小时
发表于 2018-10-22 09:57:28 | 显示全部楼层
谢谢搂猪
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 09:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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