![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Nordic
文章平均质量分 55
黑刀夜
嵌入式从业者
展开
-
BLE的传输速率
主设备端向从设备传输数据,为了达到最大的传输速率可以采用write cmd(写命令,无需从设备回应)方式向从设备写数据;从设备向主设备发送数据,为了达到最大的传输速率可以使用Notification(通知,无需主设备回应)本文代码以nordic平台为例进行说明影响传输速率的主要因素连接间隔连接间隔传输的数据包数量数据包大小1 连接间隔如果启用了CLE(不受单个连接间隔内,只能发送 4~6个数据包的限制),因此只需要选择一个合适的连接间隔即可,无须使用低功耗蓝牙5.x协议栈中的最小连接间隔(原创 2022-05-11 23:59:22 · 2665 阅读 · 0 评论 -
52840开发板无法烧录程序问题
前段时间在使用nrf52840的开发板调试程序的时候遇到一个问题,开发板可以被识别成jlink,但就是不能烧录程序。解决办法:下载最新jlink固件 https://nsscprodmedia.blob.core.windows.net/prod/software-and-other-downloads/dev-kits/nrf5x-dk-files/j-link-ob-sam3u128-v2-nordicsemi-170724.bin按着复位按键,然后上电。此时在电脑上会出现一个 名字为BO原创 2022-02-22 10:38:50 · 1230 阅读 · 0 评论 -
softdevice和应用程序之间的交互
一 softdevice介绍softdevice是预先编译好的二进制文件,被烧录在0地址处。softdevice是通过SVC中断和软中断来实现与应用程序交互的。一 应用程序调用softdevice中的方法应用程序通过SV calls调用softdevice中的方法。SVC、事件和选项编号被分成每个 API 模块的子范围。 每个模块接收其整个分配的 SVC 调用范围,无论是否实现,但对于在其范围内未实现或未定义的调用返回 BLE_ERROR_NOT_SUPPORTED。使用连接函数来说明SVC的原创 2021-12-13 16:59:55 · 1209 阅读 · 0 评论 -
nRF52833 USB Dfu cause hash not match issue.
sdk: 17.0.2chip: nRF52833使用nRF52833做dongle,通过usb_serial进行升级时提示hash值不匹配NordicSemiException('Extended Error 0x{:02X}: {}'.format(resp[3], data))pc_ble_driver_py.exceptions.NordicSemiException: Extended Error 0x0C: The hash of the received firmware imag.原创 2021-12-09 17:42:45 · 1208 阅读 · 0 评论 -
通过Jlink和PyLink读取蓝牙mac地址--Nordic&silicon labs
本文介绍在不开机的情况下读取蓝牙的mac地址,这里介绍两个平台,Nordic和Silicon Labs。1. 通过Jlink Commander工具连接上目标板选择当前芯片的型号2. 使用mem命令查看mac地址首先需要知道mac地址存储在芯片的哪个地址。Nordic:寄存器DEVICEADDRTYPE的第一个bit代表mac地址的类型,这里为1。DEVICEADDR[0]和DEVICEADDR[1]的低16bit代表了MAC地址,其中DEVICEADDR[1]的第15位应该或上DE原创 2021-09-03 16:13:34 · 1160 阅读 · 0 评论 -
Nordic PWM初始化导致P0.0异常
NRF 52833sdk 17.0.2问题描述工程需要配置一路PWM,当配置完PWM之后导致P0.0一直处于高电平。板子使用的是内部RC没有外接低速时钟。问题原因在初始化PWM的时候,没有把未使用的通道设置成 NRF_DRV_PWM_PIN_NOT_USED。因为未使用的通道其值默认为0, 0也就是P0.0了。解决方案在初始化PWM的时候,将未使用的通道设置成 NRF_DRV_PWM_PIN_NOT_USED即可。...原创 2021-07-30 11:39:47 · 302 阅读 · 0 评论 -
nordic 16.0的sdk编译不过的问题解答
随便打开一个16.0的demo使用keil编译,一打开是这样的。提示没有安装NordicSemiconductor.nRF_DeviceFamilyPack_NordicLicense.8.27.0,然而更加不幸的是8.27.0版本的包官方已经下载不到了。从下面两个官方提供的地址都下载不到8.27.0的包,http://developer.nordicsemi.com/nRF51_SDK/pieces/nRF_DeviceFamilyPack/https://www.keil.com/dd2/Pa原创 2021-05-26 15:49:20 · 669 阅读 · 0 评论 -
NRF52 开启读保护
读保护作用防止第三方使用调试接口读取flash中的内容。开启读保护的三种方式在代码中开启读保护在APPROTECT的低8位写0表示开启读保护。在工程中的任意源文件中加入如下代码。const uint32_t UICR_APPROTECT __attribute__((at(0x10001208))) __attribute__((used)) = 0xFFFFFF00;使用批处理烧录在烧录hex文件之后执行命令:nrfjprog --rbp使用nRFgo Studio在烧录原创 2021-02-02 19:52:42 · 1785 阅读 · 0 评论 -
Nordic开发中的一些名词
1 Softdevice刚入手Nordic开发的时候经常看到这个单词Softdevice,一直没搞明白是指什么,后来查资料可知:Softdevice是Nordic蓝牙协议栈的名称原创 2019-12-25 19:20:21 · 563 阅读 · 0 评论 -
Nordic的sdk和蓝牙协议栈的命名规则
Softdevice命名规则一Softdevice包括两种底层协议栈:BLE和ANT,BLE包括两种角色:central(又称master)和peripheral(又称slave),为此需要给这些不同类型的协议栈进行命名区分。协议栈命名格式为Sxyz,其中x – 表示协议栈的类型,1表示BLE协议栈,2表示ANT协议栈,3表示同时支持BLE和ANTy – 表示BLE角色,1表示从设备,2表...原创 2019-12-28 14:36:41 · 1696 阅读 · 0 评论 -
nordic蓝牙协议栈初始化卡死的问题
把应用程序从sdk14.0迁移到15.3的过程中,出现一个问题。代码全部移植完之后,编译通过。在运行的时候每次都卡死在使能协议栈的函数里面。ret_code_t nrf_sdh_enable_request(void){ ...... nrf_clock_lf_cfg_t const clock_lf_cfg = { .source = N...原创 2019-12-31 10:11:05 · 2935 阅读 · 5 评论 -
nordic设备做主机发现服务失败
现象: 设备做为主设备,去连接从设备。每次都可以连接上,但是在发现服务的过程中出错。static uint32_t service_discover(client_t * p_client){ uint32_t err_code = NRF_SUCCESS; p_client->state = STATE_SERVICE_DISC; if(p_client...原创 2020-01-02 11:42:05 · 738 阅读 · 0 评论 -
Nordic52832 数据手册翻译(部分)
免责说明: 本人才疏学浅,翻译不保证正确,仅供参考20 GPIO 通用输入输出通用输入/输出(GPIO)被指定到一个端口,最多具有32个I/O(取决于封装),从而可以通过一个端口访问和控制多达32个引脚。 每个GPIO均可单独访问。GPIO具有以下用户可配置的功能:多达32个GPIO8个带模拟通道的GPIO,用于SAADC,COMP或LPCOMP输入驱动的输出强度可配置内部上拉和下拉电阻从所有引脚上的高电平或低电平触发中唤醒任何引脚上的状态变化都可以触发中断PPI任务/事件系统可以使用翻译 2020-05-15 19:11:55 · 2373 阅读 · 0 评论 -
基于nordic平台创建一个新model过程
一 创建新model的步骤本指南介绍了如何创建新model的基础知识。您可以实现自己的自定义模型,该模型将使您的设备能够提供自定义状态和行为,而这些状态和行为未包含在已定义的标准模型中。Bluetooth mesh model APIs,可以参考:mesh models api自定义model分为以下几个步骤:Step 1: 定义各个操作码处理函数Step 2: 将模型分配并绑定到元素Step 3: 设置发布和订阅Step 3.1: 设置发布Step 3.2: 设置订阅1 定义各翻译 2020-12-10 22:42:36 · 723 阅读 · 0 评论 -
基于nordic平台mesh的入网配置流程
一 Provisioning配置。配置是向蓝牙mesh网络中的新设备提供它们加入网络所需的信息的过程。要成为节点并参与蓝牙mesh网络通信,必须配置每个设备。从配置的角度来看,设备可以是以下类型之一:配置者(Provisioner ) : 充当配置角色。接受配置者(Provisionee):充当节点角色。尽管可以使用多个配置者,但在mesh中仅需要一个配置者即可进行配置。作为配置过程的一部分,配置者和被配置者在配置者的bearer 层上建立通信。该层支持在配置者和未配置的设备之间传输配置P翻译 2020-12-11 22:49:47 · 2203 阅读 · 0 评论 -
nordic平台,使用Prepare Write Request
本文使用的环境:sdk版本: nRF5_SDK_15.3.0_59ac345硬件平台: nRF52832一 Prepare Write Request准备写入请求。原创 2020-12-18 13:41:56 · 1199 阅读 · 0 评论 -
system_nrf52.c(29): error: #5: “nrf_erratas.h“: No such file or directory
RTE\Device\nRF52832_xxAA\system_nrf52.c(29): error: #5: cannot open source input file “nrf_erratas.h”: No such file or directoryexternal\nRF5_SDK_14.2.0_17b948a\components\toolchain 将该目录下的system_nrf52.c文件拷贝替换下面文件夹中的文件examples\ble_peripheral\ble_app_uart\原创 2020-12-18 17:57:13 · 1664 阅读 · 1 评论