gateway_mcu/CH32V303-FreeRTOS/App/hardwareDriver/Src/HD_GPIO.c

251 lines
7.5 KiB
C
Raw Permalink Blame History

#include "HD_GPIO.h"
/**
* @brief 놓迦뺏寮닒mcu털뙤多신,깻럿쀼寮닒多신斤口
* @param
* @retval
*/
uint8_t mcu_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOE, &GPIO_InitStructure);
return HD_InputGPIO_Read(GPIOE, GPIO_Pin_4);
}
/**
* @brief 놓迦뺏똥왯든都왠齡多신
* @param
* @retval
*/
void PwrCtrl_GPIO_Init(void)
{
/* 든都왠齡多신,칵훰꼇역폘든都 */
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
GPIO_InitStructure.GPIO_Pin = J1_PwrCtrl_GPIO_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(J1_PwrCtrl_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J1_PwrCtrl_GPIO_PROT, J1_PwrCtrl_GPIO_PIN, Bit_RESET);
GPIO_InitStructure.GPIO_Pin = J2_PwrCtrl_GPIO_PIN;
GPIO_Init(J2_PwrCtrl_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J2_PwrCtrl_GPIO_PROT, J2_PwrCtrl_GPIO_PIN, Bit_RESET);
GPIO_InitStructure.GPIO_Pin = J3_PwrCtrl_GPIO_PIN;
GPIO_Init(J3_PwrCtrl_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J3_PwrCtrl_GPIO_PROT, J3_PwrCtrl_GPIO_PIN, Bit_RESET);
GPIO_InitStructure.GPIO_Pin = J4_PwrCtrl_GPIO_PIN;
GPIO_Init(J4_PwrCtrl_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J4_PwrCtrl_GPIO_PROT, J4_PwrCtrl_GPIO_PIN, Bit_RESET);
GPIO_InitStructure.GPIO_Pin = J5_PwrCtrl_GPIO_PIN;
GPIO_Init(J5_PwrCtrl_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J5_PwrCtrl_GPIO_PROT, J5_PwrCtrl_GPIO_PIN, Bit_RESET);
GPIO_InitStructure.GPIO_Pin = J6_PwrCtrl_GPIO_PIN;
GPIO_Init(J6_PwrCtrl_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J6_PwrCtrl_GPIO_PROT, J6_PwrCtrl_GPIO_PIN, Bit_RESET);
GPIO_InitStructure.GPIO_Pin = J7_PwrCtrl_GPIO_PIN;
GPIO_Init(J7_PwrCtrl_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J7_PwrCtrl_GPIO_PROT, J7_PwrCtrl_GPIO_PIN, Bit_RESET);
GPIO_InitStructure.GPIO_Pin = J8_PwrCtrl_GPIO_PIN;
GPIO_Init(J8_PwrCtrl_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J8_PwrCtrl_GPIO_PROT, J8_PwrCtrl_GPIO_PIN, Bit_RESET);
GPIO_InitStructure.GPIO_Pin = J9_PwrCtrl_GPIO_PIN;
GPIO_Init(J9_PwrCtrl_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J9_PwrCtrl_GPIO_PROT, J9_PwrCtrl_GPIO_PIN, Bit_RESET);
}
/**
* @brief 갛六친욥왠齡多신놓迦뺏
* @param
* @retval
*/
void Android_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
/* 갛六친욥든都賈콘多신,칵훰꼇賈콘 */
GPIO_InitStructure.GPIO_Pin = GPIO_PwrCtrl_GPIO_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIO_PwrCtrl_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(GPIO_PwrCtrl_GPIO_PROT, GPIO_PwrCtrl_GPIO_PIN, Bit_RESET);
/* 릿貫갛六친욥多신,칵훰됴든틱 */
GPIO_InitStructure.GPIO_Pin = GPIO_PwrKey_GPIO_PIN;
GPIO_Init(GPIO_PwrKey_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(GPIO_PwrKey_GPIO_PROT, GPIO_PwrKey_GPIO_PIN, Bit_RESET);
}
/**
* @brief 菅뭍多신놓迦뺏
* @param
* @retval
*/
void WDI_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = WDI_GPIO_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(WDI_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(WDI_GPIO_PROT, WDI_GPIO_PIN, Bit_SET);
}
/**
* @brief led됐多신놓迦뺏
* @param
* @retval
*/
void LED_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = LED_GPIO_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(LED_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(LED_GPIO_PROT, LED_GPIO_PIN, Bit_SET);
}
/**
* @brief 寮샙485뗍畇왠齡多신놓迦뺏
* @param
* @retval
*/
void Host485De_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = J0De_GPIO_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(J0De_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J0De_GPIO_PROT, J0De_GPIO_PIN, write);
GPIO_InitStructure.GPIO_Pin = J2De_GPIO_PIN;
GPIO_Init(J2De_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J2De_GPIO_PROT, J2De_GPIO_PIN, write);
GPIO_InitStructure.GPIO_Pin = J4De_GPIO_PIN;
GPIO_Init(J4De_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J4De_GPIO_PROT, J4De_GPIO_PIN, write);
GPIO_InitStructure.GPIO_Pin = J6De_GPIO_PIN;
GPIO_Init(J6De_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J6De_GPIO_PROT, J6De_GPIO_PIN, write);
}
/**
* @brief 닒샙485뗍畇왠齡多신놓迦뺏
* @param
* @retval
*/
void Slave485De_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
GPIO_InitStructure.GPIO_Pin = J1De_GPIO_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(J1De_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J1De_GPIO_PROT, J1De_GPIO_PIN, write);
GPIO_InitStructure.GPIO_Pin = J3De_GPIO_PIN;
GPIO_Init(J3De_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J3De_GPIO_PROT, J3De_GPIO_PIN, write);
GPIO_InitStructure.GPIO_Pin = J5De_GPIO_PIN;
GPIO_Init(J5De_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J5De_GPIO_PROT, J5De_GPIO_PIN, write);
GPIO_InitStructure.GPIO_Pin = J7De_GPIO_PIN;
GPIO_Init(J7De_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J7De_GPIO_PROT, J7De_GPIO_PIN, write);
GPIO_InitStructure.GPIO_Pin = J8De_GPIO_PIN;
GPIO_Init(J8De_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J8De_GPIO_PROT, J8De_GPIO_PIN, write);
GPIO_InitStructure.GPIO_Pin = J9De_GPIO_PIN;
GPIO_Init(J9De_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(J9De_GPIO_PROT, J9De_GPIO_PIN, write);
}
/**
* @brief 놓迦뺏왠齡닒mcu릿貫多신
* @param
* @retval
*/
void ctrlSlave_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
GPIO_InitStructure.GPIO_Pin = ctrlSlave_GPIO_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(ctrlSlave_GPIO_PROT, &GPIO_InitStructure);
GPIO_WriteBit(ctrlSlave_GPIO_PROT, ctrlSlave_GPIO_PIN, Bit_SET);
}
/**
* @brief <20>零IO渴놔든틱
* @param GPIOx
GPIO_Pin
BitVal
* @retval
*/
void HD_GPIO_Write(GPIOTypeDef *GPIOx, GPIOPin GPIO_Pin, BitOperation BitVal)
{
GPIO_WriteBit(GPIOx, GPIO_Pin, BitVal);
}
/**
* @brief 돤돕IO든틱
* @param GPIOx
GPIO_Pin
* @retval
*/
uint8_t HD_InputGPIO_Read(GPIOTypeDef *GPIOx, GPIOPin GPIO_Pin)
{
return GPIO_ReadInputDataBit(GPIOx, GPIO_Pin);
}
/**
* @brief 돤돕IO든틱
* @param GPIOx
GPIO_Pin
* @retval
*/
uint8_t HD_OutputGPIO_Read(GPIOTypeDef *GPIOx, GPIOPin GPIO_Pin)
{
return GPIO_ReadOutputDataBit(GPIOx, GPIO_Pin);
}