2019年11月

开启 tim 会立即进入中断

在开启 tim 前清理一下 TIM_FLAG_UPDATE 标记就可以解决立即进中断的问题

__HAL_TIM_CLEAR_FLAG(&htim17, TIM_FLAG_UPDATE);
HAL_TIM_Base_Start_IT(&htim17);

参考资料:
https://blog.csdn.net/Robotzzg/article/details/90712340

ARPE 标记的意思

启用这个标记后,写入ARR寄存器的值会被暂存,直到 TIM_FLAG_UPDATE 事件触发后真正写入。

参考资料:
https://blog.csdn.net/wowo004/article/details/100582953

单发模式

在初始化 tim 后可以追加单发模式初始化,单发模式,触发一次update则自动停止
HAL_TIM_Base_Init(&htim17)
HAL_TIM_OnePulse_Init(&htim17, TIM_OPMODE_SINGLE)

uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型
这些数据类型是 C99 中定义的,具体定义在:/usr/include/stdint.h ISO C99: 7.18 Integer types <stdint.h>

引脚
CSN SPI片选 低电平有效
MOSI
MISO
CLK
CE 启动收发器(收或发有寄存器prim_rx决定) 高电平有效
IRQ 中断触发提示(低电平表示有中断触发)
VCC
GND

状态
芯片上电默认进入power down模式,通过配置 pow_up 寄存器让芯片进入 standbyI 模式,在此模式下可以拉高 CE 引脚让芯片进入收发模式,prim_rx 寄存器决定是收还是发,在接受模式下 CE 引脚必须一直处于高电平,在发送模式则不用,只要发送队列中存在数据,给一个持续 10ns 的脉冲高电平芯片就会自动进入发送模式,直到发送完成,退回 standbyI 模式。如果启动发送模式队列中不存在数据则会进入 standbyII 模式,在此模式下,只要队列收到数据就会立即出发发送。

nrf2401+的增强模式其实就是增加了重发机制。

地址
nrf2401+的地址,一共可以配置6个地址,地址长度3-5byte,需要注意的是,2-5号地址只有最后1byte是可以配置的,其他几个byte与1号地址共享。

频道
发射功率