108 lines
3.0 KiB
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);
|
|
}
|
|
}
|