0. 准备

WIN10电脑一台
nrf52840开发板一套(其实如果基本蓝牙功能的话,nrf52832也行,有更小的成本)。nrf52840集成了2.4GHz的各种协议,但还是蓝牙功能比较完善。
仿真器最好用jlink v9

1. download nrf5 sdk

这个sdk解压后可以用常用的ide开发单片机。
https://www.nordicsemi.com/Software-and-tools/Software/nRF5-SDK/Download#infotabs

2. SEGGER Embedded Studio(SES)

SEGGER是jlink的公司,SES是这家公司的单片机开发环境。nrf52系列的单片机,基本国内常用的就是keil和ses了。keil需要license,ses开发nrf52840可以免license费用,只要上网申请一下,填写用户名公司电脑MAC等资料即可获得许可。
https://www.segger.com/downloads/embedded-studio

3. 运行demo

3.1 命令行交互
下载nRF5_SDK_17.0.2_d674dde\examples\ble_central_and_peripheral\experimental\ble_app_interactive可以通过串口使用命令行调用蓝牙的大部分功能

3.2 蓝牙鼠标实现移动和点击
官方demo自带鼠标移动的实例:
HID Mouse Application
https://infocenter.nordicsemi.com/index.jsp?topic=%2Fstruct_nrf5gs%2Fstruct%2Fnrf5gs.html&cp=1

这行是往下移动MOVEMENT_SPEED个像素的函数:mouse_movement_send(0, MOVEMENT_SPEED);

参考资料1中看到了鼠标点击需要修改输入函数:

mouse_buttons_send(1,0,0);//鼠标左键
mouse_buttons_send(0,0,0);//释放按键
mouse_buttons_send(1, 0, 0);//left
mouse_buttons_send(2, 0, 0);//right
mouse_buttons_send(4, 0, 0);//middle
mouse_buttons_send(0, 0, 0);//cancel
static void mouse_buttons_send(int8_t click, int8_t wheel, int8_t pan)
{uint32_t err_code;uint8_t buffer[INPUT_REP_BUTTONS_LEN];APP_ERROR_CHECK_BOOL(INPUT_REP_BUTTONS_LEN == 3);NRF_LOG_INFO("mouse_buttons_send\r\n");buffer[0] = click;buffer[1] = wheel;buffer[2] = pan;err_code = ble_hids_inp_rep_send(&m_hids,INPUT_REP_BUTTONS_INDEX,INPUT_REP_BUTTONS_LEN,buffer,m_conn_handle);if ((err_code != NRF_SUCCESS) &&(err_code != NRF_ERROR_INVALID_STATE) &&(err_code != NRF_ERROR_RESOURCES) &&(err_code != NRF_ERROR_BUSY) &&(err_code != BLE_ERROR_GATTS_SYS_ATTR_MISSING)){APP_ERROR_HANDLER(err_code);}
}

4. 下载

ses准备链接jlink,发现no idcode found
排查原因,原来是线没接好。这个要接好JLINK到单片机的SWD四根线,USB连JLINK和电脑。然后Target ---> Download ... 即可实现下载。SES已经集成了jlink驱动,一般不会出现其他问题。

备注:注意nRF5 sdk中,如果自己的板子不匹配官方开发板,那么是需要修改引脚号的
开发板                        官方编号            芯片
nRF52840 DK            PCA10056            nRF52840
nRF52840 Dongle        PCA10059            nRF52840
nRF52 DK                    PCA10040            nRF52832/nRF52810
nRF51 DK                   PCA10028            nRF51422
nRF51 Dongle            PCA10032            nRF51422

参考资料1:nRF52832 — 基于HID实现鼠标的左击、右击和滚轮,https://blog.csdn.net/zhanghuaishu0/article/details/81783044
参考资料2:Nordic Semiconductor Infocenter

用SEGGER Embedded Studio(SES)开发蓝牙nRF52840相关推荐

  1. nRF51822:在 macOS 下使用 SEGGER Embedded Studio(SES)搭建开发环境

    系统环境 系统:macOS 10.13.6(Windows 和 Linux 同样适用) 网络:联网 软件环境(只能保证这个版本环境好用) 编译器环境:SEGGER Embedded Studio v3 ...

  2. nRF52832:在 macOS 下使用 SEGGER Embedded Studio(SES)搭建开发环境

    系统环境 系统:macOS 10.14.5(Windows 和 Linux 同样适用) 网络:联网 软件环境 编译器环境:SEGGER Embedded Studio v4.16(SES) 镜像烧录器 ...

  3. nRF52832:使用 SEGGER Embedded Studio(SES)创建库文件

    系统环境 系统:macOS 11.2 网络:联网 软件环境 编译器环境:SEGGER Embedded Studio v5.40(SES) 镜像烧录器:nRF Connect v3.6.1 仿真器驱动 ...

  4. HPM6750系列--第五篇 使用Segger Embedded Studio for RISC-V开发环境

    一.目的 之前的博文中<HPM6750系列--第四篇 搭建Visual Studio Code开发调试环境>我们介绍了如何使用visual studio code进行开发调试,但是用起来总 ...

  5. 华大 MCU 之六 SEGGER Embedded Studio 及 Ozone 使用 Jlink 调试

      首先说一下,我之前的开发流程是:VSCode 编辑代码 + Keil 编译及调试.Keil 的调试功能虽然很强大,但是多数功能需要配合 ARM 自家的 ULINKpro 才可以用,例如 Perfo ...

  6. Getting Started with STM32 in Segger Embedded Studio

    初识Segger Embedded Studio(SES) 第一次见SES是在"安富莱电子论坛"上,"硬汉"提到SES的一些特性,再加上Jlink的大名,于是试 ...

  7. Segger Embedded Studio 软件下载和工程配置

    软件下载 Embedded Studio下载地址:https://www.segger.com/downloads/embedded-studio/ 下载完主程序,还需要在官网下载待开发器件对应的库函 ...

  8. Android Studio开发——蓝牙聊天功能

    Android Studio开发--蓝牙聊天功能 蓝牙工作流程 功能要求 实现要点 声明蓝牙权限 添加程序运行的状态描述文本及配色代码 布局文件 蓝牙会话的服务组件ChatService Activi ...

  9. Android Studio开发蓝牙应用(二)

    Android Studio开发蓝牙应用(二) 实现的功能 与蓝牙模块HC-06交换信息 过程 新建Empty Activity 创建布局 activity_btread_and_write.xml ...

最新文章

  1. 用rand_7()实现rand_10()
  2. python web为什么不火_如何用纯 Python 写交互式 Web 应用?
  3. 【高精】Oliver的成绩(jzoj 2008)
  4. flutter从0到1构建大前端应用 pdf_前端骨架屏都是如何生成的
  5. 对数据仓库进行数据建模_确定是否可以对您的数据进行建模
  6. 前端学习(3325):Mdn说闭包
  7. Coursera自动驾驶课程第1讲:Welcome to the self-driving cars specialization
  8. 关于DG32f103C8T6 不启动的问题-调试可以运行自启动不行
  9. 80X86寄存器介绍
  10. 麻省理工 城市规划 计算机,麻省理工学院建筑设计与城市规划科研
  11. android h5 保存通讯录,h5+调用系统通讯录
  12. 怎么下载正版java7_Java7中jdk的下载和安装
  13. 2018腾讯实习生招聘笔试题
  14. 转帖(http://hi.baidu.com/johnehuang/blog/item/e1e96782a4b04e97f703a6dc.html)
  15. win8无权限访问这台计算机,win8电脑IPv4显示无internet访问权限的解决方法
  16. python笛卡尔坐标系_THREE笛卡尔右手坐标系详解
  17. MySQL安装2出现Typical_Mysql安装 - osc_c7lpn2ge的个人空间 - OSCHINA - 中文开源技术交流社区...
  18. 微软2013暑假实习生笔试题解析
  19. python如何赋值给元组_【Python 1-9】Python手把手教程之——元组和元组的使用技巧...
  20. [转]React 入门实例教程

热门文章

  1. 2011年5月5日日志
  2. 站在原地就是退步——除了死磕通道,云通讯服务商还该做些什么?
  3. 揭秘5G,带你了解通信发展
  4. 我的世界东方系列服务器,minecraft我的世界幻想乡服务器启动器
  5. PCIe学习笔记之MSI/MSI-x中断及代码分析
  6. w7计算机读条,win7设备和打印机一直读条如何解决
  7. 不到一年就被百度资讯流超过?!今日头条还能坚持不站队吗?
  8. 面试流程及常见面试题
  9. IDEA查找关键字快捷键,很实用。
  10. Diffie-Hellman Key Agreement Protocol 资源管理错误漏洞(CVE-2002-20001)(原理扫描)