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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5661|回復: 6
打印 上一主題 下一主題
收起左側(cè)

STM32+BMP280+OLED+DS3231+浮點數(shù)顯示源程序

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:422924 發(fā)表于 2021-5-28 00:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
51單片機新人一個,自己最近在做DIY,雖然DIY做的很low,但是還是可以對學習STM32的小伙伴們提供一點點的價值的,發(fā)這個帖子,主要是我最近才接觸到51黑論壇,卻沒發(fā)現(xiàn)這是一個寶藏論壇,在制作DIY小玩意的過程中,很多資料也是在51黑電子論壇中找到的剛完成了一個作品忍不住提供一點點自己的價值。本設計主要的功能正如標題所示
•(1)OLED顯示。
•(2)萬年歷。
•(3)浮點數(shù)顯示BMP280的數(shù)據(jù)(大氣壓強,海拔高度,溫度)。
說它low主要是我更多的整合了別人的程序,模塊驅(qū)動整合搬運工就是我了,如果有什么問題,還麻煩各位大佬不吝賜教!超級感謝

單片機源程序如下:
//  文 件 名   : 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ù)初始化         
                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ù)初始化      
        NVIC_Configuration();// 設置中斷優(yōu)先級分組
        uart_init(9600);         //串口初始化為9600
        LED_Init();                           //初始化與LED連接的硬件接口  
        DS3231_Init();
        DS3231_Set(21,5,26,12,30,00);  //首次設置時間,設置完成后注釋掉,重新下載一次程序即可掉電保存
             //年,月,日,時,分,秒
         //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("時分秒:");
                        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:");                //一個字符八個單位,例如x為0,第一個字符后為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);         //最后一個變量是x軸的單位,每一個數(shù)字占多長
                        OLED_Showdecimal(40,1,bmp280_temp,9,16);
                        OLED_Showdecimal(40,2,high,9,16);
                        OLED_Showdecimal1(40,0,bmp280_press,9,16);

//                        //時間
//                        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ù) 2黑幣 +120 收起 理由
s3587688 + 30 絕世好帖!
admin + 90 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏11 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:229641 發(fā)表于 2021-6-11 03:01 來自手機 | 只看該作者
漂亮把按鍵完善一下就好了,對了有180的嗎?
回復

使用道具 舉報

板凳
ID:422924 發(fā)表于 2021-6-12 17:32 | 只看該作者
觸景情傷 發(fā)表于 2021-6-11 03:01
漂亮把按鍵完善一下就好了,對了有180的嗎?

沒有180的哦,沒加按鍵是因為這些功能對我來說足夠啦,主要是上班沒有那么多時間搞,我開始想的是不僅要加按鍵 而且還要加一個三級菜單的,這樣看起來更有意思。
回復

使用道具 舉報

地板
ID:229641 發(fā)表于 2021-6-14 09:00 來自手機 | 只看該作者
曾現(xiàn)路 發(fā)表于 2021-6-12 17:32
沒有180的哦,沒加按鍵是因為這些功能對我來說足夠啦,主要是上班沒有那么多時間搞,我開始想的是不僅要 ...

這兩天不是小長假嗎?
回復

使用道具 舉報

5#
ID:422924 發(fā)表于 2021-6-19 09:44 | 只看該作者
觸景情傷 發(fā)表于 2021-6-14 09:00
這兩天不是小長假嗎?

要上班要出差的
回復

使用道具 舉報

6#
ID:238216 發(fā)表于 2021-9-3 13:23 | 只看該作者
感謝,bmp280,實測ok,氣壓,溫度,海拔都可以讀出。
回復

使用道具 舉報

7#
ID:994039 發(fā)表于 2021-12-19 13:08 | 只看該作者
egang 發(fā)表于 2021-9-3 13:23
感謝,bmp280,實測ok,氣壓,溫度,海拔都可以讀出。

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

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久 | 亚洲国产中文字幕 | 中文在线a在线 | 毛片网站免费观看 | 看一级毛片视频 | 91九色婷婷| 中文久久| 久久久久久久久久久久久9999 | 亚洲一区导航 | 日韩高清中文字幕 | 久久久国产精品 | 亚洲不卡在线观看 | 国产精品污www一区二区三区 | 亚洲欧美中文日韩在线v日本 | 狠狠草视频 | 网站国产| 欧美日韩在线一区二区三区 | 国产精品夜夜夜一区二区三区尤 | 热99在线| 久久9热 | 亚州毛片 | 日韩在线一区二区 | 日韩久久中文字幕 | 欧美精品一区在线发布 | 国产精品久久久久久久三级 | 久久国产成人精品国产成人亚洲 | 日韩精品久久久久 | 欧美日韩在线视频一区 | 国产精品久久久久久亚洲调教 | 青青草原精品99久久精品66 | 国产麻豆一区二区三区 | 神马影院一区二区三区 | 欧美一区二区激情三区 | 国产小视频精品 | 精品久久久久久亚洲综合网 | 亚洲成人一区二区在线 | 欧美亚洲视频 | 午夜激情视频 | 欧美中文字幕一区二区三区亚洲 | 国产精品99久久久久久www | 国产成人精品一区二区三 |