zoukankan      html  css  js  c++  java
  • 基于stm32的遥控小船(二)NRF24L01无线模块

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

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

    CE:CSN为低时控制CE状态

    SCK:SPI时钟

    MOSI:Master output slave input

    MISO:Master input slave output

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

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

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

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

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

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

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

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

  • 相关阅读:
    jQuery点击弹出遮罩层(弹出模态框),点击模态框消失
    ubuntu delect opencv
    protobuf安装
    caffe中使用matlab接口
    protobuf安装
    caffe安装2
    caffe安装1
    PHP学习笔记,js
    PHP学习笔记-动态属性添加
    Ubuntu14.04安装Moodle
  • 原文地址:https://www.cnblogs.com/ldgforever/p/5854191.html
Copyright © 2011-2022 走看看