无蓝牙协议栈温度测量
- 引入#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 enable interrupt for DATARDY event and read the result in the interrupt. */
/*lint -e{845} // A zero has been given as right argument to operator '|'" */
while (NRF_TEMP->EVENTS_DATARDY == 0)
{
// Do nothing.
}
NRF_TEMP->EVENTS_DATARDY = 0;
/**@note Workaround for PAN_028 rev2.0A anomaly 29 - TEMP: Stop task clears the TEMP register. */
temp = (nrf_temp_read() / 4);
/**@note Workaround for PAN_028 rev2.0A anomaly 30 - TEMP: Temp module analog front end does not power down when DATARDY event occurs. */
NRF_TEMP->TASKS_STOP = 1; /** Stop the temperature measurement. */
NRF_LOG_INFO("Actual temperature: %d", (int)temp);
nrf_delay_ms(500);
NRF_LOG_FLUSH();
- 运行结果
- 引入#include "nrf_temp.h"头文件
- 调用nrf_temp_init()初时化MCU温度单元
- 温度读取使用sd_temp_get函数进行温度读取
(void)sd_temp_get(&temp); //ben
temp >>= 2;
NRF_LOG_INFO("Actual temperature: %d", (int)temp);
- 运行结果