stm32-code/stm32f0_clock/Core/Src/app_main.c

108 lines
3.0 KiB
C

#include "app_main.h"
#include "main.h"
#include "app_main.h"
#include "bsp_lcd_st7565.h"
#include "bsp_ds3231.h"
#include "bsp_ds18b20.h"
#include "bsp_light_sens.h"
#include "bsp_buzzer.h"
#include "bsp_key.h"
#include <stdio.h>
#define LCD_8X16_STR_CENTERED(y, str) bsp_lcd_8x16_str((y), (BSP_LCD_X_PIXELS - (sizeof(str) - 1) * 8) / 2, str)
#define LCD_6X8_STR_CENTERED(y, str) bsp_lcd_6x8_str((y), (BSP_LCD_X_PIXELS - (sizeof(str) - 1) * 6) / 2, str)
void app_init(void)
{
bsp_lcd_init();
bsp_key_init();
bsp_buzzer_start();
bsp_light_sens_start_convert();
HAL_GPIO_WritePin(WIFI_RST_GPIO_Port, WIFI_RST_Pin, GPIO_PIN_RESET);
HAL_Delay(10);
HAL_GPIO_WritePin(WIFI_RST_GPIO_Port, WIFI_RST_Pin, GPIO_PIN_SET);
LCD_8X16_STR_CENTERED(0, "LCD Display Test");
LCD_6X8_STR_CENTERED(4, "By Wangyz");
HAL_StatusTypeDef res = bsp_ds3231_init();
if (res == HAL_OK) {
LCD_6X8_STR_CENTERED(7, " DS3231 init ok ");
} else {
LCD_6X8_STR_CENTERED(7, "DS3231 init error!");
}
// bsp_buzzer_play_song(song_happy_birthday, sizeof(song_happy_birthday) / 2);
bsp_lcd_clear();
}
void app_main(void)
{
ds3231_date_time_info_t date_time_info;
char str[32];
uint32_t counter = 0;
while (1) {
bsp_ds3231_get_time_date(&date_time_info);
sprintf(str, "20%02d.%02d.%02d %02d:%02d:%02d", date_time_info.year, date_time_info.month, date_time_info.date,
date_time_info.hour, date_time_info.minute, date_time_info.second);
bsp_lcd_6x8_str(0, 0, str);
uint8_t light_level = bsp_light_sens_get_level();
sprintf(str, "Light: %2d%%", light_level);
bsp_lcd_6x8_str(1, 0, str);
if (counter % 100 == 0) {
bsp_ds18b20_start_conv();
} else if (counter % 100 == 90) {
float temp;
bsp_ds18b20_get_temp(&temp);
sprintf(str, "Temp: %5.1fC", temp);
bsp_lcd_6x8_str(2, 0, str);
}
bsp_key_event_e key_event = bsp_key_get_event();
switch (key_event) {
case bsp_key_up_short:
bsp_buzzer_play_note(H1);
HAL_Delay(100);
bsp_lcd_6x8_str(3, 0, "bsp_key_up_short ");
break;
case bsp_key_ok_short:
bsp_buzzer_play_note(H2);
HAL_Delay(100);
bsp_lcd_6x8_str(3, 0, "bsp_key_ok_short ");
break;
case bsp_key_down_short:
bsp_buzzer_play_note(H3);
HAL_Delay(100);
bsp_lcd_6x8_str(3, 0, "bsp_key_down_short");
break;
case bsp_key_up_long:
bsp_buzzer_play_note(H4);
HAL_Delay(100);
bsp_lcd_6x8_str(3, 0, "bsp_key_up_long ");
break;
case bsp_key_ok_long:
bsp_buzzer_play_note(H5);
HAL_Delay(100);
bsp_lcd_6x8_str(3, 0, "bsp_key_ok_long ");
break;
case bsp_key_down_long:
bsp_buzzer_play_note(H6);
HAL_Delay(100);
bsp_lcd_6x8_str(3, 0, "bsp_key_down_long ");
break;
default:
bsp_buzzer_play_note(STOP);
break;
}
counter ++;
HAL_Delay(1);
}
}