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

標(biāo)題: STM32+BMP280+OLED+DS3231+浮點(diǎn)數(shù)顯示源程序 [打印本頁]

作者: 曾現(xiàn)路    時(shí)間: 2021-5-28 00:22
標(biāo)題: STM32+BMP280+OLED+DS3231+浮點(diǎn)數(shù)顯示源程序
51單片機(jī)新人一個(gè),自己最近在做DIY,雖然DIY做的很low,但是還是可以對(duì)學(xué)習(xí)STM32的小伙伴們提供一點(diǎn)點(diǎn)的價(jià)值的,發(fā)這個(gè)帖子,主要是我最近才接觸到51黑論壇,卻沒發(fā)現(xiàn)這是一個(gè)寶藏論壇,在制作DIY小玩意的過程中,很多資料也是在51黑電子論壇中找到的剛完成了一個(gè)作品忍不住提供一點(diǎn)點(diǎn)自己的價(jià)值。本設(shè)計(jì)主要的功能正如標(biāo)題所示
•(1)OLED顯示。
•(2)萬年歷。
•(3)浮點(diǎn)數(shù)顯示BMP280的數(shù)據(jù)(大氣壓強(qiáng),海拔高度,溫度)。
說它low主要是我更多的整合了別人的程序,模塊驅(qū)動(dòng)整合搬運(yùn)工就是我了,如果有什么問題,還麻煩各位大佬不吝賜教!超級(jí)感謝

單片機(jī)源程序如下:
//  文 件 名   : main.c
//  作    者   : ZengXianLu
//  生成日期   : 2021-04-16
//           oled接線        
//              ----------------------------------------------------------------
//              GND    電源地
//              VCC  接5V或3.3v電源
//              D0   接PA5(SCL)
//              D1   接PA7(SDA)
//              RES  接PB0
//              DC   接PB1
//              CS   接PA4               
//              ----------------------------------------------------------------
//           BMP280接線        
//              ----------------------------------------------------------------
//              VCC  3.3v電源
//              GND    電源地
//              SDA    PC11
//              SCL    PC12
//              ----------------------------------------------------------------


#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "bmp.h"
#include "sys.h"
#include "usart.h"
#include "led.h"
#include "myiic.h"
#include "dsciic.h"
#include "bme280.h"
#include "DS3231.h"
int main(void)
{      
        float bmp280_temp;
        float bmp280_press;
        float bmp280_humi;
        float high;
        u8  t=0;      
         

                    //==================
         
                delay_init();                     //延時(shí)函數(shù)初始化         
                OLED_Init();                        //初始化OLED  
                OLED_Clear();
         

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  
        uart_init(9600);
        LED_Init();                                                                //初始化LED
        IIC_Init();
        bme280Init();
         
         //2021-05-23 23:39:42         

        delay_init();                     //延時(shí)函數(shù)初始化      
        NVIC_Configuration();// 設(shè)置中斷優(yōu)先級(jí)分組
        uart_init(9600);         //串口初始化為9600
        LED_Init();                           //初始化與LED連接的硬件接口  
        DS3231_Init();
        DS3231_Set(21,5,26,12,30,00);  //首次設(shè)置時(shí)間,設(shè)置完成后注釋掉,重新下載一次程序即可掉電保存
             //年,月,日,時(shí),分,秒
         //2021-05-23 23:39:42         
         
        while(1)
        {      
//        bme280GetData(&bmp280_press,&bmp280_temp,&bmp280_humi,&high);
//                //delay_ms(1500);
//                //LED0=!LED0;
//                printf("bmp280_press:%f\r\n",bmp280_press);
//                delay_ms(10);
//                printf("bmp280_temp :%f\r\n",bmp280_temp);
////                delay_ms(100);
////                printf("bmp280_humidity :%f\r\n",bmp280_humi);
//                delay_ms(10);
//                printf("bmp280_high :%f\r\n\r\n",high);      
               
                bme280GetData(&bmp280_press,&bmp280_temp,&bmp280_humi,&high);
                get_show_time();

                if(t!=calendar.sec)
                {
                        t=calendar.sec;
                        printf("年月日:");
                        printf("%ld,%d,%d\r\n",calendar.w_year+2000,calendar.w_month,calendar.w_date);
                        printf("時(shí)分秒:");
                        printf("%d,%d,%d\r\n",calendar.hour,calendar.min,calendar.sec);
                        printf("bmp280_press:%f\r\n",bmp280_press);
                        delay_ms(10);
                        printf("bmp280_temp :%f\r\n",bmp280_temp);
                        delay_ms(100);
                        printf("bmp280_humidity :%f\r\n",bmp280_humi);
                        delay_ms(10);
                        printf("bmp280_high :%f\r\n\r\n",high);
                       
                                                OLED_ShowString(0,0,"Pres:");                //一個(gè)字符八個(gè)單位,例如x為0,第一個(gè)字符后為8開始
                        OLED_ShowString(0,1,"Temp:");
                        OLED_ShowString(0,2,"High:");
                        OLED_ShowString(106,0,"Pa");
                        OLED_ShowString(106,1,"C");
                        OLED_ShowString(106,2,"m");
                        OLED_ShowNum(40,0,bmp280_press,4,16);         //最后一個(gè)變量是x軸的單位,每一個(gè)數(shù)字占多長(zhǎng)
                        OLED_Showdecimal(40,1,bmp280_temp,9,16);
                        OLED_Showdecimal(40,2,high,9,16);
                        OLED_Showdecimal1(40,0,bmp280_press,9,16);

//                        //時(shí)間
//                        OLED_ShowNum(0,3,calendar.w_year+2000,4,16);
//                        OLED_ShowString(32,3,"/");
//                        OLED_ShowNum(40,3,calendar.w_month,2,16);
//                        OLED_ShowString(56,3,"/");
//                        OLED_ShowNum(64,3,calendar.w_date,2,16);
//                        OLED_ShowNum(0,4,calendar.hour,2,16);
//                        OLED_ShowString(16,4,":");
//                        OLED_ShowNum(24,4,calendar.min,2,16);
//                        OLED_ShowString(40,4,":");
//                        OLED_ShowNum(48,4,calendar.sec,2,16);
                       
//                        LED0=!LED0;
                }
               
               
        //3333333333333333
               


        //3333333333333333
//        delay_ms(8000);
//        OLED_Clear();
                        OLED_ShowString(0,3,"Design by ZXL");
                        OLED_ShowNum(0,5,calendar.w_year+2000,4,16);
                        OLED_ShowString(32,5,"/");
                        OLED_ShowNum(40,5,calendar.w_month,2,16);
                        OLED_ShowString(56,5,"/");
                        OLED_ShowNum(64,5,calendar.w_date,2,16);
                        OLED_ShowNum(0,6,calendar.hour,2,16);
                        OLED_ShowString(16,6,":");
                        OLED_ShowNum(24,6,calendar.min,2,16);
                        OLED_ShowString(40,6,":");
                        OLED_ShowNum(48,6,calendar.sec,2,16);

//        delay_ms(8000);
      
               

        }         
      
}

代碼: 代碼.7z (234.4 KB, 下載次數(shù): 235)

作者: 觸景情傷    時(shí)間: 2021-6-11 03:01
漂亮把按鍵完善一下就好了,對(duì)了有180的嗎?
作者: 曾現(xiàn)路    時(shí)間: 2021-6-12 17:32
觸景情傷 發(fā)表于 2021-6-11 03:01
漂亮把按鍵完善一下就好了,對(duì)了有180的嗎?

沒有180的哦,沒加按鍵是因?yàn)檫@些功能對(duì)我來說足夠啦,主要是上班沒有那么多時(shí)間搞,我開始想的是不僅要加按鍵 而且還要加一個(gè)三級(jí)菜單的,這樣看起來更有意思。
作者: 觸景情傷    時(shí)間: 2021-6-14 09:00
曾現(xiàn)路 發(fā)表于 2021-6-12 17:32
沒有180的哦,沒加按鍵是因?yàn)檫@些功能對(duì)我來說足夠啦,主要是上班沒有那么多時(shí)間搞,我開始想的是不僅要 ...

這兩天不是小長(zhǎng)假嗎?
作者: 曾現(xiàn)路    時(shí)間: 2021-6-19 09:44
觸景情傷 發(fā)表于 2021-6-14 09:00
這兩天不是小長(zhǎng)假嗎?

要上班要出差的
作者: egang    時(shí)間: 2021-9-3 13:23
感謝,bmp280,實(shí)測(cè)ok,氣壓,溫度,海拔都可以讀出。
作者: jaysbbt    時(shí)間: 2021-12-19 13:08
egang 發(fā)表于 2021-9-3 13:23
感謝,bmp280,實(shí)測(cè)ok,氣壓,溫度,海拔都可以讀出。

是自己太笨了嘛,為什么我把BMP280的引腳換成(C11,C12---->A11,A12)就讀不出壓強(qiáng)來,求解






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产一区二区精品在线 | 黄片毛片在线观看 | 99re在线播放 | 日本免费一区二区三区四区 | 99精品久久99久久久久 | 国产精品久久久久久二区 | 日韩精品视频中文字幕 | 视频一区二区三区四区五区 | 久久精品国产一区二区电影 | 三区四区在线观看 | 日本一二三区高清 | 精品一区二区久久久久久久网站 | 欧美精品中文字幕久久二区 | 国产精品一区一区三区 | 日本视频在线 | 成年人在线视频 | 特黄一级| 亚洲精品国产电影 | 日本一区高清 | 久久久久国产精品午夜一区 | 日韩国产三区 | 久久精品一区二区三区四区 | 成人黄色电影免费 | 大香网伊人 | 欧美一区二区三区国产精品 | 久草资源网站 | 亚洲精品久久久久久国产精华液 | 日本精品视频在线 | a黄视频| 久久久久久久久久久91 | 精品在线看 | 91免费版在线观看 | 国产在线一区二区三区 | 日本在线视频中文字幕 | 91成人精品 | 国产一区二区电影 | 一级黄色毛片 | 亚洲第一黄色网 | 欧美三级视频在线观看 | 中文字幕一区二区三区不卡 | 国产xxxx在线 |