85 lines
1.6 KiB
C
85 lines
1.6 KiB
C
#include "board.h"
|
||
|
||
board_t board;
|
||
|
||
void led_open(led_e led)
|
||
{
|
||
switch (led)
|
||
{
|
||
case LED_RED:
|
||
GPIO_SET(LED_RED_GPIO_Port, LED_RED_Pin);
|
||
break;
|
||
case LED_GREEN:
|
||
GPIO_SET(LED_GREEN_GPIO_Port, LED_GREEN_Pin);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void led_close(led_e led)
|
||
{
|
||
switch (led)
|
||
{
|
||
case LED_RED:
|
||
GPIO_RESET(LED_RED_GPIO_Port, LED_RED_Pin);
|
||
break;
|
||
case LED_GREEN:
|
||
GPIO_RESET(LED_GREEN_GPIO_Port, LED_GREEN_Pin);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
void led_toggle(led_e led)
|
||
{
|
||
switch (led)
|
||
{
|
||
case LED_RED:
|
||
GPIO_TOGGLE(LED_RED_GPIO_Port, LED_RED_Pin);
|
||
break;
|
||
case LED_GREEN:
|
||
GPIO_TOGGLE(LED_GREEN_GPIO_Port, LED_GREEN_Pin);
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @brief 初始化显示板
|
||
*
|
||
*/
|
||
void board_init(void)
|
||
{
|
||
adc_init(ADCS_1, ADC1, DMA2, LL_DMA_STREAM_0, LL_DMA_CHANNEL_0, 400,
|
||
INTEMP | INVREF); // 初始化ADC1通道,默认采集AD
|
||
}
|
||
|
||
/**
|
||
* @brief 获取当前CPU温度
|
||
* @return {float32} CPU温度
|
||
* @note
|
||
*/
|
||
float32 get_cpu_temperature(void)
|
||
{
|
||
float32 tmp = 0.0f;
|
||
board.adc_raw[ADC_TEMP_CHANNEL] = adc_result_average(ADCS_1, ADC_TEMP_CHANNEL);
|
||
tmp = adc_result_temperature(board.adc_raw[ADC_TEMP_CHANNEL]);
|
||
return tmp;
|
||
}
|
||
|
||
/**
|
||
* @brief 获取当前CPU电压
|
||
* @return {float32} CPU电压
|
||
* @note
|
||
*/
|
||
float32 get_cpu_voltage(void)
|
||
{
|
||
float32 tmp = 0.0f;
|
||
board.adc_raw[ADC_INVREF_CHANNEL] = adc_result_average(ADCS_1, ADC_INVREF_CHANNEL);
|
||
tmp = adc_result_value_local(board.adc_raw[ADC_INVREF_CHANNEL]);
|
||
return tmp;
|
||
}
|