nRF52832蓝牙开发记录
文章平均质量分 96
从入门学习nRF52832,类似STM32学习ARM-cortex M4并学习通过 nRF52832 进行蓝牙开发。
跑不了的你
本人懒···就是懒···但是愿意学习,欢迎互相交流,共同进步,可以加qq490165508以及VX 18334728131 大家一起学习,一起进步。
展开
-
nRF52832——定时器和 PPI 的联合应用
PWM 初始化,声明回调函数用于设置软件 PWM 占空比的值。这两个函数是实现 PWM 输出的关键了,首先来看下如何配置 app_pwm_init 函数,该函数主要需要配置第二个参数:app_pwm_config_t const * const p_config,这个参数是一个结构体形式,官方给出了单 PWM 输出和双 PWM 输出的定义://!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//!//原创 2024-04-15 09:47:20 · 1032 阅读 · 0 评论 -
nRF52832——PPI 模块的应用
SDK 的库函数内提供了 PPI 的编程组件库,本节将通过 PPI 的库函数 API 来实现一个 GPIOTE 的应用。PPI 的编程组件库函数主要是使用如下几个函数,这些函数可以方便的配置 PPI 的应用。该函数主要是用于初始化 PPI 模块,判断 PPI 当前的状态。用于分配未使用的 PPI 通道该函数用于使能 PPI 通道,开启 PPI该函数主要用于分配 EEP 事件终点和 TEP 任务终点把指定的 PPI 通道包含到通道组中。用于分配一个未被使用的 PPI 组,并且分配对应的 PPI 通道组指针。原创 2024-03-28 11:11:54 · 575 阅读 · 0 评论 -
nRF52832——定时器 TIME
如果是周期性的触发,则需要在触发后清除计数值,否则会一直计数,直到溢出。工程搭建完毕后,首先我们需要来修改 sdk_config.h 配置文件,库函数的使用是需要对库功能 进行使能的,因此需要在 sdk_config.h 配置文件中,设置对应模块的使能选项。但是计数 器 counter 计数器内的值是无法读取的,这时需要通过设定一个 CAPTURE Task,捕获的计数器 counter 的值存储到 CC[n]寄存器内,然后再对 CC[n]寄存器进行读取,读取的值就是计数器计数的值,如下图。原创 2024-03-26 16:25:56 · 1398 阅读 · 0 评论 -
nRF52832——内部温度传感器与随机数产生
那么整个随机数的获取,以及随机数读出过程。如果使能了 RNG 中断,当然 RNG 启动后,CPU 就会把新产生的随机数放入到 VALUE 寄存器中就会触发对应中断,在中断中完成把 VALUE 寄存器中的随机数放入到 pool 队列 池的过程。这意味着生成 VALRDY 事件后,直到下一个 VALRDY 事件之前这段时间,CPU 有足够的时间在新的随机数覆盖旧的随机数之前,从 VALUE 寄存器中读出的旧随机数的值。文件中 是没有 RNG 相关的配置的,需要自己手动添加的,具体添加内容请例程参考代码。原创 2024-03-17 11:05:18 · 1034 阅读 · 0 评论 -
nRF52832——唯一 ID 与加密解密
加密过程中,加法运算和减法运算用作可逆的操作,算法轮流使用异或运算提供非线性特性,双移位操作使秘钥和数据的所有比特重复地混合,最多 16 轮循环就能使数据或密钥的单个比特的变化扩展到接近 32 比特. 因此 ,当循环轮数达到 16 轮以上时 ,该算法具有很强的抗差分攻击能力 ,128 比特密钥长度可以抗击穷举搜索攻击,该算法设计者推荐算法迭代次数为 32 轮。因此识别芯片中的唯一 ID 的方式就是读取寄存器 DEVICEID 内的值,因为这个参数值是不能修改的,出厂的时候由厂家固化的。原创 2024-03-13 18:07:31 · 983 阅读 · 0 评论 -
nRF52832——串口 UART 和 UARTE 外设应用
UARTE 就是带有 EasyDMA 的通用异步收发器 UART。提供快速、全双工、异步的串行通信,内置流量控制(CTS、RTS)支持硬件,速率高达 1Mbps。全双工操作自动硬件流控制生成 9 位数据待奇偶校验easyDMA波特率高达 1Mbps在支持的事务之间返回 IDLE (使用 HW 流控制时)一个停止位最低有效位(LSB)优先UARTE 的内部结构如下图。用于每个 UART 接口的 GPIO 可以从设备上的任何 GPIO 来选择并且独立可配置。原创 2024-03-12 16:49:34 · 1712 阅读 · 0 评论 -
nRF52832——GPIOTE与外部中断
任务模式的使用不是孤立的,一般都是由事件来触发任务,如果在事件和任务中间假设一个通道,也就是后面的 PPI,那么整个过程不需要 CPU 参与了,大大节省了 MCU 资源。nRF5x 系列处理器将 GPIO 的中断的快速触发做成了一个单独的模块 GPIOTE,这个模块不仅提供了 GPIO 的中断功能,同时提供了通过 task 和 event 方式来访问 GPIO 的功能。完成 exit.c 的编写后,main 主函数的操作就很简单,直接调用写好的驱动函数,然后尝试按键是否有对应的响应即可。原创 2024-03-08 16:32:06 · 1274 阅读 · 0 评论 -
nRF52832——GPIO端口的应用
寄存器名称地址偏移R/W功能描述OUT0x504读写设置端口输出OUTSET0x508读写置位端口输出高电平,写 0 无效OUTCLR0x50C读写置位端口输出低电平,写 0 无效IN0x510只读设置端口输入DIR0x514读写设置端口方向DIRSET0x518读写置位端口为输入,写 0 无效DIRCLR0x51C读写置位端口为输出,写 0 无效LATCH0x520读写。原创 2024-03-06 11:43:38 · 1699 阅读 · 0 评论