![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NRF52832个人学习笔记
文章平均质量分 67
风雨依依
学海无涯苦作舟
展开
-
nrfutil工具安装
nrfutil工具安装原创 2023-12-12 07:43:31 · 1376 阅读 · 0 评论 -
基于NRF52832实现SIF一线通收发数据处理
Tosc定义: 250us原创 2023-04-16 23:16:58 · 1964 阅读 · 1 评论 -
VSCode编译及调试NRF52
VSCode编译NRF52,调试等环境搭建原创 2023-02-09 20:08:48 · 2663 阅读 · 1 评论 -
S132协议栈之Response广播
初时化广播代码static uint8_t rsp_data[1];static ble_advdata_manuf_data_t m_rsp_spec_data; /**@brief Function for initializing the Advertising functionality. */static void advertising_init(void){ uint32_t err_code; ble_advertising_init原创 2022-05-22 10:20:45 · 170 阅读 · 0 评论 -
模拟标准I2C的驱动
模拟I2C标准驱动,使用NRF52832工程为例进行说明头文件内容#ifndef __IIC_H__#define __IIC_H__#include "nrf_drv_gpiote.h"#include "nrf_delay.h"#ifdef __cplusplusextern "C" {#endif#define KSCL 23#define KSDA 22#define delay_us_iic nrf_delay_us#define SCL_IIC_1原创 2022-01-16 09:26:22 · 555 阅读 · 0 评论 -
NRF52840 DFU & APP使用noinit ram方法
编译环境Keil,NRF52840 S140协议栈为例使用noinit ram将APP的广播ID序列号存到非初时化ram区,DFU时取出内容id并广播出来,要求APP广播名为S140_XXXXXX,DFU广播名为DFU_XXXXXX,保存2者的id号要一致,如下步骤实现数据在软件复位的情况下进行数据保存不丢失应用程序广播名拼接#define DEVICE_NAME "S140_" uint32_t test_id = 10086;/**@brief原创 2022-01-09 15:07:01 · 1112 阅读 · 0 评论 -
NRF52840 USB串口例程
打开nRF5_SDK_17.0.2_d674dde目录下examples\peripheral\usbd_ble_uart\pca10056\s140\arm5_no_packs中的工程增加1HZ定时器#define TICK_1HZ_INTERVAL 32768 /*1HZ 定时器 */APP_TIMER_DEF(m_1hz_id); static nrf_atomic_u32_t m_1hz_evt;static原创 2021-12-11 16:33:46 · 4024 阅读 · 2 评论 -
基于52840 S340协议栈USB flash U盘实现
参考无协议栈例程目录下nRF5_SDK_17.0.2_d674dde\examples\peripheral\usbd_msc的工程移植到S340工程下需要做以下步聚在sdk_config.h中加入以下配置// <h> POWER_ENABLED菜单// <e> NRFX_POWER_ENABLED - nrfx_power - POWER peripheral driver//=============================================原创 2021-10-17 17:25:03 · 1649 阅读 · 1 评论 -
基于GPS经纬度和当地时间计算日落日出时间实现
以NRF52 MCU平台实现,先实现UTC及要本时间等转换函数#ifndef __RTC_MODULE_H__#define __RTC_MODULE_H__#include "time.h"#include "stdbool.h"#include "stdint.h"#include "sdk_config.h"#include "nrf_atomic.h"#pragma anon_unions#ifdef __cplusplusextern "C" {#endif#defi原创 2021-10-17 16:34:58 · 1747 阅读 · 0 评论 -
NRF52832内嵌温度测量操作
无蓝牙协议栈温度测量引入#include "nrf_temp.h"头文件调用nrf_temp_init()初时化MCU温度单元温度转换并打印结果 NRF_TEMP->TASKS_START = 1; /** Start the temperature measurement. */ /* Busy wait while temperature measurement is not finished, you can skip waiting if you e原创 2021-09-19 12:47:16 · 1830 阅读 · 2 评论 -
NRF52832之原子操作
nrfx_atomic_u32_store和nrfx_atomic_u32_fetch_store函数赋值操作 nrfx_atomic_u32_t test; uint32_t ret; ret = nrfx_atomic_u32_store(&test,4); NRF_LOG_INFO("ret %d test %d",ret,test); ret = nrfx_atomic_u32_store(&test,3); NRF_LOG_INFO("ret %d原创 2021-09-19 12:01:25 · 711 阅读 · 0 评论 -
NRF52832广播中文名称(Keil环境)
选择Edit菜单,点击Configuration…,在Encoding中选择Encode in UTF-8 without signature,最后点击OK键在main.c中修改蓝牙名称#define DEVICE_NAME "仙剑情缘" 编译烧录,广播效果图参考代码下载广播中文名称参考代码...原创 2021-07-18 20:30:35 · 503 阅读 · 0 评论 -
Nordic SDK14.2 S332 multiprotocol例程iphone不能连接问题2种解决方案
增加gatt_init初时化函数,并在协议栈初时化之后调用,gatt_init内容如下 NRF_BLE_GATT_DEF(m_gatt); void gatt_init(void){ ret_code_t err_code; err_code = nrf_ble_gatt_init(&m_gatt, NULL); APP_ERROR_CHECK(err_code);} 修改advertising_init函数内容如下 #include "b..原创 2021-05-23 18:57:40 · 528 阅读 · 3 评论 -
安装gcc-arm-none-eabi-10-2020-q4-major-win32工具(NRF52编译ECC加密文件用)
gcc-arm-none-eabi-10-2020-q4-major-win32安装包下载 链接:https://pan.baidu.com/s/1NbpyI-fQoKvMUuct0hruxA提取码:ikeu 安装后环境变量配置 C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2020-q4-major\bin nrf52 SDK包工具链make文件修改(以SDK17.02为例,其它SDK方法一样) 1. ...原创 2021-03-14 13:09:23 · 2821 阅读 · 1 评论 -
nrf52832 sdk15.3复位源检查
nrf52832复位源寄存器 调用sd_power_reset_reason_get函数获取复位源信息,调用sd_power_reset_reason_clr函数清除复位源信息,上电调用一次即可,如果未调用sd_power_reset_reason_clr函数,将获取不到之后的其它复位源,因为它一直保留了第一次的Pin Reset复位源信息 sd_power_reset_reason_get(&reset_source); sd_power_reset_re..原创 2020-10-26 21:58:08 · 2355 阅读 · 0 评论 -
NRF52832基于SDK15.3 S332协议栈实现adv和rsp广播厂商自定义数据
DEMO下载地址 https://download.csdn.net/download/mygod2008ok/12740643 定义广播所需要的变量 static ble_gap_adv_params_t adv_params;static ble_gap_adv_data_t advdata_enc;static ble_advdata_t advdata; static ble_advdata_t rspdata;static b..原创 2020-08-25 07:25:14 · 819 阅读 · 0 评论 -
NRF52832 SDK15.3 FPU功能配置
keil中配置 在sdk_config.h中配置 // <q> NRF_PWR_MGMT_CONFIG_FPU_SUPPORT_ENABLED - Enables FPU event cleaning. #ifndef NRF_PWR_MGMT_CONFIG_FPU_SUPPORT_ENABLED#define NRF_PWR_MGMT_CONFIG_F...原创 2020-04-05 13:15:59 · 1149 阅读 · 0 评论 -
NRF52 SDK16.0编译问题
NRF52 SDK16.0开发包下载地址: 链接:https://pan.baidu.com/s/1yXG_jJzQIeHvyCX4M2kDtQ提取码:hu051.解压开发包,并安装nRF_MDK_8_29_0_Keil4_NordicLicense.msi,并导入NordicSemiconductor.nRF_DeviceFamilyPack.8.29.0.pack到keil...原创 2019-12-08 14:56:51 · 1706 阅读 · 0 评论 -
nrf52832 sdk14.0 & sdk14.2 & sdk 15.2 dfu & sdk 15.3 dfu
sdk14.0 & sdk14.2 & SDK15.2 & SDK15.3需要安装以下软件 gcc-arm-none-eabi-4_9-2015q3-20150921-win32.exe gcc-arm-none-eabi-7-2018-q2-update-win32-sha2.exe ...翻译 2019-12-08 10:12:48 · 405 阅读 · 0 评论 -
NRF52832 MAC地址加1处理
调用sd_ble_gap_addr_get API获取MAC地址 ble_gap_addr_t addr; sd_ble_gap_addr_get(&addr);/**@brief Get local Bluetooth identity address. * * @note This will always return the id...翻译 2019-12-03 07:49:33 · 730 阅读 · 0 评论 -
NRF52832蓝牙主模式RSSI获取
蓝牙主模式RSSI获取只需要三步 蓝牙连接成功后调用sd_ble_gap_rssi_start函数启动rssi sd_ble_gap_rssi_start(m_conn_handle,0,0); 2.启动后调用sd_ble_gap_rssi_get函数就可以获取到rssi相关信息 int8_t rssi; uint8_t connectChannel; sd_...翻译 2019-11-17 21:46:28 · 1807 阅读 · 0 评论 -
NRF52832 SDK15.3 BLE bond
基于NRF52832 SDK15.3 uart工程实现BLE的三种绑定功能 无密码方式绑定 动态密码方式绑定 静态密码方式绑定 为了解决手机绑定后,设备如果再次复位造成双方保存的信息不一致,导致绑定的设备无法连接,使用内部flash将绑定成功能信息保存起来,上电复位后从flash中恢复配置信息如何实现上述三种方式绑定呢?看下Nordic...原创 2019-11-16 21:46:57 · 1322 阅读 · 0 评论 -
NRF52832 SDK15.3 S332蓝牙和ANT+实现PA模式
在sdk_config.h中定义宏// <h> PA功能配置菜单// <o> PA TX引脚配置// <0-31>#ifndef PA_TX_PIN#define PA_TX_PIN 24#endif// <o> PA RX引脚配置// <0-31>#ifndef PA_RX_PIN#define PA_RX_PIN...原创 2019-09-13 09:11:57 · 1940 阅读 · 1 评论 -
NRF52832 SDK 15.2.0设置内部32768
由外部32768晶振改成内部32768 修改sdk_config.h中的宏定义来实现 1) 系统低速内部32768// <e> NRFX_CLOCK_ENABLED - nrfx_clock - CLOCK peripheral driver//==========================================================...翻译 2019-04-29 16:21:32 · 2757 阅读 · 0 评论 -
NRF52832 RNG
1.在sdk_config.h中加入宏// <e> RNG_ENABLED - nrf_drv_rng - RNG peripheral driver - legacy layer//==========================================================#ifndef RNG_ENABLED#define RNG_ENABLED 1...翻译 2018-11-01 10:15:45 · 1164 阅读 · 0 评论 -
nrf52832 scheduler调度机制分析(sdk15.3.0)
目的 了解app_scheduler的用法,其作用是能将中断线程或其它线程的调用转移到main线程的调用,传统的转移做法是在中断线程内设置一个标志,然后做主线程进行处理,这样会造成需要创建许多标志变量,而app_scheduler的调度机制可以避免这种问题出现 操作步骤 step 1: 在工程中加入app_scheduler.c文件step...原创 2019-05-16 16:35:24 · 2994 阅读 · 0 评论 -
一种类似于windows消息映射的方式编程思想分析(NRF52832平台上运行)
目的 实现类似于windows消息映射的方式编程思想,将离散的逻辑调用整合成消息映射的方式,基于消息触发调用 实现步骤 step 1: 修改configPort.h中的内容#ifndef __CONFIG_PORT__H#define __CONFIG_PORT__H#include "nrf_drv_gpiote.h"#include "nrf_...原创 2019-05-16 09:16:39 · 258 阅读 · 0 评论 -
NRF52832 WDT
1.在sdk_config.h中加入宏// <e> WDT_ENABLED - nrf_drv_wdt - WDT peripheral driver - legacy layer//==========================================================#ifndef WDT_ENABLED#define WDT_ENABLED...翻译 2018-11-01 16:48:40 · 1361 阅读 · 0 评论 -
NRF52832 timer
1.在sdk_config.h中加入宏// <e> TIMER_ENABLED - nrf_drv_timer - TIMER periperal driver - legacy layer//==========================================================#ifndef TIMER_ENABLED#define TIME...翻译 2018-11-01 16:13:26 · 916 阅读 · 0 评论 -
NRF52832 定时多通道SAADC转换
1.在sdk_config.h中加入宏// <e> SAADC_ENABLED - nrf_drv_saadc - SAADC peripheral driver - legacy layer//==========================================================#ifndef SAADC_ENABLED#define SAAD...翻译 2018-11-01 15:57:13 · 2610 阅读 · 0 评论 -
NRF52832 SAADC定时器定时转换
1.在sdk_config.h中加入宏// <e> TIMER_ENABLED - nrf_drv_timer - TIMER periperal driver - legacy layer//==========================================================#ifndef TIMER_ENABLED#define TIMER...翻译 2018-11-01 14:48:09 · 1298 阅读 · 0 评论 -
nrf52832 ADC for ppi
1.在sdk_config.h中加入宏// <e> SAADC_ENABLED - nrf_drv_saadc - SAADC peripheral driver - legacy layer//==========================================================#ifndef SAADC_ENABLED#define SAA...翻译 2018-11-01 14:15:02 · 808 阅读 · 0 评论 -
NRF52832 PPI
1.在sdk_config.h中加入宏#ifndef PPI_ENABLED#define PPI_ENABLED 1#endif// <e> TIMER_ENABLED - nrf_drv_timer - TIMER periperal driver - legacy layer//==========================================...翻译 2018-10-31 17:54:49 · 420 阅读 · 0 评论 -
NRF52832 GPIOTE INPUT
1.在sdk_config.h中加入宏// <e> GPIOTE_ENABLED - nrf_drv_gpiote - GPIOTE peripheral driver//==========================================================#ifndef GPIOTE_ENABLED#define GPIOTE_ENABLED 1...翻译 2018-10-31 17:04:37 · 1107 阅读 · 0 评论 -
NRF52832 GPIOTE OUTPUT使用
1.在sdk_config.h中加入宏 // <e> GPIOTE_ENABLED - nrf_drv_gpiote - GPIOTE peripheral driver//==========================================================#ifndef GPIOTE_ENABLED#define GPIOTE_ENAB...翻译 2018-10-31 16:28:41 · 765 阅读 · 0 评论 -
nrf52832 comp for sdk 15.2.0
1.在sdk_config.h中加入宏// <e> COMP_ENABLED - nrf_drv_comp - COMP peripheral driver//==========================================================#ifndef COMP_ENABLED#define COMP_ENABLED 1#endif/...翻译 2018-10-31 15:41:18 · 930 阅读 · 0 评论 -
NRF52832 clock driver for SDK 15.2.0
1.在sdk_config.h加入宏#ifndef UART_DEFAULT_CONFIG_IRQ_PRIORITY#define UART_DEFAULT_CONFIG_IRQ_PRIORITY 6#endif#ifndef NRF_CLOCK_ENABLED#define NRF_CLOCK_ENABLED 1#endif#ifndef NRFX_CLOCK_CONFIG...翻译 2018-10-31 13:57:48 · 1205 阅读 · 0 评论 -
NRF52832 RTC for TICK
1.在sdk_config.h中加入宏// <e> NRF_CLOCK_ENABLED - nrf_drv_clock - CLOCK peripheral driver - legacy layer//==========================================================#ifndef NRF_CLOCK_ENABLED#de...翻译 2018-11-01 17:58:52 · 2490 阅读 · 0 评论 -
NRF52832 temperature for sdk 15.2.0
1.引入头文件#include "nrf_temp.h"2.定义变量int32_t volatile temp;3.在主函数中的处理/** * @brief Function for main application entry. */int main(void){ uint32_t err_code; bsp_board_init(BSP_I...翻译 2018-11-02 09:33:52 · 516 阅读 · 0 评论 -
keil的Use Configuration Wizard in Context Menu功能
目的 为了能快速地实现宏定义的可视化管理及使用其修改数值项 以下使用nrf52832为例来新建工程进行演示 step 1: 新建一个工程,工程名为test,然后点保存step 2: 选择nRF52832_xxAA设备类型,然后点OK键确定step 3: 选择勾上CORE 5.0.2和Sta...原创 2019-05-10 15:44:04 · 2606 阅读 · 0 评论