STM32+ST7789+RX8025T+DS18B20+EC11+GT30L32S4W组成的时钟

  • 完整的stm32为主控的实时时钟项目
    • 硬件构成
    • 成品效果
    • 主程序代码
    • 完整程序下载

完整的stm32为主控的实时时钟项目

最近宅在家里把以前买的240*240液晶拿出来把玩了一下,做了个小时钟。
几点说明如下:
1:TFT液晶屏采用ST7789驱动,分辨率240*240,采用硬件SPI通讯。
2:文字显示采用GT30L32S4W字库芯片,与液晶屏使用同一个SPI通讯。
3:RX8025T采用软件模拟IIC方式通讯,时间刷新采用中断方式。
4:EC11编码开关为20档20脉冲,采用外部中断方式检测转动方向。
5:项目创建使用MDK4.73,stm32使用标准外设驱动库3.5版本。
6:按EC11中间键后进入调整模式,旋转EC11更改数值。

硬件构成

1:显示器件采用ST7789驱动的240*240IPS屏幕。
2:实时时钟芯片采用带温度补偿的RX8025T。
3:使用EC11旋转编码开关调整时间,中间键按下后进入调整。
4:温度检测使用DS18B20单总线温度传感器。
5:文字显示使用GT30L32S4W字库芯片。
6:主控芯片使用STM32F103C8T6。

成品效果

没有设计复杂的GUI界面,仅使用了基本的绘图功能能及文字显示。洞洞板手工搭接电路板,一切连接线以好走通为原则,每个器件所连接的IO口都是就近选择,所以也就不给出具体电路图纸了,自己看程序吧,这里需要注意一下,因为使用了PB3、PB4,所以只能使用SW下载和调试,或者串口下载代码。
重点:JTAG已被禁用,只能SW调试下载。PB3、PB4被重映射了,我自己是用的串口下载。


显示效果

整体布局

基本绘图:点、线、矩形、圆、填充,很容易移植到GUI

主程序代码

 int main(void){      delay_init();           //延时函数初始化    NVIC_Configuration();    //设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(115200);        //串口初始化LED_Init();              //LED端口初始化rx8025t_init();          //初始化RX8025T实时时钟 EC11_Init();             //EC11编码开关初始化EXTIX_Init();            //外部中断初始化 DS18B20_Init();          //DS18B20温度采集初始化SPI_LCD_Init();           //LCD初始化Display_GUItest();       //图形测试get_rtc_time(&RTC_Time); //先获取一次时间用于初始显示Display_Asc_String('4',20,30,GREEN,BLACK,"20");    //固定显示的部分Display_GB2312_String('2',53,28,RED,BLACK, "年");          Display_GB2312_String('2',87,28,YELLOW,BLACK, "月");         Display_GB2312_String('2',121,28,MAGENTA,BLACK, "日");       Display_GB2312_String('2',166,28,LIGHTGREEN,BLACK, "星期");  //15x16汉字Display_Asc_String('6',96,52,GREEN,BLACK,":  :"); Display_GB2312_String('3',32,110,BLUE,BLACK, "温度");  Display_GB2312_String('3',145,110,BLUE,BLACK, "℃");   //24x24汉字Display_Asc_String('5',118,110,WHITE,BLACK,".");    display(0); //显示日期与时间RX8025T_INTen(1); //开实时时钟中断,进入中断刷新显示 Time_Update=0;    //时间更新标志复位while(1)              {   if(ec11_key==0) //按键检测{delay_ms(30);if(ec11_key==0)  {while(ec11_key==0); Time_CFG();  //开始调整时间}           }if(Time_Update)  //由RX8025T芯片的中断刷新此标志{get_rtc_time(&RTC_Time);  //获取当前时间       display(0);     //显示时间             display_tem();  //显示温度               LED0=!LED0;     //DS0闪烁   Time_Update=0;  //时间更新标志复位                              }}
}

完整程序下载

下载链接: STM32-RX8025T时钟.zip.

STM32+ST7789+RX8025T+DS18B20+EC11+GT30L32S4W组成的时钟相关推荐

  1. STM32理论 —— ADC、存储、定时器、时钟、中断

    文章目录 1. ADC 1.1 ADC相关寄存器 1.1.1 ADC 控制寄存器1(ADC_CR1) 1.1.2 ADC 控制寄存器2(ADC_CR2) 1.1.3 ADC 采样时间寄存器(ADC_S ...

  2. 单片机 STM32 HAL 温湿度 DS18B20

    /*************笔记**************** 1.CubeMX 定义任意一个引脚,作为数据脚,并对引脚作出如下配置:GPlO output level --LOWGPIO mode ...

  3. STM32学习之DS18B20数字温度传感器

    DS18B20是一种常见的数字温度传感器,控制命令和数据都是以数字信号输入输出的 测温范围:-55~+125°C 测温精度:0.5°C 通信接口:单总线 引脚 功能 VDD 电源(3.0~5.5V) ...

  4. STM32单片机驱动DS18B20

    为了方便移值,把ds18b20驱动用ds18b20.c 和ds18b20.h封装起来 ds18b20.c代码如下 #include "ds18b20.h"unsigned char ...

  5. 驱动程序一:基于STM32自码 DS18B20驱动程序

    为了加深对于底层驱动开发的认识和理解,楼主决定自撸常见模块,传感器的驱动程序.-------立贴为证. DS18B20是一款单总线可编程分辨率的数字温度计,详细内容可见中英文datasheet,笔者不 ...

  6. STM32一线协议-DS18B20温度传感器采样实现

    文章目录 1- DS18B20温度传感器简介 (1)简介 (2)特征 (3)引脚 2- 内部功能结构 (1)64位光刻ROM (2)温度传感器(存放数据形式) (3)配置寄存器 (4)内部存储器 4- ...

  7. 【STM32】stm32f407 + DS18B20 碰出不一样的火花

    Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性! 定个小小目标,努力成为习惯!在最美的年华遇见更好的自己! CSDN@AXYZdong,CSDN首发,AXYZd ...

  8. STM32学习笔记9(SysTick滴答时钟)

    我不得不说意法半导体确实有点风骚!甚至有点变态.我对ST文档 STM32F10XXX参考手册的编辑水平真是不敢恭维.手册中好多说明都是含糊不清,甚至将好多对初学者来说很重要的地方都一笔带过,让人着实摸 ...

  9. STM32单片机学习笔记(七)-RCC时钟控制:简单了解时钟树(一)

    写在前面:本系列内容均为自学笔记,参考资料为野火指南者开发板资料及芯片参考手册等,使用野火指南者开发板进行学习,该系列内容仅用于记录笔记,不做其他用途,笔记的内容可能会存在不准确或者错误等,如有大佬看 ...

  10. 【STM32标准库】【基础知识】时钟系统

    文章目录 时钟 时钟的作用 时钟的产生 F4系列的时钟系统 时钟源 总线 标准库的时钟设置 内部高速时钟设置 外部高速时钟设置 AHB时钟设置 APB1/2时钟设置 默认值 文章基于适用于STM32F ...

最新文章

  1. Halcon算子翻译——dev_set_line_width
  2. 《深入浅出Nodejs》—— 读后总结
  3. MyBatis查询两个字段,返回Map,一个字段作为key,一个字段作为value的实现
  4. Flex AdvancedDataGrid 数据展示异常
  5. 学习笔记——Java
  6. Linux 中 ss 命令的使用实例介绍
  7. oracle jdbctype null,Oracle数据库之springboot 项目mybatis plus 设置 jdbcTypeForNull
  8. Django用户注册、登录、注销(一)
  9. 净迁移人口预测程序python_高质量深度学习模型, 一键模型预测,迁移学习很简单...
  10. 定时器和promise_手写Promise核心原理,再也不怕面试官问我Promise原理
  11. ZooKeeper安装,部署
  12. 到底工资要多少合适?
  13. android电源管理白名单,{更新}k29去除白名单支持原生电源管理的bios(1.10;1.66)...
  14. 正则表达式去除空格、符号,只保留中文、英文、数字
  15. java获取钉钉登录信息,JAVA maven项目使用钉钉SDK获取token、用户
  16. 计算机卸载或更改程序软件消失,win10系统控制面板“卸载或更改程序”窗口不显示已安装软件的还原方案...
  17. 分布式系统之-我的书单
  18. html json是什么文件,JSON是什么?
  19. IDEA高效使用技巧--->IDEA批量修改变量快捷键和全局搜索键
  20. 疫情控制住了,公司却倒闭了!

热门文章

  1. CMMB 全国各地市频率规划表
  2. 译文:一个采用 Three.js 的 3D 动画场景制作:飞行者
  3. 缺陷报告单写作准则(5C)
  4. 机器学习(4)——弱监督学习
  5. 尚硅谷redis6文档,代码
  6. 网上传说软件测试培训真的那么黑心吗?都是骗局?
  7. java定时器的原理_JAVA Timer 定时器原理 | 学步园
  8. 电力系统分析计算机辅助试题,电力系统计算机辅助分析.docx
  9. Android之简洁天气
  10. 关于软件AccessPort使用注意事项