这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【FRDM-MCXA366试用】I3C温度采集

共1条 1/1 1 跳转至

【FRDM-MCXA366试用】I3C温度采集

高工
2026-09-01 00:47:36     打赏

A366包含了一块P3T1755 ,它是恩智浦(NXP)推出的一款高精度数字温度传感器芯片。它支持I3C(最高12.5MHz)和I²C(最高3.4MHz)两种通信接口,测温范围是‌-40°C到+125°C‌,精度为‌±0.5°C‌,分辨率达0.0625°C。‌‌

本次实现一下温度采集及显示,为后续的调速风扇做准备。

传感器电路如下:

1788194329462251.png

直接使用DEMO中的例程修改一下就行,主要做一下数据处理。显示小数点及两位小数

static void DisplayTemperature(double temperature)
{
int32_t pos;
int32_t intPart;
int32_t fracPart;
int32_t frac1;
int32_t frac2;

for (pos = 0; pos < 6; pos++)
{
SLCD_Engine_Show_Num(&slcdEngine, 0, pos, 0);
}
SetDecimalPoint(0);

if (temperature < 0.0)
{
temperature = -temperature;
}

intPart  = (int32_t)temperature;
fracPart = (int32_t)((temperature - (double)intPart) * 100.0);
frac1    = fracPart / 10;
frac2    = fracPart % 10;

if (intPart >= 100)
{
SLCD_Engine_Show_Num(&slcdEngine, (int32_t)(intPart / 100), NUM_POS6, 1);
SLCD_Engine_Show_Num(&slcdEngine, (int32_t)((intPart / 10) % 10), NUM_POS5, 1);
SLCD_Engine_Show_Num(&slcdEngine, (int32_t)(intPart % 10), NUM_POS4, 1);
SLCD_Engine_Show_Num(&slcdEngine, frac1, NUM_POS3, 1);
SLCD_Engine_Show_Num(&slcdEngine, frac2, NUM_POS2, 1);
SetDecimalPoint(1);
}
else if (intPart >= 10)
{
SLCD_Engine_Show_Num(&slcdEngine, (int32_t)(intPart / 10), NUM_POS5, 1);
SLCD_Engine_Show_Num(&slcdEngine, (int32_t)(intPart % 10), NUM_POS4, 1);
SLCD_Engine_Show_Num(&slcdEngine, frac1, NUM_POS3, 1);
SLCD_Engine_Show_Num(&slcdEngine, frac2, NUM_POS2, 1);
SetDecimalPoint(1);
}
else
{
SLCD_Engine_Show_Num(&slcdEngine, (int32_t)(intPart % 10), NUM_POS4, 1);
SLCD_Engine_Show_Num(&slcdEngine, frac1, NUM_POS3, 1);
SLCD_Engine_Show_Num(&slcdEngine, frac2, NUM_POS2, 1);
SetDecimalPoint(1);
}
}

static void SetDecimalPoint(int32_t on)
{
SLCD_SetFrontPlaneOnePhase(LCD, 27, kSLCD_PhaseAIndex, (bool)on);
}

最终显示如下:

1788194679996358.png

本次先到这里,下次再来试试电机驱动,尝试一下电机调速。




关键词: FRDM-MCXA366     试用     温度     采集    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]