Nordic
Nordic蓝牙开发相关笔记
duapple
这个作者很懒,什么都没留下…
展开
-
Nordic DFU 使用教程
Nordic DFU 操作步骤需要安装各种工具,详情见自查资料。大概流程为:重启设备进入Bootloader,然后连接通过蓝牙连接Bootloader进行DFU,发送升级包文件。1. 下载编译micro-ecc从 github 上下载 micro-ecc 源码,然后通过 msys 的 gcc进行编译。编译前修改 components\toolchain\gcc\Makefile.windows 中工具的路径和版本号。注意路径最后面需要加 /。得到 external\micro-ecc\nrf52原创 2021-02-08 16:34:40 · 1481 阅读 · 1 评论 -
Nordic 中心设备添加自定义服务处理
Nordic 中心设备添加自定义服务处理照搬ble_nus_c.c和ble_nus_c.h内容来完成自定义服务的处理。这里中心设备我采用的工程例子是 ble_app_uart_c。将components\ble\ble_services\ble_nus_c中的 ble_nus_c.c和ble_nus_c.h 拷贝到我们的工程中。修改文件名,避免文件重定义问题。然后就是依样画葫芦,照着 ble_nus_c.c 和 ble_nus_c.h 进行修改。这里修改好的文件我放在 github上。这里直接把所原创 2021-01-27 22:44:12 · 1317 阅读 · 3 评论 -
Python 真是个好工具
Python 真是个好工具想将一个文件按照配置文件内容进行命名。先选择了Linux shell,最后发现KEIL调用的命令行没有办法识别wsl,兼容性还是不太行。#ifndef _SYSTEM_CONFIG_H_#define _SYSTEM_CONFIG_H_#define DEVICE_SW 1 // 软件版本#define DEVICE_HW 1 // 硬件版本#define DEVICE_TYPE 2 // 设备类型,1:原创 2021-01-15 01:21:31 · 167 阅读 · 0 评论 -
Nordic 中心设备(central)获取 外围设备(peripheral)设备名 (Device Name)
Nordic 中心设备(central)获取 外围设备(peripheral)设备名 (Device Name)中心设备在扫描到外围设备后,我想知道扫描到设备的设备名称。通过ble_advdata_parse( )可获得外设设备的设备名称,即蓝牙广播名称。需要的头文件包括:ble_gap.h,ble_advdata.h在ble_gap_evt_t结构体中有adv_report字段。通过上面的接口可从这个字段中获取到设备名。typedef struct{ uint16_t conn_handle原创 2021-01-14 16:09:37 · 1261 阅读 · 0 评论 -
check failed in nrf_fstorage_write() with value 0x9.
解决 check failed in nrf_fstorage_write() with value 0x9.在用fstorage模块的时候,遇到一个很坑的问题。命名什么都是对的,就是在调用nrf_fstorage_write()的时候报错。代码之前测试过,是没有问题的。最后发现是结构体的原因。因为我没有字节对齐,导致写入单元不足4Byte。typedef struct { uint8_t valid; // 0x55为有效 uint8_t reserve_byte; // 为字节对齐设置的预原创 2021-01-10 00:35:02 · 969 阅读 · 0 评论 -
解决 Nordic central 中心设备连接外围设备错误 Disconnected, reason 0x8
解决 Nordic central 中心设备连接外围设备错误 Disconnected, reason 0x8我需要用蓝牙Downgle来实现电脑串口发送数据到我的外围设备上,进行数据测试等。但是遇到 uuid 过滤失败的情况,暂时还没有解决。我用SDK中的Demo工程,都能连接ble_uart设备,但是我的工程是在ble_uart上进行修改的,没有更改 nus service 的 uuid,但就是过滤识别不到我的设备。因此我在 NRF_BLE_SCAN_EVT_NOT_FOUND事件中处理我的连接.原创 2021-01-07 17:17:58 · 2284 阅读 · 1 评论 -
bin hex 文件互相转换
bin hex 文件互相转换参照KEIL官网的教程和工具。这里说已经使用srec_cat.exe(下载链接)替代bin2hex了。使用方法。bin文件转hex文件.\srec_cat.exe .\burn.bin -Binary -offset 0x380c0 -o burn.hex -Intel-offset:当前bin文件的起始位置偏移量。hex文件转bin文件srec_cat.exe HexFile.hex -Intel -o BinaryFile.bin -Binaryhex文.原创 2021-01-05 20:53:33 · 7762 阅读 · 1 评论 -
Nordic 使用串口UART打印
Nordic 使用串口UART打印1. sdk_confignRF_Drivers UART_ENABLEnRF_Libraries APP_UART_ENABLE2. 添加文件接下来是,添加串口初始化函数和回调,可以添加到我们字节的.c文件中。myuart.c#include "app_uart.h"#include "myuart.h"#include "nrf_log.h"#include "nrf_uart.h"#include "nrf_uarte.h"#incl.原创 2020-12-20 22:44:02 · 1489 阅读 · 0 评论 -
Nordic fstorage 模块读写失败
Nordic fstorage 模块读写失败写失败可能是因为 NRF_FSTORAGE_DEF 定义的起始页位置不对,不能是代码区域。NRF_FSTORAGE_DEF(nrf_fstorage_t fstorage) ={ .evt_handler = fstorage_evt_handler, .start_addr = 124 * 4096, .end_addr = 127 * 4096,};读失败这个我看了官方例程,命名一模一样的代码。为什么就是读不回来,并且如原创 2020-12-14 15:29:23 · 703 阅读 · 0 评论 -
Nordic gpiote event
Nordic gpiote event#include "nrf_drv_gpiote.h"#include "nrfx_gpiote.h"#include "nrf_log.h"#define CHARGE_LED NRF_GPIO_PIN_MAP(0, 29)static void bsp_gpio_init(void){ ret_code_t err_code; // //配置充电监测GPIOTE 事件,并做指示 // err_code =.原创 2020-12-11 09:36:12 · 160 阅读 · 0 评论 -
jansson库使用
jansson库使用1. 将结构体转化为json字符串(解决jansson转化字符串失败)写了一个转换测试程序,发现运行个20多次后,就一直转换失败了。先后测试free(),json_object_clear() 和 json_decref()。发现只有json_decref()这个好使。估计是内存泄露导致的。uint32_t mydata_oildrop_item_to_json(mydata_oildrop_item_t *item, char *buff, size_t len){ .原创 2020-11-30 12:16:18 · 3595 阅读 · 0 评论 -
Nordic开发问题记录
Nordic开发问题记录记录Nordic开发过程中遇到的问题。1. nrf_drv_gpiote_init该接口只能调用一次。当例程里面已经在某处进行初始化了,后面再调用会导致错误。所以在不清楚例程是否已经初始化的时候,先进行判断。 if (!nrf_drv_gpiote_is_init()) { err_code = nrf_drv_gpiote_init(); ERROR_CHECK(err_code); }2. nrf_fstorage_write当f原创 2020-10-14 16:49:47 · 2185 阅读 · 4 评论