用SEGGER Embedded Studio(SES)开发蓝牙nRF52840
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相关推荐
- nRF51822:在 macOS 下使用 SEGGER Embedded Studio(SES)搭建开发环境
系统环境 系统:macOS 10.13.6(Windows 和 Linux 同样适用) 网络:联网 软件环境(只能保证这个版本环境好用) 编译器环境:SEGGER Embedded Studio v3 ...
- nRF52832:在 macOS 下使用 SEGGER Embedded Studio(SES)搭建开发环境
系统环境 系统:macOS 10.14.5(Windows 和 Linux 同样适用) 网络:联网 软件环境 编译器环境:SEGGER Embedded Studio v4.16(SES) 镜像烧录器 ...
- nRF52832:使用 SEGGER Embedded Studio(SES)创建库文件
系统环境 系统:macOS 11.2 网络:联网 软件环境 编译器环境:SEGGER Embedded Studio v5.40(SES) 镜像烧录器:nRF Connect v3.6.1 仿真器驱动 ...
- HPM6750系列--第五篇 使用Segger Embedded Studio for RISC-V开发环境
一.目的 之前的博文中<HPM6750系列--第四篇 搭建Visual Studio Code开发调试环境>我们介绍了如何使用visual studio code进行开发调试,但是用起来总 ...
- 华大 MCU 之六 SEGGER Embedded Studio 及 Ozone 使用 Jlink 调试
首先说一下,我之前的开发流程是:VSCode 编辑代码 + Keil 编译及调试.Keil 的调试功能虽然很强大,但是多数功能需要配合 ARM 自家的 ULINKpro 才可以用,例如 Perfo ...
- Getting Started with STM32 in Segger Embedded Studio
初识Segger Embedded Studio(SES) 第一次见SES是在"安富莱电子论坛"上,"硬汉"提到SES的一些特性,再加上Jlink的大名,于是试 ...
- Segger Embedded Studio 软件下载和工程配置
软件下载 Embedded Studio下载地址:https://www.segger.com/downloads/embedded-studio/ 下载完主程序,还需要在官网下载待开发器件对应的库函 ...
- Android Studio开发——蓝牙聊天功能
Android Studio开发--蓝牙聊天功能 蓝牙工作流程 功能要求 实现要点 声明蓝牙权限 添加程序运行的状态描述文本及配色代码 布局文件 蓝牙会话的服务组件ChatService Activi ...
- Android Studio开发蓝牙应用(二)
Android Studio开发蓝牙应用(二) 实现的功能 与蓝牙模块HC-06交换信息 过程 新建Empty Activity 创建布局 activity_btread_and_write.xml ...
最新文章
- 用rand_7()实现rand_10()
- python web为什么不火_如何用纯 Python 写交互式 Web 应用?
- 【高精】Oliver的成绩(jzoj 2008)
- flutter从0到1构建大前端应用 pdf_前端骨架屏都是如何生成的
- 对数据仓库进行数据建模_确定是否可以对您的数据进行建模
- 前端学习(3325):Mdn说闭包
- Coursera自动驾驶课程第1讲:Welcome to the self-driving cars specialization
- 关于DG32f103C8T6 不启动的问题-调试可以运行自启动不行
- 80X86寄存器介绍
- 麻省理工 城市规划 计算机,麻省理工学院建筑设计与城市规划科研
- android h5 保存通讯录,h5+调用系统通讯录
- 怎么下载正版java7_Java7中jdk的下载和安装
- 2018腾讯实习生招聘笔试题
- 转帖(http://hi.baidu.com/johnehuang/blog/item/e1e96782a4b04e97f703a6dc.html)
- win8无权限访问这台计算机,win8电脑IPv4显示无internet访问权限的解决方法
- python笛卡尔坐标系_THREE笛卡尔右手坐标系详解
- MySQL安装2出现Typical_Mysql安装 - osc_c7lpn2ge的个人空间 - OSCHINA - 中文开源技术交流社区...
- 微软2013暑假实习生笔试题解析
- python如何赋值给元组_【Python 1-9】Python手把手教程之——元组和元组的使用技巧...
- [转]React 入门实例教程
热门文章
- 2011年5月5日日志
- 站在原地就是退步——除了死磕通道,云通讯服务商还该做些什么?
- 揭秘5G,带你了解通信发展
- 我的世界东方系列服务器,minecraft我的世界幻想乡服务器启动器
- PCIe学习笔记之MSI/MSI-x中断及代码分析
- w7计算机读条,win7设备和打印机一直读条如何解决
- 不到一年就被百度资讯流超过?!今日头条还能坚持不站队吗?
- 面试流程及常见面试题
- IDEA查找关键字快捷键,很实用。
- Diffie-Hellman Key Agreement Protocol 资源管理错误漏洞(CVE-2002-20001)(原理扫描)