FastBond3挑战部分-用stm32设计电子钟
该项目使用了stm32单片机,实现了电子钟的设计,它的主要功能为:可以显示时间,以及设置年月日。
标签
嵌入式系统
杨得de
更新2024-11-04
重庆电力高等专科学校
64

一、前言

这是基于stm32f103c8t6单片机所做的一个电子钟,可以设置时间等年月日,平时放在电脑前方便看时间还是不错的。

本文之后的内容将展示使用立创eda继续修缮的原理图及PCB,成品的功能测试和主要程序的。

如下逻辑框图,非常简单,主要由单片机控制ds1302芯片,再由按钮设置时间。


二、原理图及PCB介绍

流程图及原理图初步设计都是由嘉立创eda网页绘制,简单的方框图和引脚图在这上面自制还挺方便的,使用了FastBond活动中要求的家厂商的芯片,是乐鑫公司的插排

如框图所示,由MCU核心板的stm32,安卓接口提供3.3V电源,分别为LDO和运算放大器供

注意ds1302,需要改io口,分别是pc13,pc14,否则无法正常显示

使用嘉立创eda设计的原理图导出到KiCad后,有一些地方并不匹配,比如网络标签并不识别,用户自定义的符号引脚未分配等等,因此需要继续更改加以完善。经过完善的原理图如下,与阶段1中并没有什么改动,只是增加了几个切换开关便于调试。

三、成品功能测试

板卡焊接之后装配完成的样子


四、程序功能说明

这里的io口需要根据ds1032屏幕的标注对应

#ifndef __DS1302_H__
#define __DS1302_H__
#include <stm32f10x.h>
#define uchar unsigned char
#define uint unsigned int
/***DS1302时钟芯片****************************/
//CLK--->PB0
//IO---->PB1
//RES--->PB2
/****************************/
#ifndef __OLED_IIC_H
#define __OLED_IIC_H

#include "sys.h"
#include <inttypes.h>

#define OLED_ADDRESS 0x78 //ĬÈÏ0x78

//¶¨ÒåIIC×ÜÏßÁ¬½ÓµÄGPIO¶Ë¿Ú, Óû§Ö»ÐèÒªÐÞ¸ÄÏÂÃæ´úÂë¼´¿ÉÈÎÒâ¸Ä±äSCLºÍSDAµÄÒý½Å
#define OLED_SCL PBout(6) //SCLÒý½Å
#define OLED_SDA PBout(7) //SDAÒý½Å

#define OLED_SCL_GPIO_PORT GPIOB /* GPIO¶Ë¿Ú */
#define OLED_SCL_RCC RCC_APB2Periph_GPIOB /* GPIO¶Ë¿ÚʱÖÓ */
#define OLED_SCL_PIN GPIO_Pin_6 /* Á¬½Óµ½SCLʱÖÓÏßµÄGPIO */

#define OLED_SDA_GPIO_PORT GPIOB /* GPIO¶Ë¿Ú */
#define OLED_SDA_RCC RCC_APB2Periph_GPIOB /* GPIO¶Ë¿ÚʱÖÓ */
#define OLED_SDA_PIN GPIO_Pin_7 /* Á¬½Óµ½SDAÊý¾ÝÏßµÄGPIO */

//CLK--->PB0
//IO---->PB1
//RES--->PB1

这里的io口需要更改


#define OLED_SCL PBout(6) //SCLÒý½Å
#define OLED_SDA PBout(7) //SDAÒý½

四、活动总结

很感谢硬禾学堂举办的FastBond3活动,让我有机会通过这个活动使用一些未曾尝试过的芯片来做一些不大但很有意义的制作。这之中虽然遇到了很多难题,比如原理部分、第一次使用灵动作为主控芯片但跨过之后尽是收获。项目之中所做的成品确实很粗糙,稳定性实用性还有所改进空间,我将继续完善

软硬件
电路图
附件下载
Gerber_电子钟_PCB_电子钟_2024-11-01.zip
code_STM32+DS1302数字时钟.zip
团队介绍
团队成员
杨得de
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号