查看: 26275|回复: 51

打通nRF51822低功耗蓝牙通信全过程分享

  [复制链接]
  • TA的每日心情
    开心
    2016-7-19 13:45
  • 签到天数: 53 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2015-10-27 18:14:57 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 qian.yao 于 2015-10-28 16:09 编辑

    站在物联网的风口,猪不是飞起来,是被吹起来,能不能安稳的落地,这就是另一码事了。

    作为刚毕业的新时代大学生,虽然对于前途很茫然,但是物联网的风已经把鄙人吹得凌乱了,不得不试着飞一下,因为我知道飞不高,摔得也不会很疼。

    看别人都在玩TI的,我就不和大众凑热闹了。
    我选定了nordic的nRF51822,然后就去某宝上面淘的一枚开发板来搞。

    ble开发板

    ble开发板


    拿到板子不会搞,咨询了官方客服,学习了半天SDK,好不容易才把开发环境搭好,如图:
    keil.png

    好了,开始编程,开始以为会需要研究好久的蓝牙的东西,学习了SDK的接口之后,仿照SDK里面提供的例程,
    也照猫画虎的写了一下简单的开关程序:

    #include "juma_sdk_api.h" //包含SDK头文件


    #define SWITCH_PIN 28 //定义开关的GPIO,开发板上面集成的MOS管
    #define SWITCH_LED 2 //定义指示灯,这个开发板上集成LED默认是2




    void ble_device_on_message(uint8_t type, uint16_t length, uint8_t* value) //设备收到信息的回调函数
    {
            switch(value[0])
            {
                    case 0:
                            gpio_write(SWITCH_PIN, 0); //0的话,拉低电平
                            break;
                    case 1:
                            gpio_write(SWITCH_PIN, 1); //1的话,拉高电平
                            break;
                    default:
                            break;
                   
            }
    }


    void ble_device_on_disconnect(uint8_t reason) //当蓝牙断开的时候的回调函数
    {
            ble_device_set_advertising_interval(250);  //重新设置广播周期
            ble_device_start_advertising();       //重新开启广播
            gpio_write(SWITCH_LED, 1);         //指示灯灭掉
    }


    void ble_device_on_connect(void) //当蓝牙连接上的时候的回调函数
    {
            gpio_write(SWITCH_LED, 0);  //指示灯亮起
    }


    void on_ready() //这个SDK把主函数写在了库文件里面,相当于往时间轴上面插任务,属于异步编程模式。
                            //这个函数是整个应用层代码的入口,也就是开发板上电的时候立即执行的函数。
    {
            ble_device_set_name("Test");                 //设置蓝牙开发板广播的名字,传说可以设置中文,不过需要编码我不会。。。
            ble_device_set_advertising_interval(250); //设置蓝牙广播周期
           ble_device_start_advertising();                 //开启蓝牙广播
            
            gpio_setup(SWITCH_PIN, GPIO_OUTPUT); //初始化开关控制引脚GPIO为输出模式
            gpio_setup(SWITCH_LED, GPIO_OUTPUT);//初始化指示灯引脚GPIO为输出模式
            gpio_write(SWITCH_LED, 1); //默认指示灯灭掉
    }

    很简单的几行代码,会点C语言就能写的来吧。。
    根本没涉及太高深的蓝牙的内容额。

    好了,写好嵌入式代码,开始接线,用一个Jlink,四根线咔咔咔几下接好,Vcc,GND,DIO,CLK接好是这样的:
    IMG_2738.jpg

    按照教程的烧录方法,把协议栈烧进去,然后把应用层代码烧进去。OK
    拿出来手机,我之前下载好了我比较熟悉的蓝牙测试工具LightBlue,有点丑。。。(不过他们官方也有自己调试工具,我还不会用)
    lightBlue.png

    点击连接,板子灯亮,连接成功
    IMG_2739.jpg

    后续控制什么,我还没找到家里可以拆电器的,风扇,电灯都是我的目标,等以后买个继电器再搞吧,至少到现在,蓝牙是可以通信了。小伙伴们,分享到这里吧,坐的屁股痛了,出去约跑了。

    SDK的网页介绍:www.juma.io/doc/zh/introduction/index.html
    蓝牙板子链接:https://shop123943370.taobao.com
    有兴趣的联系我Q:544472800
    蓝牙干货分享交流群:489465332


    附送一些资料以防有人空手而归,那就不是我码字的目的了
    nRF51822库函数表.pdf (85.57 KB, 下载次数: 177, 售价: 1 与非币)

    评分

    参与人数 1声望 +5 与非币 +5 收起 理由
    shaoziyang + 5 + 5 很给力!

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-12-1 10:07
  • 签到天数: 1617 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2015-10-28 08:53:00 | 显示全部楼层

    回帖奖励 +1 与非币

    很详细。   
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-7-19 13:45
  • 签到天数: 53 天

    连续签到: 1 天

    [LV.5]常住居民I

     楼主| 发表于 2015-10-28 11:24:32 | 显示全部楼层
    shaoziyang 发表于 2015-10-28 08:53
    很详细。

    谢谢  如果时间多的话,我后面会分享一些开发过程中的细节
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-12-1 10:07
  • 签到天数: 1617 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2015-10-28 13:27:17 | 显示全部楼层
    qian.yao 发表于 2015-10-28 11:24
    谢谢  如果时间多的话,我后面会分享一些开发过程中的细节

    期待续集了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-5-11 10:52
  • 签到天数: 30 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2015-11-2 14:52:55 | 显示全部楼层
    看见中间大片的涂鸦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-11-18 11:51
  • 签到天数: 18 天

    连续签到: 2 天

    [LV.4]偶尔看看III

    发表于 2015-11-5 08:29:25 | 显示全部楼层
    好东西,看看先,谢谢分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-11-6 14:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2015-11-6 14:23:25 | 显示全部楼层
    不错,正好看看
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-11-17 11:57
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2015-11-17 11:55:47 | 显示全部楼层
    不错,希望能下到想要的资料。谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-11-25 22:56:04 | 显示全部楼层
    下资料看看先
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-12-1 09:54:29 | 显示全部楼层
    资料很不错,赞
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-27 10:39 , Processed in 0.236432 second(s), 38 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.