stm32上NRF24L01无法通信的问题。。
2016-04-04 16:33
218 查看
之前早就用过这个模块, 但是最近用的时候,反复的调,,就是不能通信,,调了两天,终于调出来了,, 找到了问题所在。。。。
在stm32上面驱动NRF24L01,,需要初始化IO口,初始化SPI,配置NRF的寄存器,配置发送接收模式,最后调用发包收包函数就行了。
假如SPI的速度太快,,会导致NRF不正常,,无法读写寄存器。。
当程序下载到stm32上后,按复位键的次数不能太多,如果太多,会导致NRF不正常,无法通信,, 完全把供电去掉,然后通电,NRF才会正常。。。
搞了两天, 只搞出来了两句话。。。
最近又发现一个关于NRF的问题,,,我用的网上的一个程序, ,其中有一个函数是用来检测NRF的,, 检测的方法就是写入寄存器,再读出来,, 如果读出的数据与写入的相同,则表示有NRF存在。。。 这个写入的寄存器,,正是发送通道的地址。。。如果检测时,与初始化的时候不同,, 那就废了,, NRF一直不通信,检查好长时间也检查不出来程序哪个地方有问题。。。。
如图所示:
在stm32上面驱动NRF24L01,,需要初始化IO口,初始化SPI,配置NRF的寄存器,配置发送接收模式,最后调用发包收包函数就行了。
假如SPI的速度太快,,会导致NRF不正常,,无法读写寄存器。。
当程序下载到stm32上后,按复位键的次数不能太多,如果太多,会导致NRF不正常,无法通信,, 完全把供电去掉,然后通电,NRF才会正常。。。
搞了两天, 只搞出来了两句话。。。
最近又发现一个关于NRF的问题,,,我用的网上的一个程序, ,其中有一个函数是用来检测NRF的,, 检测的方法就是写入寄存器,再读出来,, 如果读出的数据与写入的相同,则表示有NRF存在。。。 这个写入的寄存器,,正是发送通道的地址。。。如果检测时,与初始化的时候不同,, 那就废了,, NRF一直不通信,检查好长时间也检查不出来程序哪个地方有问题。。。。
如图所示:
相关文章推荐
- JAVA中的成员变量与局部变量
- lua面向对象封装及元表(metatable)性能测试
- java 访问权限控制
- Leetcode 7. Reverse Integer(python)
- 函数库调用和系统调用的区别
- 操作系统的内存对齐机制学习笔记
- poj2342&hdu1520Anniversary party【树型dp模板题】
- 状态模式
- ural 1126
- hdu 5649 DZY Loves Sorting(二分+线段树)
- spring 事物
- 三连击(升级版)
- GDOI2013 整数分拆
- 操作系统与c语言
- Hdu 2104 hide handkerchief
- hdoj 1437 天气情况 【概率dp】
- nginx日志管理
- AutoCAD 2016 制图软件
- bzoj 1030: [JSOI2007]文本生成器
- hdoj 1426 Sudoku Killer【数独】