项目需求:在蓝牙广播的时候名字为 SN_设备流水号(如SN_00000001)。

我们可以在原来的代码中进行一下修改和增加

 const uint32_t MY_UICR_ADDR __attribute__((at(0X0001B160))) __attribute__((used)) = ;

备注这个地址0X0001B160根据自己具体情况来设定

 /**@brief Function for the GAP initialization.
*
* @details This function will set up all the necessary GAP (Generic Access Profile) parameters of
* the device. It also sets the permissions and appearance.
*/
static void gap_params_init(void)
{
uint32_t err_code;
ble_gap_conn_params_t gap_conn_params;
ble_gap_conn_sec_mode_t sec_mode; const int len = strlen(DEVICE_NAME) + 8;
char name[len]; int32_t serial_number; serial_number=*(int32_t *)0X0001B160; BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sec_mode); sprintf(name, "%s%08d", DEVICE_NAME,serial_number); err_code = sd_ble_gap_device_name_set(&sec_mode,
(const uint8_t*)name,
len);
APP_ERROR_CHECK(err_code); memset(&gap_conn_params, , sizeof(gap_conn_params)); gap_conn_params.min_conn_interval = MIN_CONN_INTERVAL;
gap_conn_params.max_conn_interval = MAX_CONN_INTERVAL;
gap_conn_params.slave_latency = SLAVE_LATENCY;
gap_conn_params.conn_sup_timeout = CONN_SUP_TIMEOUT; err_code = sd_ble_gap_ppcp_set(&gap_conn_params);
APP_ERROR_CHECK(err_code); err_code = sd_ble_gap_tx_power_set(TX_POWER_LEVEL);
APP_ERROR_CHECK(err_code);
}

现在上我们的主角J-Flash

打开J-Flash(路径为Start->All Programs->SEGGER->J-Link V5.12f->J-Flash)

下面的个步骤和平时使用j-flash来为MCU下载hex文件相同

重要的步骤来了

备注信息program serial number中

address为指定烧写地址(或者重新覆盖数据地址)

Next SN指定第一次要烧写的十进制数,之后的自动更据increment数值递增。

LEN指定烧写数据长度。J-Flash烧写序列号最多支持4个字节,高于四个字节的数据J-Flash会将前四个字节取反再烧进去。

现在将刚才工程进行编译后将其nrf51422_xxac_s110.hex和s110_nrf51_8.0.0_softdevice.hex进行合并

双击merge_hex.Bat文件(偷懒ing)

@echo off
::关echo
merge\mergehex.exe --merge hex\s110_nrf51_8..0_softdevice.hex hex\nrf51422_xxac_s110.hex --output firmware_s110.hex del hex\withoutsn.hex/s
::删除中间临时文件
#pause

使用j-flash来打开刚才的合并后hex文件

查看原先代码中0X0001B160的数据

现在使用J-FLASH进行下载

查看刚才0X0001B160的数据

下载后看手机app

我们再重复几次

小窍门:

同时也会在Jflash的工程目录(之前加载的sample prject的目录)下生成一个“<JFlashProjectName>_Serial.txt”,内容如下图,其中“4”为下次要写入的数据,系统自动为其加1了(由“Increment”决定):

更多关于JFlash可以参考下面中文件

https://www.segger.com/admin/uploads/productDocs/UM08003_JFlash.pdf

或者可以segger的安装路径中找到C:\Program Files (x86)\SEGGER\JLink_V512f\Doc\Manuals\UM08003_JFlash.pdf

巧用JLINK来实现nrf51822的蓝牙设备流水号的更多相关文章

  1. [异常解决] ubuntu上安装JLink驱动遇到的坑及给后来者的建议

    一.前言 最近将整个电脑格式化,改成了linux操作系统 希望这样能让自己在一个新的世界探索技术.提升自己吧- win上的工具用多了,就不想变化了- 继上一篇<ubuntu上安装虚拟机遇到的问题 ...

  2. [蓝牙] 6、基于nRF51822的蓝牙心率计工程消息流Log分析(详细)

    开机初始化Log Log编号 函数名   所在文件名 000001: main ..\main.c 000002: timers_init ..\main.c 000003: gpiote_init ...

  3. 嵌入式调试器原理和各类调试器集锦(JLINK、STLINK、CCDEBUG)

    工欲善其事,必先善其器.调试器在嵌入式开发调试中的重要性不言而喻,单步.断点和监察的效率远高于串口打印.但是,调试器对于一般开发人员往往是一个黑匣子.今天我们就来谈谈调试器的原理,顺便把自己的几类调试 ...

  4. 1_BLE nRF51822 UART 与 BLE转发

    去年Noridc出了集成蓝牙4.0并能开口说话24L01通信芯片,这部电影可以非常小包装.和低功耗.非常适合于可穿戴设备,然后挖了一个免费的手在不久的将来AK II,又没了一个Becon的板子.先玩了 ...

  5. NRF51822模块无法识别问题解决办法

    我知道没图是没人看的,所以随便瞎截图了几张. 对于很多新手朋友们,或许可能还不是很了解jtag相关的一些调试所需的必须电路,就像很多人不喜欢用stm32的硬件i2c,而是喜欢软件io模拟,就算是使用了 ...

  6. [编译] 4、在Linux下搭建nRF51822的开发烧写环境(makefile版)

    星期日, 09. 九月 2018 07:51下午 - beautifulzzzz 1.安装步骤 1) 从GNU Arm Embedded Toolchain官网下载最新的gcc-arm工具链,写文章时 ...

  7. Nordic NRF51822 从零开始系列(一)开发环境的搭建

    硬件准备     (1)nrf51822 开发板一块(此处使用的是青云系列的,自带jlijnk ob+usb串口芯片)或者使用nrf51822模块+jlink_ob                 ( ...

  8. nRF51 DK : nRF51822 Development Kit for Bluetooth Smart, ANT and 2.4GHz applications.

    KEY FEATURES • Affordable, Rapid prototyping and development solution for nRF51 Series SoCs • Kit su ...

  9. [nRF51822 AK II 教程]第一课,开发环境的配置及背景介绍【转】

    低功耗蓝牙4.0是全新的技术,并不向下兼容,也就是说它和蓝牙3.0.2.0什么的都不能通信的.另外,蓝牙4.0目前的规范只能做外设和主机(智能手机,电脑等)通讯,也就是说你想用一个单模的蓝牙4.0开发 ...

随机推荐

  1. LeetCode-Microsoft-Add Two Numbers II

    You are given two non-empty linked lists representing two non-negative integers. The most significan ...

  2. 枚举大小为k的子集

    这种位操作不大可能分析出来,先看代码再分析. 代码 使用条件:\(k>0\) void solve(int n,int k) { for(int comb = (1 << k) - ...

  3. L5负载均衡

    L5负载均衡组件的功能职责 L5的功能特征如下: 名字服务:以SID(由模块ID和命令字ID组成)为关键字,通过SID取得真正的IP和端口地址,使得IP和端口配置对调用者透明,运维变更配置更方便: 负 ...

  4. java新的语法糖:Java 8 Lambda表达式

    ***************************************************************************

  5. 几本不错的graphql 电子书

    当前专门讲graphql 的数据不是很多,但是越来越多的graphql 项目的出现以及graphql 自身的 便捷,老外已经有人去写graphql 的设计以及基本使用了. ebooks 地址 http ...

  6. 检索关键字 nyoj

    检索关键字 时间限制: 1000ms 内存限制: 65536KB 64位整型:      Java 类名: 上一题 提交 运行结果 统计 讨论版 下一题 类型: 没有   没有   难度        ...

  7. net.sf.ezmorph.bean.MorphDynaBean cannot be cast to java.util.Map

    public static void main(String[] arg0) { String reString = "{" + "\"code\": ...

  8. 关于seo优化的核心思想

    简单说下,针对网页检索结果进行评估,主要是围绕精确率和召回率进行,具体如下:1.相关性:query与结果说的是不是一回事2.需求强度:抓住主要需求3.丰富程度:详细全面4.有效性:能否真正满足5.时效 ...

  9. linux下maven项目clean失败

    今天在linux下创建了一个项目自动化发布的脚本,在执行到 mvn clean package -Dmaven.test.skip=true 的时候,项目clean失败 查下下度娘,windows下导 ...

  10. php让页面记住表单提交后的信息方法

    <body> <?php $name = $_POST['name']; echo $name; $gender = $_POST['gender']; echo $gender; ...