STM32+WIFI获取网络时间+8位数码管显示+0.96OLED显

资料下载地址:STM32+WIFI获取网络时间+8位数码管显示+0.96OLED

1、项目介绍

主控芯片STM32C8T6

接线:串口1:PA9 PA10

OELD :PB6 PB7

数码管使用:MAX7219 8位数码管

Max7219_pinCLK PAout(5)

Max7219_pinCS PAout(3)

Max7219_pinDIN PAout(7)

2、实物图片

3、程序

cpp 复制代码
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "ESP8266.h"
#include "oled.h"
#include "RTC.h"
#include "dht11.h"
#include "7219.h"

int main(void)
{       
        delay_init();                     //延时函数初始化          
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
        uart_init(115200);         //串口初始化为115200
        LED_Init();                             //LED端口初始化
        KEY_Init();          //初始化与按键连接的硬件接口
        OLED_Init();                        //初始化OLED  
        OLED_Clear();
        ESP8266_Init();
        esp8266_get_time();//获取时间
        dispose_time_data(); //更新时间
        esp8266_get_weather();//获取天气
        dispose_wea_data();//更新天气
        RTC_Init();          //初始化与按键连接的硬件接口
        display_week();//显示星期
        SPI1_Init();
        Init_MAX7219();

  while(1)
        {       
    //0.96OLED显示
                OLED_ShowNum(0,0,calendar.w_year,4,16);//年
                OLED_ShowNum(48,0,calendar.w_month,2,16);//月
                OLED_ShowNum(80,0,calendar.w_date,2,16);//日
                OLED_ShowNum(0,2,calendar.hour,2,16);//时
                OLED_ShowNum(24,2,calendar.min,2,16);//分
                OLED_ShowNum(48,2,calendar.sec,2,16);//秒
                OLED_ShowNum(20,4,temperature,2,16);//温度
                if((calendar.hour==0)&&(calendar.min==0)&&(calendar.sec==0))
                {
                        calendar.week+=1;
                        if(calendar.week>8) calendar.week=1;
                        display_week();//显示星期
                }
               
   //        数码管显示               
        if(calendar.sec<55)
        {
                Write_Max7219(0x08, calendar.hour/10);
          Write_Max7219(0x07, calendar.hour%10);
          Write_Max7219(0x06, 0x0A);
          Write_Max7219(0x05, calendar.min/10);
          Write_Max7219(0x04, calendar.min%10);
          Write_Max7219(0x03, 0x0A);
          Write_Max7219(0x02, calendar.sec/10);
          Write_Max7219(0x01, calendar.sec%10);
                delay_ms(100);
        }
                else
                {
                Write_Max7219(0x08, calendar.w_month/10); //日期
          Write_Max7219(0x07, calendar.w_month%10);
          Write_Max7219(0x06, 0x0A);
          Write_Max7219(0x05, calendar.w_date/10);
          Write_Max7219(0x04, calendar.w_date%10);
               
                Write_Max7219(0x02, temperature/10);//温度
          Write_Max7219(0x01, temperature%10);
                delay_ms(100);
                }
        }
}
相关推荐
蓝斯4976 小时前
从.到实现一个Windows上的虚拟hid键盘设备
windows·单片机·计算机外设
熙芯XiChip7 小时前
硬实时与软实时RTOS核心区别
嵌入式硬件
伟大的前程7 小时前
unsigned int 定义的变量 在 电脑的 64 位系统中 和 32 位 cortex-m0 和 8 位的 51 单片机
单片机·嵌入式硬件
小渔村的拉线工8 小时前
1.HPM6E80 解析芯片整体工作原理和存储架构
单片机·嵌入式硬件·mcu·架构·hpm6e80
熙芯XiChip8 小时前
CAN与CANopen的本质区别
单片机
lilihewo9 小时前
Altium Designer 封装库的创建(分享pcb 3D封装库)
嵌入式硬件·51单片机
神罚天下ET10 小时前
典型arm位单片机启动流程(从上电到main.c)
c语言·arm开发·单片机
碧海银沙音频科技研究院11 小时前
蓝牙耳机使用WSDF5361锂保芯片进入船运模式实现方法
嵌入式硬件·算法
Zevalin爱灰灰11 小时前
模拟信号链电路——基于TL431的电压基准电路
单片机·嵌入式硬件
csdn杰哥12 小时前
瑞萨单片机开发教程[二十七] DTC 外部中断触发传输实验
单片机·嵌入式硬件·mongodb·瑞萨·ra6m5