本帖最后由 陌路绝途 于 2014-6-9 10:27 编辑
DIY自己的时钟:
前段时间在论坛中参加活动获得了一块STM32F4开发板,自己上手玩了玩,自己DIY了一个时钟。。。可惜界面做的太丑了。。哈哈,
首先就是利用STM32库中的画图方法,来描画一个时钟的界面。用到的函数:void LCD_WriteBMP(uint32_t BmpAddress);把BMP图片转为数组,然后作为参数传到该函数中,就能够把时钟的表盘画在屏幕上了。 然后利用另一个层,根据时间,绘制三个指针,因为偷懒指针暂且用画线来代替。结果的显示效果就是一个悲剧。。
代码:
- void DrawPointer(u32 t_s)
- {
- u32 h, m, s;
- s32 x, y;
- h = (t_s / (3600/5)) % (12 * 5);
- m = (t_s / 60) % 60;
- s = t_s % 60;
- h = ((360 + 90) - h * 6) % 360;
- m = ((360 + 90) - m * 6) % 360;
- s = ((360 + 90) - s * 6) % 360;
- memset(&frameBuffer[0xA0000], 0, 0x50000);
- x = 40 * fcos[h];
- y = 40 * fsin[h];
- LCD_SetTextColor(LCD_COLOR_BLUE);
- LCD_DrawUniLine(120,120,120+x,120-y);
- x = 60 * fcos[m];
- y = 60 * fsin[m];
- LCD_SetTextColor(LCD_COLOR_BLUE);
- LCD_DrawUniLine(120,120,120+x,120-y);
- x = 80 * fcos
;
- y = 80 * fsin;
- LCD_SetTextColor(LCD_COLOR_RED);
- LCD_DrawUniLine(120-x/4,120+y/4,120+x,120-y);
- memcpy(&frameBuffer[0x50000], &frameBuffer[0xA0000], 0x50000);
- }
然后就是接下来就研究从硬件RTC获取实时时间,毕竟STM32F4还有点小,挂载墙上就看不清楚时间啦。
效果:
时钟的图像画的 自己都看不下去了。。。哈哈:$
代码分享:
RTClock.zip
(513.38 KB)
|