gateway_mcu/CH32V303-FreeRTOS/App/functionalModule/Src/FM_GPIO.c

120 lines
3.6 KiB
C
Raw 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 "FM_GPIO.h"
/**
* @brief 初始化GPIO
* @param
* @retval
*/
void FM_GPIO_Init(void)
{
HD_GPIO_Init();
}
/**
* @brief 喂狗
* @param
* @retval
*/
void feedDog(void)
{
HD_GPIO_Write(WDI_GPIO_PROT, WDI_GPIO_PIN, GPIO_RESET);
HD_GPIO_Write(WDI_GPIO_PROT, WDI_GPIO_PIN, GPIO_SET);
}
/**
* @brief 电源输出状态设置
* @param type 电源输出接口
state 输出状态
* @retval
*/
void writePwrCtrlState(uint8_t type, uint8_t State)
{
if (type == J1_PwrCtrl) {
HD_GPIO_Write(J1_PwrCtrl_GPIO_PROT, J1_PwrCtrl_GPIO_PIN, State);
} else if (type == J2_PwrCtrl) {
HD_GPIO_Write(J2_PwrCtrl_GPIO_PROT, J2_PwrCtrl_GPIO_PIN, State);
} else if (type == J3_PwrCtrl) {
HD_GPIO_Write(J3_PwrCtrl_GPIO_PROT, J3_PwrCtrl_GPIO_PIN, State);
} else if (type == J4_PwrCtrl) {
HD_GPIO_Write(J4_PwrCtrl_GPIO_PROT, J4_PwrCtrl_GPIO_PIN, State);
} else if (type == J5_PwrCtrl) {
HD_GPIO_Write(J5_PwrCtrl_GPIO_PROT, J5_PwrCtrl_GPIO_PIN, State);
} else if (type == J6_PwrCtrl) {
HD_GPIO_Write(J6_PwrCtrl_GPIO_PROT, J6_PwrCtrl_GPIO_PIN, State);
} else if (type == J7_PwrCtrl) {
HD_GPIO_Write(J7_PwrCtrl_GPIO_PROT, J7_PwrCtrl_GPIO_PIN, State);
} else if (type == J8_PwrCtrl) {
HD_GPIO_Write(J8_PwrCtrl_GPIO_PROT, J8_PwrCtrl_GPIO_PIN, State);
} else if (type == J9_PwrCtrl) {
HD_GPIO_Write(J9_PwrCtrl_GPIO_PROT, J9_PwrCtrl_GPIO_PIN, State);
} else if (type == Android_PwrCtrl) {
HD_GPIO_Write(GPIO_PwrCtrl_GPIO_PROT, GPIO_PwrCtrl_GPIO_PIN, State);
}
}
/**
* @brief 读取电源输出状态
* @param type 电源输出接口
* @retval state 输出状态
0xFF 输入类型错误
PwrCtrlClose 关闭状态
PwrCtrlOpen 开启状态
*/
uint8_t readPwrCtrlState(uint8_t type)
{
if (type == J1_PwrCtrl) {
return HD_OutputGPIO_Read(J1_PwrCtrl_GPIO_PROT, J1_PwrCtrl_GPIO_PIN);
} else if (type == J2_PwrCtrl) {
return HD_OutputGPIO_Read(J2_PwrCtrl_GPIO_PROT, J2_PwrCtrl_GPIO_PIN);
} else if (type == J3_PwrCtrl) {
return HD_OutputGPIO_Read(J3_PwrCtrl_GPIO_PROT, J3_PwrCtrl_GPIO_PIN);
} else if (type == J4_PwrCtrl) {
return HD_OutputGPIO_Read(J4_PwrCtrl_GPIO_PROT, J4_PwrCtrl_GPIO_PIN);
} else if (type == J5_PwrCtrl) {
return HD_OutputGPIO_Read(J5_PwrCtrl_GPIO_PROT, J5_PwrCtrl_GPIO_PIN);
} else if (type == J6_PwrCtrl) {
return HD_OutputGPIO_Read(J6_PwrCtrl_GPIO_PROT, J6_PwrCtrl_GPIO_PIN);
} else if (type == J7_PwrCtrl) {
return HD_OutputGPIO_Read(J7_PwrCtrl_GPIO_PROT, J7_PwrCtrl_GPIO_PIN);
} else if (type == J8_PwrCtrl) {
return HD_OutputGPIO_Read(J8_PwrCtrl_GPIO_PROT, J8_PwrCtrl_GPIO_PIN);
} else if (type == J9_PwrCtrl) {
return HD_OutputGPIO_Read(J9_PwrCtrl_GPIO_PROT, J9_PwrCtrl_GPIO_PIN);
} else if (type == Android_PwrCtrl) {
return HD_OutputGPIO_Read(GPIO_PwrCtrl_GPIO_PROT, GPIO_PwrCtrl_GPIO_PIN);
}
return 0xFF;
}
/**
* @brief 开始复位安卓模块7-10S后安卓模块会复位
* @param
* @retval
*/
void startResetAndroidModule(void)
{
HD_GPIO_Write(GPIO_PwrKey_GPIO_PROT, GPIO_PwrKey_GPIO_PIN, GPIO_SET);
}
/**
* @brief 停止复位安卓模块使用开始复位安卓模块函数7-10S后安卓模块复位后使用该函数
* @param
* @retval
*/
void stopResetAndroidModule(void)
{
HD_GPIO_Write(GPIO_PwrKey_GPIO_PROT, GPIO_PwrKey_GPIO_PIN, GPIO_RESET);
}
/**
* @brief 翻转LED灯电平
* @param
* @retval
*/
void ledToggle(void)
{
HD_GPIO_Write(LED_GPIO_PROT, LED_GPIO_PIN
, !(HD_OutputGPIO_Read(LED_GPIO_PROT, LED_GPIO_PIN)));
}