基于stm32的遥控小船(二)NRF24L01无线模块

来源:互联网 发布:英雄联盟登录网络错误 编辑:程序博客网 时间:2024/04/28 01:37

无线收发数据我用的模块是NF24L01……这个模块小巧而便宜……几个引脚如图……功能大概是这样的


CSN:片选,电平为低时芯片工作

CECSN为低时控制CE状态

SCKSPI时钟

MOSIMaster output slave input

MISOMaster input slave output

IRQ:中断,低电平触发(发送完成,接收数据,达到最大重发次数时触发)

  关于这个模块详细的可以参照《NRF24L01学习笔记》……写的很全面详尽……

  调无线对我来说是一个比较痛苦的过程……我有一块野火的stm32vet6mini板,模块没有ISO那么全,但也是“万事俱备只欠模块”的学习板,我需要做的就是把这个例程移植到从机(RBT6)上并加以修改,这可难倒我了。当时我想,反正是同一系列芯片,引脚功能大体相同,我这边连PA0那边也接PA0不就好了……那么问题来了,VET6是个大板一共100个引脚,而RBT6只有64个脚还未完全引出,板子上根本没有PDX,PEX等等,无处可连!

  那么怎么办呢?查数据手册!表格里给出了引脚的名称,功能,复用功能,所以我只需要找到相同的功能然后连接就可以了,NSSSCKMISOMOSI两块板上对应的均为PA4PA5PA6PA7。查了每个引脚的功能之后,我们还剩下PE5PE6CE,CSN)没有解决……


  例程里采用的是软件模拟SPI,所以我就找了两个这次用不到的引脚♪(^^*),连线完成!

  我改好程序之后思路大概是这样的,连上矩阵键盘之后检测按键,当有某个按键按下时发送一个u8数组里的所有元素给从机,从机接受到数据之后进行相应处理,来决定PWM的占空比。

  在调试的时候又出现了一个问题:无论主机是否工作,从机都会在串口上打印出收到的数据为255 255 255 255。最开始我觉得可能是由于数据格式不对而产生了溢出,但后来发现我把主机和从机的模块调换一下,就会变成主机接受到从机端的数据为255255,255,255

  于是我确定了这是模块的问题!估计是在接线换线过程中把模块烧坏了,所以一直读出高电平的数据,换了个模块之后发送就正常了~



0 0
原创粉丝点击