前言
本篇文章在1.8寸TFT上通過(guò)描點(diǎn)的方式實(shí)現(xiàn)溫度曲線(xiàn)圖,溫度采集使用手上的HS3003,屏幕局部刷新已實(shí)現(xiàn),后面會(huì)更新滾動(dòng)顯示。
HS3003數(shù)據(jù)讀取
在RT-Thread Settings中添加hs300x軟件包
在RA Smart Configurator中配置408和407為輸出模式
在sensor_renesas_hs300x.c中添加初始化代碼
#define HS300X_I2C_BUS "i2c1"
int rt_hw_hs300x_port(void)
{
struct rt_sensor_config cfg;
cfg.intf.dev_name = HS300X_I2C_BUS;
cfg.intf.user_data = (void *)HS300X_I2C_ADDR;
rt_hw_hs300x_init("hs300x", &cfg);
return RT_EOK;
}
INIT_ENV_EXPORT(rt_hw_hs300x_port);
讀取溫度:
打開(kāi)串口,查看輸出
曲線(xiàn)顯示
當(dāng)前只能在屏幕顯示完后,將顯示部分全部刷新,不能滾動(dòng)顯示,后面有時(shí)間補(bǔ)上,代碼如下
void Port_DrawCurve(uint16_t value)
{
static uint8_t last_x,last_y = 0,x=10;
static uint16_t temp_y = 10,mode=0;
temp_y = value;
//這里由于數(shù)值較大,屏幕放不下,所以整體縮小了10倍
//使用的時(shí)候由于屏幕是倒置使用的,所以需要用128-value的值
// temp_y = LCD_DRAW_CURVE_y_MAX - value;
if(temp_y >= 120)
{
temp_y = 120;
}
if(mode == 0)
{
x+=1;
last_x=x;
lcd_draw_pixel(temp_y,x,LCD_CURE_COLOR);
}
else if(mode ==1)
{
lcd_draw_pixel(temp_y,145,LCD_CURE_COLOR);
}
if(x>=145)
{
x=10;
lcd_fill(11,11,120,150,WHITE);
// value =1;
}
//從第0列開(kāi)始畫(huà)
}
總結(jié)
溫度折線(xiàn)顯示已經(jīng)完成,如下所示:
-
IIC接口
+關(guān)注
關(guān)注
0文章
23瀏覽量
11686 -
TFT屏
+關(guān)注
關(guān)注
0文章
17瀏覽量
5764 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1291瀏覽量
40175
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論