[活动] 【总结】时钟之DIY自己的时钟

[复制链接]
1548|8
 楼主| 陌路绝途 发表于 2014-6-9 10:26 | 显示全部楼层 |阅读模式
本帖最后由 陌路绝途 于 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还有点小,挂载墙上就看不清楚时间啦。
效果:

时钟的图像画的 自己都看不下去了。。。哈哈:$

代码分享:






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 陌路绝途 发表于 2014-6-9 10:28 | 显示全部楼层
自己支持下
贝多芬的悲伤 发表于 2014-6-9 10:39 | 显示全部楼层
不错不错  学习
aozima 发表于 2014-6-9 11:32 | 显示全部楼层
表盘看着像考古挖出来的。
mmuuss586 发表于 2014-6-9 12:14 | 显示全部楼层
你这个和TI没啥关系啊
 楼主| 陌路绝途 发表于 2014-6-9 15:37 | 显示全部楼层
mmuuss586 发表于 2014-6-9 12:14
你这个和TI没啥关系啊

好吧  我为了包包豁出去了 把自己压箱底的都找到了  居然不是。。。。
 楼主| 陌路绝途 发表于 2014-6-9 15:44 | 显示全部楼层
mmuuss586 发表于 2014-6-9 12:14
你这个和TI没啥关系啊

为了包包  参加了好多活动  可是都没拿到。。。泪奔啊。。游总,版主当得舒服不?羡慕哇。。。
 楼主| 陌路绝途 发表于 2014-6-9 20:01 | 显示全部楼层
aozima 发表于 2014-6-9 11:32
表盘看着像考古挖出来的。

嘿嘿。。就是自己画的  懒得弄 太丑了
 楼主| 陌路绝途 发表于 2014-6-11 08:55 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

747

帖子

18

粉丝
快速回复 在线客服 返回列表 返回顶部