内容介绍
内容介绍
本次使用该评估板完成的功能是一个简单的智能手表原型:
硬件部分:
- 0.96寸OLED屏幕
- DS18B20传感器
- MAX32660-EVSYS评估板
软件部分:
-
MAX32660上运行的软件主体为RTTHREAD,一个任务用于读取温度传感器数值,一个任务用于完成RTC时间读取以及温度数据格式化,最终在屏幕上显示出来
static void u8g2_entry(void *parameter)
{
char temp_str[64];
char time_str[64];
time_t now;
struct tm* ptm;
uint32_t clean_count;
u8g2.begin();
u8g2.clearBuffer(); // clear the internal memory
u8g2.setFont(u8g2_font_ncenB08_tr); // choose a suitable font
clean_count = 0;
while (1)
{
now = time(RT_NULL);
ptm = localtime(&now);
sprintf(time_str, "Time: %02d-%02d %02d:%02d:%02d", ptm->tm_mon, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
sprintf(temp_str, "Temp: %2d.%d C", ds18b20_temp/10, ds18b20_temp%10);
u8g2.drawStr(0,10,time_str); // write something to the internal memory
u8g2.drawStr(0,30,temp_str); // write something to the internal memory
u8g2.sendBuffer(); // transfer internal memory to the display
rt_thread_mdelay(500);
if (clean_count >= 20)
{
clean_count = 0;
u8g2.clearBuffer();
}
else
{
clean_count++;
}
}
}
static int u8g2_task_init(void)
{
rt_thread_t u8g2_thread;
u8g2_thread = rt_thread_create("u8g2",
u8g2_entry,
RT_NULL,
1024,
RT_THREAD_PRIORITY_MAX / 2,
20);
if (u8g2_thread != RT_NULL)
{
rt_thread_startup(u8g2_thread);
}
return RT_EOK;
}
INIT_APP_EXPORT(u8g2_task_init);
活动心得:
- 本次活动让我对于美信这家公司发布的MCU有了新的认知,这个MCU很适合做智能穿戴类的产品。只是最近比较忙,没能更加深入的去发掘更多好玩的东西,希望日后能够加以完善。
附件下载
rt-thread.7z
团队介绍
评论
0 / 100
查看更多
猜你喜欢
Funpack第六期 基于美信MAX32660-EVSYS小封装微控制器的简易手表原型开发本期视频是Funpack第6期的活动作品,基于MAX32660-EVSYS微控制器的彩屏手表原型系统。涉及SPI、实时时钟、定时器及GPIO外部中断的应用,视频末尾有作品展示环节。
DengCJ96
1233
Funpack第六期-基于MAX32660-EVSYS的OLED手表利用MAX32660,配合1.54寸OLED彩色显示屏,Si7021温湿度传感器,DS3231高精度实时时钟,实现基础OLED手表功能
不是茄子
1025
Funpack第六期-MAX32660-EVSYS板卡-简易计步手表功能Funpack第六期 MAX32660-EVSYS板卡 简易计步手表功能 MPU6050 DS3231 OLED12864
Snapdragon
1058