STM32+ST7789+RX8025T+DS18B20+EC11+GT30L32S4W组成的时钟
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组成的时钟相关推荐
- 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 ...
- 单片机 STM32 HAL 温湿度 DS18B20
/*************笔记**************** 1.CubeMX 定义任意一个引脚,作为数据脚,并对引脚作出如下配置:GPlO output level --LOWGPIO mode ...
- STM32学习之DS18B20数字温度传感器
DS18B20是一种常见的数字温度传感器,控制命令和数据都是以数字信号输入输出的 测温范围:-55~+125°C 测温精度:0.5°C 通信接口:单总线 引脚 功能 VDD 电源(3.0~5.5V) ...
- STM32单片机驱动DS18B20
为了方便移值,把ds18b20驱动用ds18b20.c 和ds18b20.h封装起来 ds18b20.c代码如下 #include "ds18b20.h"unsigned char ...
- 驱动程序一:基于STM32自码 DS18B20驱动程序
为了加深对于底层驱动开发的认识和理解,楼主决定自撸常见模块,传感器的驱动程序.-------立贴为证. DS18B20是一款单总线可编程分辨率的数字温度计,详细内容可见中英文datasheet,笔者不 ...
- STM32一线协议-DS18B20温度传感器采样实现
文章目录 1- DS18B20温度传感器简介 (1)简介 (2)特征 (3)引脚 2- 内部功能结构 (1)64位光刻ROM (2)温度传感器(存放数据形式) (3)配置寄存器 (4)内部存储器 4- ...
- 【STM32】stm32f407 + DS18B20 碰出不一样的火花
Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性! 定个小小目标,努力成为习惯!在最美的年华遇见更好的自己! CSDN@AXYZdong,CSDN首发,AXYZd ...
- STM32学习笔记9(SysTick滴答时钟)
我不得不说意法半导体确实有点风骚!甚至有点变态.我对ST文档 STM32F10XXX参考手册的编辑水平真是不敢恭维.手册中好多说明都是含糊不清,甚至将好多对初学者来说很重要的地方都一笔带过,让人着实摸 ...
- STM32单片机学习笔记(七)-RCC时钟控制:简单了解时钟树(一)
写在前面:本系列内容均为自学笔记,参考资料为野火指南者开发板资料及芯片参考手册等,使用野火指南者开发板进行学习,该系列内容仅用于记录笔记,不做其他用途,笔记的内容可能会存在不准确或者错误等,如有大佬看 ...
- 【STM32标准库】【基础知识】时钟系统
文章目录 时钟 时钟的作用 时钟的产生 F4系列的时钟系统 时钟源 总线 标准库的时钟设置 内部高速时钟设置 外部高速时钟设置 AHB时钟设置 APB1/2时钟设置 默认值 文章基于适用于STM32F ...
最新文章
- Halcon算子翻译——dev_set_line_width
- 《深入浅出Nodejs》—— 读后总结
- MyBatis查询两个字段,返回Map,一个字段作为key,一个字段作为value的实现
- Flex AdvancedDataGrid 数据展示异常
- 学习笔记——Java
- Linux 中 ss 命令的使用实例介绍
- oracle jdbctype null,Oracle数据库之springboot 项目mybatis plus 设置 jdbcTypeForNull
- Django用户注册、登录、注销(一)
- 净迁移人口预测程序python_高质量深度学习模型, 一键模型预测,迁移学习很简单...
- 定时器和promise_手写Promise核心原理,再也不怕面试官问我Promise原理
- ZooKeeper安装,部署
- 到底工资要多少合适?
- android电源管理白名单,{更新}k29去除白名单支持原生电源管理的bios(1.10;1.66)...
- 正则表达式去除空格、符号,只保留中文、英文、数字
- java获取钉钉登录信息,JAVA maven项目使用钉钉SDK获取token、用户
- 计算机卸载或更改程序软件消失,win10系统控制面板“卸载或更改程序”窗口不显示已安装软件的还原方案...
- 分布式系统之-我的书单
- html json是什么文件,JSON是什么?
- IDEA高效使用技巧--->IDEA批量修改变量快捷键和全局搜索键
- 疫情控制住了,公司却倒闭了!