查看: 2001|回复: 0

教你如何打通nRF51822低功耗蓝牙通信

[复制链接]

该用户从未签到

发表于 2015-11-10 11:03:02 | 显示全部楼层 |阅读模式
分享到:
选定了nordic的nRF51822,然后就去某宝上面淘的一枚开发板来搞。

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

好了,开始编程,开始以为会需要研究好久的蓝牙的东西,学习了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接好是这样的:

按照教程的烧录方法,把协议栈烧进去,然后把应用层代码烧进去。OK
拿出来手机,我之前下载好了我比较熟悉的蓝牙测试工具LightBlue,有点丑。。。

点击连接,板子灯亮,连接成功

后续控制什么,我还没找到家里可以拆电器的,风扇,电灯都是我的目标,等以后买个继电器再搞吧,至少到现在,蓝牙是可以通信了。
回复

使用道具 举报

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

本版积分规则

关闭

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

手机版|小黑屋|与非网

GMT+8, 2024-4-27 04:44 , Processed in 0.111369 second(s), 17 queries , MemCache On.

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

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.