转自--玻璃之城(http://www.amobbs.com/thread-5525592-1-1.html)

最近想做无线遥控,选用SI4432这个模块,因为这个芯片需要配置的寄存器比较多,调试的时候遇到了很多困难,在网上搜索了很久没找到几篇好的文章。曾多方求助,经过几天的努力终于将该模块调试成功。在此随笔写些调试的主要步骤希望给其他开始学SI4432的人一些帮助。另外,本人菜鸟一枚,写这篇文章目的在于避免其他新手像我一样无助,请大家多提宝贵意见,共同进步!欢迎转载。

好了,开始。
    一、无线模块选型。
    根据无线通讯的频段,平常用的无线模块主要有315MHZ,433MHZ,2.4GHZ。2.4G最近貌似比较火,像24L01,好多开发板上都配这一款芯片。433MHZ频段的模块常用的有NRF905、CC1101、SI4432。在315MHZ频段好像做普通的遥控器比较多,像超外差模块。
   本人想做无线通信,选择在2.4GHZ和433MHZ之间。说下区别,2.4G无线通信频率高、波长短、传输速率高、绕射能力差、通信距离短。网上卖的模块不加功率放大也就是一百米以内。433MHZ无线通信频率低、波长较长、传输速率低、绕射能力强、通信距离远。价格和2.4GHZ模块相当,但是距离一般在几百米甚至更远,据说加上功率放大可达一两千米。本人想用来遥控智能车,通信数据量不大,但是想让距离远一点。所以选择433MHZ模块,具体型号是SI4432。
   二、初次接触SI4432    
    该芯片价格低、传输距离远,网上用的人挺多的。曾经找过一些资料发现很多商业上的无线通信也是用这一款。于是在网上买了一对,加运费一共四十多。没有广告嫌疑,感兴趣自己搜。买回来之后开始看相关的手册和例程。我嘞个去,需要配置的寄存器真多,而且通讯速率、频段、前导码、同步字等等都是自己定义的,大家写的都不一样。加上没有专业的知识,更是加大难度。 卖家配的资料室51的版本,说实话程序写的有点乱,主要是因为他们的程序是配套他们的开发板的,有很多都看不懂。而对于我们初学者而言,最需要的却是最简单的:简单收发就行。我使用的控制器型号:STM32F103RB。分析了很久慢慢移植到STM32里面,失败。多次修改,失败。在网上搜索,网上虽然用的人多,但是资料甚少。而且一般都是51单片机驱动的,而且是虚拟SPI!然后是几天的调试,不多说。
    经过几天的调试,终于成功,下面说下使用这款芯片的要点。
   三、SPI
    我用的控制芯片是STM32F103RB。SPI可以软件模拟,也可以用硬件的。再次,建议大家用硬件的SPI,稳定,减少CPU负担。
    配置硬件SPI要点:
        1、速率不要太高,SI4432手册上说不要大于10MHZ。
        2、MOSI、MOSO、SCK三个引脚配置为复用功能推挽输出。
        3、SPI的时钟极性配置为:同步时钟的空闲状态为 低电平
        4、SPI的时钟的第2个跳变沿数据被采样。(SPI_CPHA)
        5、片选信号软件控制,自己定义一个IO空控制片选吧,方便。
   四、硬件连接
    STM32和SI4432硬件连接,具体看模块吧。我简单说几个比较重要的
        1、SI4432的SDN引脚,为高时:芯片停止工作。为低时:芯片允许工作。我买的模块里,这个引脚是被引出来的,别费劲了,直接接地,不要用IO口控制高低。高手略过。
        2、模块的引脚有些是2.54mm间距,有些是1.27mm。想DIY的朋友注意了,我当时就忘了结果买了个1.27mm的后来转接,麻烦了。
        3、尽量不要用杜邦线。我开始一直用杜邦线连起来,但是经常在发送和接收的时候出错,初始化正常。后来用洞洞板连起来,正常。
      4、SI4432是3.3V供电,电源线和地线尽量和STM32的3.3V和地线连在一起。不然的话容易出错,水平有限,不解释,等高人。
     五、软件调试
     1、SPI配置好以后,向SI4432写数据注意地址最高位置1。 如:SPI1_ReadWriteByte(addr|0x80)
    2、 配置好以后,向0X00、0X01、0X02地址读取,应该有返回值,具体看手册,如果和手册上的差不多就证明SPI通讯成功了。
     3、  前导码个数。SI4432_WriteReg(0x34, 0X0A);  0x34是向SI4432写入前导码的地址,0X0A是个数,但是表示其一半,也就是5个字节。
    4、刚开始,不要配置帧头。直接禁止    SI4432_WriteReg(0x32, 0x00 );// 禁止帧头
    5、SI4432有3个GPIO,一般自己是不用的,但是依然要配置,因为这个和模块相关。具体问卖家。
    6、SI4432主要三个状态:接收状态、发送状态、挂起状态。发送和接收之间可以相互转换、但是转换之前需要先进入挂起状态然后至少15ms之后再进入发送或者接收状态。程序while(1)之前最好开始就配置为挂起状态:SI4432_WriteReg(0x07, 0x01);
   六、一定要多看官方的程序设计指南和芯片的手册,我会放到附件里。
    以上算是对SI4432的初步认识和注意事项。但是这些细节是比较重要的,因为像这样的无线模块最主要是先实现通讯,高级的功能慢慢调。
   具体程序不再分析,我会放在附件里。STM32F103RB,库函数。测试多次,但是需要根据自己的模块进行调整。
   快毕业了,事多,时间有限,具体看程序,多调试,多看手册。
   欢迎多提意见,欢迎转载。
                                                                                                                    玻璃之城   20130325

分享调试SI4432的一些小经验相关推荐

  1. 分享调试SI4432的一些小经验(转)

    分享调试SI4432的一些小经验 最近使用 STM8F103 + SI4432 调无线,遇到问题不少,此处有参考过前辈的经验: 1.硬件把板给到我时USB烧录线带供电(5V),此供电接到LDO输出,就 ...

  2. 分享一点我自己的小经验:关于亚马逊测评礼品卡的问题!你知道都少?

    大家都知道亚马逊是全球最大的电商公司,它的shichang占有率高达全球电商的一半.并且在yi情期间也是增长迅速;而且它的利润高.shichang体量巨大越来越多的中国商家纷纷嗅到跨境电商的甜头入驻亚 ...

  3. 【云音乐】从手游APP到云音乐视频标签分类,时隔3个月再次面对多标签任务,终于摸索出了一些小经验。附自定义评估函数代码

    [云音乐]从手游APP到云音乐视频标签分类,时隔3个月再次面对多标签任务,终于摸索出了一些小经验. 前言 一个好用的评估函数 常用的多标签任务评估函数 我选择平均准确率 合理的特征处理和模型 特征处理 ...

  4. 分享几个Java面试小技巧,建议收藏!

    Java可谓编程界的元老,其资深地位无人撼动.那么学习Java的你,在面试时过五关斩六将还顺利吗?通常来讲,程序员的逻辑思维很清晰,在表达自我方面直接,但这在面试中可行不通,毕竟面试涉及到人际交流,所 ...

  5. android 启动service报错,Android小经验

    转载自:http://mp.weixin.qq.com/s?__biz=MzA4MjU5NTY0NA==&mid=404388098&idx=1&sn=8bbbba7692dc ...

  6. 海大计算机考研经验,关于考研中国海洋大学的一些小经验

    关于考研中国海洋大学的一些小经验 中国海洋大学 发布于2019年9月24日 01:07 阅读数 15809 16年考研老学姐~~ 前几天,18级一枚学妹问了些考研问题,我简单回答了一下,然后套用来分享 ...

  7. 面试字节跳动的一点小经验

    我在 2019 年 7 月 8 日入职了字节跳动,借着这次机会想与小伙伴们分享一下字节跳动的面试经验,希望对你有用. 通过本篇文章你将了解到: 应该抱着什么样的心态去大公司 加入字节跳动前我是如何做准 ...

  8. 建筑学可以保研计算机,经验分享 | 清华大学建筑学院保研经验

    原标题:经验分享 | 清华大学建筑学院保研经验 我现就读于北京林业大学园林学院,不久前获得免试保送研究生的资格并顺利通过清华大学建筑学院的录取资格考试,获得了拟接收函,我向大家分享一下准备保研考试的心 ...

  9. 企业微信的9个重要功能和7个小经验

    企业微信作为我们做私域流量.精细化运营客户的唯一选择,但是大冰发现大家对于企业微信的功能还不是很了解.于是我们提炼出了企业微信的9个重要功能.7个小经验,分享给大家. 企业微信的9个重要功能 1.客户 ...

最新文章

  1. js通过正则表达式解析xml 获取指定的内容
  2. 卷积神经网络四种卷积类型
  3. 【知识积累】随机数生成的几种方法
  4. Angular:where does watchers in scope come from
  5. IOS – OpenGL ES 调节图像色彩替换 GPUImageFalseColorFilter
  6. linux资源隔离是哪些,【转载】Linux cgroup资源隔离各个击破之
  7. 插件架构的原理及实现探讨
  8. 初二的孩子,开学考下滑得很厉害,怎么办?
  9. 二分查找在java中的实现
  10. labview温度报警系统
  11. android 电视安装apk文件损坏,安装电视软件时提示解析包出现问题怎么破?
  12. 最健康的饮料--茶的杂谈
  13. 获取验证码60秒倒计时js
  14. HPUACM暑期集训第二次积分训练赛 C——Simplest
  15. 网络路由器协议(OSPF、RIP、BGP、IGRP、IS-IS)
  16. win7删除计算机 网络打印机驱动程序,Windows 7、8 系统下手动删除打印机驱动程序的方法...
  17. vue视频播放 切换视频地址后还播放之前的路径视频
  18. 【PyG入门学习】三:信息传递机制
  19. DELPHI BULK INSERT
  20. 51nod 1113 矩阵快速幂 模板

热门文章

  1. MYSQL数据库下载安装(Windows版本)
  2. Java三类注释使用方法及注意事项
  3. 视频基础知识—720P/1080i/1080P
  4. 9*9数独问题——深度搜索算法
  5. “如果有借鉴意义的话” —— 从上帝视角复盘Offer选择
  6. 根据身份证解析出生年月
  7. ESP8266使用AT指令获取时间和心知天气
  8. 安装打印机显示域服务器不可用,Win7系统打印出错提示“Active Directory域服务当前不可用”怎么解决...
  9. 互联网晚报 | 10月10日 星期日 | 湖南卫视回应《快本》停播传言;淘特上线微信扫码付;SpaceX成全球第二大创业公司...
  10. js判断密码是否包含数字、大写字母、小写字母、特殊符号