久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STM32HAL庫軟件IO口模擬IIC驅動OLED顯示溫濕度及RTC時間
[打印本頁]
作者:
nxw_toyosz
時間:
2025-6-11 16:59
標題:
STM32HAL庫軟件IO口模擬IIC驅動OLED顯示溫濕度及RTC時間
51hei圖片_20250611165740.jpg
(203.25 KB, 下載次數: 0)
下載附件
2025-6-11 16:57 上傳
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "dht11.h"
#include "led.h"
//#include "lcd.h"
#include "soft_iic_oled.h"
#include "soft_iic.h"
#include "rtc.h"
//#include "usmart.h"
#include "stdio.h" //printf函數頭文件,將浮點數轉換為字符串
//#include "sdio_sdcard.h"
//#include "text.h"
//#include "exfuns.h"
extern const uint8_t BMP1[];
uint8_t temperature;
uint8_t humidity;
char temp[6]={0}; //讀出的溫度暫存寄存器
char humi[6]={0}; //讀出的濕度暫存寄存器
void dat_dis() //溫濕度數據處理轉為字符串
{
//humi[0]='R';
//humi[1]=':';
humi[0]=humidity/10+0x30;
humi[1]=humidity%10+0x30;
//humi[4]='%';
//humi[5]='\0'; //結束符,如果不要則后面會繼續寫數據
//temp[0]='T';
//temp[1]=':';
temp[0]=temperature/10+0x30;
temp[1]=temperature%10+0x30;
//temp[4]='C';
//temp[5]='\0';
}
int main(void)
{
uint8_t t;
/************************程序必備4項****************************/
HAL_Init(); /* 初始化HAL庫 */
sys_stm32_clock_init(RCC_PLL_MUL9); /* 設置時鐘, 72Mhz */
delay_init(72); /* 延時初始化 */
usart_init(115200); /* 串口初始化為115200 */
/***********************所有外設初始化***************************/
led_init();
iic_init();
oled_init(); //OLED初始化
//lcd_init();
OLED_ShowPicture(0,0,128,64,BMP1,1);
oled_refresh_gram(); /*更新顯示到OLED,只有此語句才會有顯示*/
rtc_init(); //TRC初始化
//exfuns_init(); /* 為fatfs相關變量申請內存,必須初始化否則無漢字顯示 */
//f_mount(fs[0], "0:", 1); /* 掛載SD卡 */
//f_mount(fs[1], "1:", 1); /* 掛載FLASH,必須掛載否則無漢字顯示 */
// while (fonts_init()) /* 檢查字庫,必須初始化字庫否則無漢字顯示 */
// {
// lcd_clear(WHITE); /* 清屏 */
// }
rtc_set_alarm(2025, 6, 11, 12, 0, 0); /* 設置一次鬧鐘12;0;0 */
rtc_set_time(2025,6,11,11,50,42); /* 2025-06-11; 11-50-42 */
while (DHT11_Init()) /* DHT11初始化 */
{
oled_show_string(10, 16, "DHT11 Error",16);
delay_ms(200);
}
delay_ms(1000); //延時
OLED_ColorTurn(0); //0正常顯示,1 反色顯示
OLED_DisplayTurn(0); //0正常顯示 1 屏幕翻轉顯示
oled_clear(); //清屏
//OLCD顯示時間
/**************************************************/
OLED_ShowChinese(45,0,9,16); //年,16X16字體顯示
OLED_ShowChinese(70,0,10,16); //月
OLED_ShowChinese(96,0,2,16); //日
OLED_ShowChinese(0,48,11,16); //溫
OLED_ShowChinese(13,48,13,16); //度
OLED_ShowChinese(69,48,12,16); //濕
OLED_ShowChinese(82,48,13,16); //度
OLED_ShowChinese(48,48,14,16); //℃
OLED_ShowChinese(116,48,15,16); //%
oled_refresh_gram(); /*更新顯示到OLED,只有此語句才會有顯示*/
/**************************************************/
//TFTLCD顯示時間
/**************************************************/
// text_show_string(10+4*16, 30, 200, 24, "年", 24, 0, RED);//“年”字前面4個數字,若顯示24大小,則像素為12X24
// text_show_string(10+6*16+32, 30, 200, 24, "月", 24, 0, RED);
// text_show_string(10+8*16+64, 30, 200, 24, "日", 24, 0, RED);
//
// text_show_string(10+4*16, 80, 200, 24, "時", 24, 0, RED);
// text_show_string(10+6*16+32, 80, 200, 24, "分", 24, 0, RED);
// text_show_string(10+8*16+64, 80, 200, 24, "秒", 24, 0, RED);
//
// text_show_string(10, 120, 200, 24, "溫度: ℃", 24, 0, RED);
// text_show_string(10, 160, 200, 24, "濕度: %", 24, 0, RED);
/**************************************************/
while(1)
{
delay_ms(10);
DHT11_Read_Data(&temperature, &humidity); /*讀取溫濕度值 */
dat_dis();
//OLED顯示溫濕度
/**************************************************/
oled_show_string(32,51,temp,12);
oled_show_string(100,51,humi,12);
//oled_show_num(32,51,temp[0],1,12);
//oled_show_num(40,51,temp[1],1,12);
//oled_show_num(100,51,humi[0],1,12);
//oled_show_num(108,51,humi[1],1,12);
oled_refresh_gram(); /*更新顯示到OLED,只有此語句才會有顯示*/
/**************************************************/
//TFTLCD顯示溫濕度
/**************************************************/
// lcd_show_num(10+3*24,120,temperature,2,32,BLUE);
// lcd_show_num(10+3*24,160,humidity, 2,32,BLUE);
/**************************************************/
if(t!=calendar.sec)
{
t=calendar.sec;
rtc_get_time();
//OLED顯示時間
/******************************************************************/
oled_show_num(12,3,calendar.year,4,12); //輸出2025,小字體
oled_show_num(58,3,calendar.month,2,12); //輸出月份
oled_show_num(83,3,calendar.date,2,12); //輸出日期
OLED_DrawLine(10,16,117,16,1); //輸出上橫線
OLED_DrawLine(13,19,114,19,1);
OLED_DrawLine(10,16,10,48,1); //輸出左豎線
OLED_DrawLine(13,19,13,45,1);
OLED_DrawLine(117,16,117,48,1); //輸出右豎線℃
OLED_DrawLine(114,19,114,45,1);
OLED_DrawLine(10,48,117,48,1); //輸出下豎線
OLED_DrawLine(13,45,114,45,1);
oled_refresh_gram(); /*更新顯示到OLED,只有此語句才會有顯示*/
oled_show_num(27,20,calendar.hour,2,24); // 輸出時
oled_show_num(63,20,calendar.min, 2,24); // 輸出分
oled_show_num(91,29,calendar.sec, 2,12); // 輸出秒
oled_refresh_gram(); /*更新顯示到OLED,只有此語句才會有顯示*/
/*********************************************************************/
//TFTLCD顯示時間
/*********************************************************************/
// lcd_show_num(10, 30,calendar.year, 4,24,BLUE);
// lcd_show_num(10+4*24, 30,calendar.month,2,24,BLUE);
// lcd_show_num(10+6*24+12, 30,calendar.date, 2,24,BLUE);
//
// lcd_show_num(10+1*24, 80,calendar.hour, 2,24,BLUE);
// lcd_show_num(10+4*24, 80,calendar.min, 2,24,BLUE);
// lcd_show_num(10+6*24+12, 80,calendar.sec, 2,24,BLUE);
/**********************************************************************/
delay_ms(500); //延時,避免刷新DHT11數據太快
}
}
}
原理圖: 無
仿真: 無
代碼:
Soft_IIC驅動4線OLED顯示RTC時間.7z
(2.39 MB, 下載次數: 0)
2025-6-11 17:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲无av在线中文字幕
|
日韩不卡免费视频
|
亚洲精品1区
|
中文字幕有码在线
|
饥渴放荡受np公车奶牛
|
国产精品视频网站
|
国产精品麻豆免费版
|
91福利区
|
中文字幕免费av
|
一级黄色网
|
欧美日韩不卡
|
国产又粗又长又爽
|
国内福利视频
|
91精品91久久久中77777
|
天堂av片
|
中文字幕在线视频观看
|
国产日韩欧美综合
|
日韩亚洲欧美在线
|
亚洲网站在线
|
国产精品原创
|
国产欧美一区二区三区视频在线观看
|
国产一区二区免费看
|
日韩三级在线播放
|
黄色天堂
|
亚洲国产成人精品女人久久久
|
久久这里只有精品6
|
日韩黄色在线
|
成人中文字幕在线观看
|
一级片大全
|
日韩精品视频网站
|
亚洲最大av网站
|
久久精品美女
|
久久av影院
|
欧美精品日韩少妇
|
亚洲激情网
|
欧美性猛交99久久久久99按摩
|
日本黄色视
|
91av精品
|
国产亚洲天堂
|
精品久久久久久久久久久久久
|
国产高清视频在线
|