motor_f407/User/board/board.c

85 lines
1.6 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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;
}