收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
uint32\_t id[2];
id[0]=NRF_FICR->DEVICEID[0];//低32位
id[1]=NRF_FICR->DEVICEID[1];//高32位
内部温度传感器
TEMP寄存器保存了温度的值,0.25度 steps 意思是,每一个刻度代表0.25度,比如数值为10转换成温度就是2.5度。内部温度读取示例:
/\*这里是一些前提定义\*/
...
#define NRF\_TEMP ((NRF\_TEMP\_Type \*) NRF\_TEMP\_BASE)
...
...
/\*\*
\* @brief Temperature Sensor. (TEMP)
\*/
typedef struct { /\*!< TEMP Structure \*/
__O uint32\_t TASKS_START; /\*!< Start temperature measurement. \*/
__O uint32\_t TASKS_STOP; /\*!< Stop temperature measurement. \*/
__I uint32\_t RESERVED0[62];
__IO uint32\_t EVENTS_DATARDY; /\*!< Temperature measurement complete, data ready event. \*/
__I uint32\_t RESERVED1[128];
__IO uint32\_t INTENSET; /\*!< Interrupt enable set register. \*/
__IO uint32\_t INTENCLR; /\*!< Interrupt enable clear register. \*/
__I uint32\_t RESERVED2[127];
__I int32\_t TEMP; /\*!< Die temperature in degC, 2's complement format, 0.25 degC pecision. \*/
__I uint32\_t RESERVED3[700];
__IO uint32\_t POWER; /\*!< Peripheral power control. \*/
} NRF_TEMP_Type;
...
...
//初始化内部温度传感器
nrf\_temp\_init();
...
...
u32 temp\_get(){
u32 temp;//不考虑0下度数
//开始温度测量
NRF_TEMP->TASKS_START = 1;
/\*等待温度测量完成 \*/
while (NRF_TEMP->EVENTS_DATARDY == 0){
}
NRF_TEMP->EVENTS_DATARDY = 0;//清除临时寄存器
temp = (nrf\_temp\_read() / 4);
NRF_TEMP->TASKS_STOP = 1; //停止测量
return temp;
}
随机数产生器
随机数发生器 RNG 通过触发START任务进行启动,新的随机数连续产生,在准备好时 写入 VALUE 寄存器。每次新的随机数写入到 VALUE寄存器,都会触发一个 VALRDY 事件。
和温度传感器一样,可以单次获取数值进行应用,具体的分析方式参考上面的额温度传感器,下面的例子是读取一个随机数:
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!