120 lines
3.6 KiB
C
120 lines
3.6 KiB
C
#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)));
|
||
}
|