开发板:STM32F030R8T6 Nucleo-64。
显示部分:七段LED1.8寸数码管(红色共阴)X 4,两个红色LED秒显示。
这是以前做实验用的,现在正好拿来用上。
陀螺仪:MPU-6050,用来检测姿态,控制是否镜像显示。
开始之前,我们先要把所用到的资源分配一下,也就是I/O和定时器、中断啥的,嘿嘿。
Ok!我们从显示开始分配。
网上找的LED数码管的说明,在这里用共阴型的,后缀是AS。1、5脚是位选择,其它的是段显示。一共4位。所以,7段LED数码管X4个共需要7个段显示I/O口+4个位选择口+一个秒显示控制口,12根I/O口线。给段显示I/O线是:PB2..8,7根。位选:PC6..10,5根。电路原理图如下:
注:R1-R5是LED限流电阻,阻值根据所选的数码管调整。
MPU-6050陀螺仪采用I2C总线。SCL、SDA 2根I/O口线,使用F030的I2C-2,PB10、PB11。
实时时钟RTC:先看看数据手册怎么说的
全是那啥语。
主要意思就是RTC是一个独立的BCD定时器/计数器。
使用BCD(二进制编码十进制)格式的分秒、秒、分钟、小时(12或24种格式)、星期、日期的日历;自动校正每月天数28, 29(闰年)、30和31天;具有可停止和待机模式唤醒的可编程报警、数字校准电路等等;
RTC时钟源可以是:一个32.768 kHz的外部晶体、谐振器或振荡器、内部低功率RC振荡器(典型频率为40千赫)、高速外部时钟除以32。
板上用的是32.768 kHz的外部晶体。
按键:这要看是要用软件还是硬件实现需要的功能了,硬件实现可以减少软件的编写难度,增加了成本,这个要自己权衡利弊,灵活掌握。
板上提供USER和RESET两个按键。其中USER接到PC13,由于我们需要使用PC13脚输出一个秒信号,用以控制秒显示LED闪烁,所以把USER按键改接到PC5。
把SB17短接0Ω电阻取下,用导线连接到PC5脚。
秒信号PC13输出到中断EXT0,用杜邦线连接PC13->PB0。
电源使用外置12V直流电源,从板上的VIN脚输入。JP5跳线改接到E5V。
至此,电路设计基本完成,后续有调整再修改。
本文旨在抛砖引玉,欢迎拍砖。本人水平有限,疏漏之处在所难免,请谅解。