mirror of
https://github.com/No-Chicken/Power-Pico.git
synced 2026-04-03 13:02:36 +08:00
移动文件夹
This commit is contained in:
61
software/Power_Pico/BSP/GATE/gate.c
Normal file
61
software/Power_Pico/BSP/GATE/gate.c
Normal file
@@ -0,0 +1,61 @@
|
||||
#include "gate.h"
|
||||
#include "math.h"
|
||||
|
||||
uint8_t gate_status = HIGH_CUR; // Default status
|
||||
|
||||
void Gate_Port_Init(void)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
|
||||
/* GPIO Ports Clock Enable */
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(EN1_PORT, EN1_PIN, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(EN2_PORT, EN2_PIN, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin : PB3 */
|
||||
GPIO_InitStruct.Pin = EN1_PIN;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(EN1_PORT, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : PB3 */
|
||||
GPIO_InitStruct.Pin = EN2_PIN;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(EN2_PORT, &GPIO_InitStruct);
|
||||
}
|
||||
|
||||
void flow_route_selection(uint8_t selection)
|
||||
{
|
||||
if(selection > HIGH_CUR)
|
||||
selection = HIGH_CUR; // Invalid selection
|
||||
if(selection < LOW_CUR)
|
||||
selection = LOW_CUR;
|
||||
if(selection == HIGH_CUR)
|
||||
{
|
||||
HAL_GPIO_WritePin(EN1_PORT, EN1_PIN, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(EN2_PORT, EN2_PIN, GPIO_PIN_RESET);
|
||||
}
|
||||
else if(selection == MID_CUR)
|
||||
{
|
||||
HAL_GPIO_WritePin(EN1_PORT, EN1_PIN, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(EN2_PORT, EN2_PIN, GPIO_PIN_SET);
|
||||
}
|
||||
else if(selection == LOW_CUR)
|
||||
{
|
||||
HAL_GPIO_WritePin(EN1_PORT, EN1_PIN, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(EN2_PORT, EN2_PIN, GPIO_PIN_RESET);
|
||||
}
|
||||
gate_status = selection; // Update the status
|
||||
}
|
||||
|
||||
uint8_t Gate_get_status(void)
|
||||
{
|
||||
return gate_status;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user