HPDL1414 精致桌面小伴侣 显示时间日历和电脑状态(CPU温度负载(2)
时间:2017-07-30 21:38 来源:数码之家 作者:2545889167 点击:次
18b20倒是好,网上成熟的程序一大堆,弄一个来简单调试下就可以了。 为了防止没焊18b20而造成程序异常,在上电的时候,会先检测18b20是否存在,如果不存在,则以后读取温度都是取ds3231内部的温度为准,虽然精度不行一点,但是也还勉强能用。 关于ds3231,就让我任性一点吧,既然stm8有硬件iic,(stc没有也没玩过硬件的),但是大部分人都在骂说意法的IIC简直就是败笔,stm8和32的iic,都是难用到爆,所以,网上的IIC例程,基本都是软件模拟。最后弄了风驰的历程,又结合其他的经验改了下,终于调通了,哈哈。(调不通的感觉大部分情况都是卡在哪个while过不去) iic通了以后,后面ds3231的驱动内容,就是从之前自己在51上弄的移植过来了。不过提醒一点,温度数据不是bcd码而是直接的hex,直接用就好了。 关于蜂鸣器,暂时没想好用来干啥,感觉弄闹钟也不怎么现实,所以,目前程序里,对应的是直接将蜂鸣器换成led(三极管保持原样),然后接到上位机的数据后会自动反转灯的电平,也算个装饰吧。 至于esp8266,那算是远期打算,目前只预留接口,目前精力和芯片程序空间暂时还是有限的 ![]() 剩余不到1k的空间,估计弄个软件模拟串口就没有了,不过也倒是可以把远程获取时间的程序烧录到esp8266上,到时候仅串口直接传输有效数据即可。 还有一点要提,目前的程序里,如果数据前面有0,是自动隐藏的,当然如果有人喜欢那种数据前面的0吧显示位塞满的玩法,也是可以的 只要在"HPDL1414.h"文件下解除那个define的屏蔽然后重新编译下载就可以了 ![]() 然后就开始展示显示效果了 首先,上位机可以选择要显示的内容,但是时间,日期和星期是不可关闭的,就是不开上位机,只供电也会显示 ![]() 时间 ![]() 日期 ![]() 星期(sat,星期六,昨天拍的,今天是sun)和环境温度 ![]() cpu占用率和温度 ![]() 上位机关闭了一个数据,所以只显示了一个数据,如果cpu的两个数据都关闭,则不显示cpu页面了 ![]() 内存,余量和总量 ![]() 内存占用率 ![]() 不同的网速显示模式,只要在上位机处设置,程序可自动调整显示,自动变换单位 ps:这是真实网速,我真的不是在秀网速,表打我 ![]() 仅显示下载 ![]() ![]() ![]() ![]()
[ 此帖被2545889167在2016-08-23 17:18重新编辑 ]
|
|
看帖子:配合HPDL1414桌面伴侣使用的上位机程序|http://bbs.mydigit.cn/read.php?tid=1785154
或者围观下面的视频
关于时间设置
在上位机正常运行的过程中,点击更新时间,会读取系统时间,并发送,收到后,会自动更新ds3231中的数据,算是对时成功

如果在系统中开始自动对时,那时间是蛮准的

关于显示循环
如果有上位机且设置完整数据流:循环显示:时间3s,日期1s,星期温度1s,cpu 1s,ram 2s,net 1s
无上位机:循环显示:时间3s,日期1s,星期温度1s
关于指示灯,目前没有使用蜂鸣器
所以在蜂鸣器焊盘那里可以加led

该led指示灯的效果是在有数据传输过来且符合协议的话,进行一次翻转。锁定状态会快闪
关于tim4:
程序使用定时器4 time4作为整个运行的系统时钟
设定1ms中断一次,中断服务函数会对各个参数进行加减处理
关于ds3231:
使用硬件iic通讯,初始化是会开启1hz方波输出,输出脚接io设置为下降沿中断
关于中断优先级:
实验是发现如果不调整优先级,则会出现严重的数据丢包。原因是io的中断的入口排在串口接收中断之前,遂调整串口接收中断为优先级2,gpioc中断为优先级1
关于按键使用
按键分左键(key1)和右键(key2)
1、短按左键,从任意屏幕立刻跳转到显示时间,并持续显示5s后,继续循环
2、长按左键,从任意屏幕立刻跳转到显示时间,锁定显示时间,直到再次短按左键或按右键解锁。
3、按右键,锁定当前屏幕,直到再次短按左键或按右键解锁。
4、屏幕锁定后,按左右键均可解锁;左键短按按下后解锁到显示时间界面,显示5s再恢复正常循环;右键按下后,立刻解锁并显示下一屏。
5、屏幕如果锁定在电脑状态界面,指示灯会快闪,如果锁定在时间 日期 星期界面,指示灯正常
6、屏幕如果锁定在电脑状态界面,若5秒内数据未更新或者上位机断开,自动解除锁定,进入循环
第三颗(key3)按键暂时没用,没想到该用来干嘛
后期:上位机下位机的程序是开源的,欢迎大家交流,如果有感兴趣的坛友,也欢迎来给这玩意增加一些功能
以后的方向:增加更多的电脑状态显示,如gpu状态等
增加蜂鸣器
增加使用sep8266
这楼剩下的空间就放一些效果图吧
就不详细介绍了









