久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: STM32F030F4可充電的鋰電池桌面時(shí)鐘 [打印本頁]

作者: eyancool    時(shí)間: 2025-4-26 22:41
標(biāo)題: STM32F030F4可充電的鋰電池桌面時(shí)鐘
3.7V鋰電池供電的0.8寸數(shù)碼管超亮數(shù)碼時(shí)鐘,點(diǎn)亮你的半個(gè)房間。電池充電使用TP4054,升壓電路使用RY3750這些元件在立創(chuàng)均有大量庫存。
夜晚效果圖
/**
******************************************************************************
* 文件名程: main.c
* 作    者: 東莞鄧凱哥
* 功    能: 主函數(shù)
* 硬    件: STM32F030F4P-DesktopClock-V0.1
* 說明:桌面數(shù)碼管時(shí)鐘
* 軟件版本 V0.0.1(2025/4/20 16:02)
******************************************************************************
**/
#include "main.h"
#include "user_gpio.h"
#include "user_seg.h"
#include "user_adc.h"
#include "user_i2c.h"
#include "user_rcc.h"
#include "type_ntc_tab.h"
#include "timepare.h"
#include "pcf8563.h"


RCC_ClocksTypeDef SRCC_CLOCK;



uint16_t ntc_val,adc_int,ntc_tmp,clpiont;
int16_t ntc_temp;

void seg_display_temp(int16_t data)
{
        if( data < 0 )
        {
                TM1629_DisplayChar(0, 0x11);  // 負(fù)溫度
        }else{
                TM1629_DisplayChar(0, 0x12);  // 正溫度
        }
        
        TM1629_DisplayChar(2, data%1000%100/10);                // 第三位帶小數(shù)點(diǎn)顯示
        TM1629_DisplayChar(4, data%1000%100%10);                  // 第一位顯示數(shù)字 0
}

void seg_display_clock(int16_t hours,int16_t min,uint8_t piont)
{
        TM1629_DisplayChar(8, hours/10);         
        if( piont )
        {
                TM1629_DisplayPiontChar(10, hours%10);         // 顯示中間點(diǎn) DP
        }else{
                TM1629_DisplayChar(10, hours%10);                 // 不顯示DP
        }
        TM1629_DisplayChar(12, min/10);         
        TM1629_DisplayChar(14, min%10);         
}


float Vx1,Rx1,NTC_t1,NTC_t2;
int main(void)
{
        user_rcc_init();
        RCC_GetClocksFreq(&SRCC_CLOCK);
        SysTick_Config(SRCC_CLOCK.SYSCLK_Frequency / 1000);
        user_output_init();
        user_adc_init();
        user_i2c1_init();
        TM1629_Init();
        
//        PCF8563_SetTime(25, 4, 16, 19, 02, 00,3);
               
        while (1)
        {
                if( TimePare.Tim1ms_flag == 1 )                //1ms任務(wù)
                {

                        TimePare.Tim1ms_flag = 0;
                        if( ++TimePare.Tim10ms_count >= 10 )
                        {
                                TimePare.Tim10ms_count = 0;
                                TimePare.Tim10ms_flag = 1;
                        }
                        
                        if( ++TimePare.Tim50ms_count >= 50 )
                        {
                                TimePare.Tim50ms_count = 0;
                                TimePare.Tim50ms_flag = 1;
                        }
                }
               
               
               
                if( TimePare.Tim10ms_flag == 1 )        //10ms 任務(wù)
                {

                        TimePare.Tim10ms_flag = 0;
                        if( ++TimePare.Tim100ms_count >= 10 )
                        {
                                TimePare.Tim100ms_count = 0;
                                TimePare.Tim100ms_flag = 1;
                        }
                        
                        if( ++TimePare.Tim200ms_count >= 20 )
                        {
                                TimePare.Tim200ms_count = 0;
                                TimePare.Tim200ms_flag = 1;
                        }
                }
               
               
                if( TimePare.Tim50ms_flag == 1 )        //50ms 任務(wù)
                {
                        
                        TimePare.Tim50ms_flag = 0;
                }
               
                if( TimePare.Tim100ms_flag == 1 )        //100ms 任務(wù)
                {
                        
                        TimePare.Tim100ms_flag = 0;
                        if( ++TimePare.Tim500ms_count >= 5 )
                        {
                                TimePare.Tim500ms_count = 0;
                                TimePare.Tim500ms_flag = 1;
                        }
                }
               
                if( TimePare.Tim200ms_flag == 1 )        //200ms 任務(wù)
                {
                        TimePare.Tim200ms_flag = 0;
                }
               
                if( TimePare.Tim500ms_flag == 1 )        //500ms 任務(wù)
                {
                        PCF8563_GetTime();
                        seg_display_temp(ntc_temp);
                        clpiont ++;
                        if( clpiont == 1)
                        {
                                seg_display_clock(Times[4],Times[5],1);
                        }else if(clpiont >= 2)
                        {
                                seg_display_clock(Times[4],Times[5],0);
                                clpiont = 0;
                        }
                        TimePare.Tim500ms_flag = 0;
                        if( ++TimePare.Tim1s_count >= 2 )
                        {
                                TimePare.Tim1s_count = 0;
                                TimePare.Tim1s_flag = 1;
                        }
                        
                        if( ++TimePare.Tim4s_count >= 8 )
                        {
                                TimePare.Tim4s_count = 0;
                                TimePare.Tim4s_flag = 1;
                        }
                }
               
                if( TimePare.Tim1s_flag == 1 )                //1000ms 任務(wù)
                {
                        TimePare.Tim1s_flag = 0;
                }
               
                if( TimePare.Tim4s_flag == 1 )                //4000ms 任務(wù)
                {
                        TimePare.Tim4s_flag = 0;
                }
        }
}

void DMA1_Channel1_IRQHandler()
{
        if( DMA_GetITStatus(DMA1_IT_TC1) )
        {
                ntc_tmp += ADC_Buffer[0];
                adc_int++;
                if(adc_int>=16)
                {
                        ntc_val = ntc_tmp>>4;
                        adc_int = 0;
                        ntc_tmp = 0;
                        ntc_temp = get_type_ntc_temp(ntc_val);
                }
                DMA_ClearITPendingBit(DMA1_IT_TC1); //清除DMA1通道1傳輸結(jié)束標(biāo)志
        }
}

202504265.jpg (2.45 MB, 下載次數(shù): 0)

202504265.jpg

202504264.jpg (1.99 MB, 下載次數(shù): 0)

202504264.jpg

202504263.jpg (1.99 MB, 下載次數(shù): 0)

202504263.jpg

202504262.jpg (2.63 MB, 下載次數(shù): 0)

202504262.jpg

STM32F030F4_Desktop_Clock_V0.1.7z

931.49 KB, 下載次數(shù): 0, 下載積分: 黑幣 -5

Schematic_STM32F030F4_Desktop_Clock_V0.1_2025-04-26.pdf

177.46 KB, 下載次數(shù): 0, 下載積分: 黑幣 -5






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 97人人爱| 丁香色婷婷| 日韩精品色网 | 久久久国产精品 | 国产精品自产拍 | 成人免费一区二区三区视频网站 | 亚洲国产精品久久久 | 日韩一区二区在线观看 | 日日干夜夜干 | 91精品国产91久久综合桃花 | 欧美一级电影免费 | www.黄色片视频 | 久草电影网| 国产成人精品免高潮在线观看 | 欧美日韩精品综合 | 欧美aaa级 | 亚洲精品电影在线观看 | 先锋av资源网 | 国产男女猛烈无遮掩视频免费网站 | 美女视频黄色的 | 成年人精品视频 | 国产一区二区三区四区五区加勒比 | www.国产精| 午夜网站视频 | 中文字幕一区二区三区在线观看 | 久久精品日产第一区二区三区 | 特a毛片 | 久久99精品久久久久久琪琪 | 欧美激情精品久久久久久 | 天天干,夜夜操 | 91久久久久久久 | 毛片a区| 成人在线播放网址 | 免费在线观看一级毛片 | 国产色播av在线 | 国产高清精品在线 | 亚洲三级国产 | 美女视频黄色的 | 国产精品网页 | 国产精品爱久久久久久久 | 草草草网站 |