776|2

78

帖子

0

TA的资源

一粒金砂(中级)

 

【NRF52840】学习记录 [复制链接]

本帖最后由 bitter 于 2023-7-3 15:24 编辑
  • 【NRF52840】学习记录

1.前言

    最近入手了一块NRF52840 DK开发板,打算学习学习有关蓝牙的一些知识。在这里记录一下学习过程

2.芯片介绍

    有关NRF52840芯片的一些资料,大家可以在官网上查阅:nRF52840

3.蓝牙工程包SDK

    在官网上下载有关的SDK包:https://www.nordicsemi.com/Products/nRF52840/Compatible-downloads?lang=zh-CN

image.png

有关SDK包的一些介绍,大家可以参考这篇博客:nrf52840芯片入门 

4.蓝牙协议栈样例分析

    在下载的SDK包中,有很多的例程,在此分析一下蓝牙协议栈样例,其路径为nRF5_SDK_17.1.0_ddde560\examples\ble_peripheral\ble_app_template,有关分析大家可以参考这篇博文:nrf52840蓝牙协议栈样例分析,我在这里补充一些

①log打印初始化

    进入有关log_init()函数的内部:

    我们可以看到NRF_LOG_LFCLK_FREQ这个宏定义,其值为32768。因此,当我们想要使用log功能时,硬件上必须要有一个32.768kHz晶振,才能完成对应的初始化。

image.png

 

——


image.png

 

——

image.png

然后,找到有关log的UART相关初始化,我们可以发现其使用的是UAERT0,TX引脚为P0.06,未使用RX功能,波特率为115200。

image.png

 

——

 

image.png

 

——

 

image.png

——

 

image.png

——

 

image.png

——

 

image.png   

——

 

image.png ②协议栈默认配置设置

    进入协议栈配置函数内部,我们发现实际上配置协议栈使用的是sd_ble_cfg_set函数,根据其上的注释,我们可以发现两点:在sd_softdevice_enable已使能而sd_ble_enable未使能的任何地方,我们都可以调用该函数对协议栈进行配置;由app_ram_base分配给SoftDevice的内存量应该要足够大。

image.png 其中参数cfg_id为枚举BLE_CONN_CFGS、BLE_COMMON_CFGS、BLE_GAP_CFGS或BLE_GATTS_CFGS。

image.png image.png image.png image.png

  ③GAP初始化

    安全模式配置一共有以下几种:

image.png  ④广播初始化

    广播名称显示ble_advdata_name_type_t枚举为

image.png      广播标志

image.png  ⑤连接参数更新

       连接参数ble_conn_params_init_t结构体为

image.png  

最新回复

不错的资料,感谢楼主分享的资料。正好学习学习别人的设计。  详情 回复 发表于 2023-7-2 01:03
 
 

回复
举报

1288

帖子

0

TA的资源

五彩晶圆(初级)

 
这家的产品还是第一次听说,凑个热闹,来看看楼主的学习笔记
 
 
 

回复

1288

帖子

0

TA的资源

五彩晶圆(初级)

 
不错的资料,感谢楼主分享的资料。正好学习学习别人的设计。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表