【软件环境】
MCUXPresso IDE 25.6
【工和配置】
由于RW612的片内温度值是直接读取寄存的,因此不需要再次配置。
【代码实现】
在hardware_init.c中添加获取温度值的函数
float DEMO_MeasureTemperature(void)
{
uint16_t tempRawValue = 0U;
if (0UL == ((SENSOR_CTRL->MISC_CTRL_REG & SENSOR_CTRL_MISC_CTRL_REG_TIMER_1_ENABLE_MASK) >>
SENSOR_CTRL_MISC_CTRL_REG_TIMER_1_ENABLE_SHIFT))
{
SENSOR_CTRL->MISC_CTRL_REG |= SENSOR_CTRL_MISC_CTRL_REG_TIMER_1_ENABLE_MASK;
}
tempRawValue = (((SENSOR_CTRL->TSEN_CTRL_1_REG_2) & SENSOR_CTRL_TSEN_CTRL_1_REG_2_TSEN_TEMP_VALUE_MASK) >>
SENSOR_CTRL_TSEN_CTRL_1_REG_2_TSEN_TEMP_VALUE_SHIFT);
return (tempRawValue * 0.480561F - 220.7074F);
}然后在main中添加获取温度值并打印:
while (1)
{
SysTick_DelayTicks(100U);
GPIO_PinWrite(GPIO, 0, 0, 1);
SysTick_DelayTicks(100U);
GPIO_PinWrite(GPIO, 0, 0, 0);
if(g_InputSignal)
{
GPIO_PortToggle(GPIO, 0, (1U << 1));
g_InputSignal = false;
}
PRINTF("\r\n Current temperature is: %.3f degrees Celsius.", ((double)DEMO_MeasureTemperature()));
}【下载验证】
下载好到开发板后,可以打印出了温度值:

【总结】
片内温度值通过读取指定寄存器的值,可以快速实现,并了解芯片运行情况。
我要赚赏金
