电子说
前言
本篇文章在1.8寸TFT上通过描点的方式实现温度曲线图,温度采集使用手上的HS3003,屏幕局部刷新已实现,后面会更新滚动显示。
HS3003数据读取
在RT-Thread Settings中添加hs300x软件包
使用模拟IIC,408 和407引脚
在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);
读取温度:
打开串口,查看输出
曲线显示
当前只能在屏幕显示完后,将显示部分全部刷新,不能滚动显示,后面有时间补上,代码如下
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;
//这里由于数值较大,屏幕放不下,所以整体缩小了10倍
//使用的时候由于屏幕是倒置使用的,所以需要用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列开始画
}
总结
温度折线显示已经完成,如下所示:
全部0条评论
快来发表一下你的评论吧 !