LL01/code_boot_out/asil/bsp/gpio_cfg.c

655 lines
19 KiB
C
Raw Normal View History

2025-04-26 16:03:23 +08:00
/** ##########################################################################
** Filename :
** Project :
** Module :
** Processor :
** Version :
** Compiler :
** Date/Time :
** Abstract :
** Contents :
** Note :
**
** (c) Copyright dmdz Co.,Ltd
** --------------------------------------------------------------------------
** R E V I S I O N H I S T O R Y
** --------------------------------------------------------------------------
** Date Ver Author Description
** -20230602- --V1.0-- --mingyea--- ----
** #########################################################################*/
/*---------------------------------------------------------------------------
- I N C L U D E F I L E S
----------------------------------------------------------------------------*/
#include "gpio.h"
#include "nvic.h"
#include "wdog.h"
//#include "power_manager_app.h"
static void gpio_ext_interrupt_init(void);
static void gpio_ext_interrupt_de_init(void);
static void gpio_pwm_init(void);
static void gpio_key_init(void);
static void gpio_adc_init(void);
static void gpio_can_init(void);
static void gpio_test_init(void);
static void gpio_idle_init(void);
typedef struct
{
u8 state;
u8 test[8];
}gpio_cfg_s;
static gpio_cfg_s g_gpio_cfg;
//void gpio_isr_callback(void *device, uint32_t wpara, uint32_t lpara);
/**
* @brief GPIO中断函数
* @param void
* @retval void
*/
void GPIO_IRQHandler(void)
{
g_gpio_cfg.test[0]++;
//can RX 中断
if(FL_GPIO_IsActiveFlag_EXTI(GPIO, FL_GPIO_EXTI_LINE_1))
{
g_gpio_cfg.test[1]++;
#ifdef CAN_AUTOSAR_NM_EN
//cannm_app_set_event(CANNM_EVENT_EXT_KEY);
#endif
//power_manage_app_set_wakeup(); //TO MODIFY
FL_GPIO_ClearFlag_EXTI(GPIO, FL_GPIO_EXTI_LINE_1);
}
}
#if 0
/**
* gpio_led_init
*
* @param[in] none
* @return none
*
* @brief init led control gpio
*
*/
void gpio_i2c_init(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.pin = I2C0_SCL_PIN_MASK;
GPIO_InitStruct.mode = FL_GPIO_MODE_DIGITAL;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_OPENDRAIN; //FL_GPIO_OUTPUT_OPENDRAIN
GPIO_InitStruct.pull = FL_DISABLE;
GPIO_InitStruct.remapPin = FL_DISABLE;
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(I2C0_SCL_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = I2C0_SDA_PIN_MASK;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_OPENDRAIN;
FL_GPIO_Init(I2C0_SDA_GPIO, &GPIO_InitStruct);
}
/**
* gpio_lin_init
*
* @param[in] none
* @return none
*
* @brief init led control gpio
*
*/
void gpio_lin_init(void)
{
#if PROJECT_NAME_CURRENT == PROJECT_NAME_DEMO
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
LIN_SLP_DISABLE();
GPIO_InitStruct.pin = LIN_SLP_PIN_MASK;
GPIO_InitStruct.mode = FL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.pull = FL_DISABLE;
FL_GPIO_Init(LIN_SLP_GPIO, &GPIO_InitStruct);
/* PA13:UART0-RX PA14:UART0-TX */
GPIO_InitStruct.pin = LIN_RX_PIN_MASK | LIN_TX_PIN_MASK;
GPIO_InitStruct.mode = FL_GPIO_MODE_DIGITAL;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_OPENDRAIN; /* 推挽输出 */
GPIO_InitStruct.pull = FL_ENABLE;
GPIO_InitStruct.remapPin = FL_DISABLE;
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(LIN_RX_GPIO, &GPIO_InitStruct);
#else
#endif
}
#endif
//普通输出io的配置
static void gpio_output_init(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.pin = O_MDT_CTR_PIN_MASK;
GPIO_InitStruct.mode = FL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.pull = FL_DISABLE;
GPIO_InitStruct.remapPin = FL_DISABLE;
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(O_MDT_CTR_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = O_12V_CTR_PIN_MASK ;
FL_GPIO_Init(O_12V_CTR_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = O_5V_CTR_PIN_MASK ;
FL_GPIO_Init(O_5V_CTR_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = O_KIT_CTR_PIN_MASK ;
FL_GPIO_Init(O_KIT_CTR_GPIO, &GPIO_InitStruct);
O_MDT_CTR_DISABLE();
O_12V_CTR_DISABLE();
O_5V_CTR_DISABLE();
O_KIT_CTR_DISABLE();
O_MDT_PWM_DISABLE();
O_DEN_CTR_DISABLE();
}
/**
* gpio_lin_init
*
* @param[in] none
* @return none
*
* @brief init led control gpio
*
*/
static void gpio_pwm_init(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.pin = PWM_LED_PIN_MASK;
GPIO_InitStruct.mode = FL_GPIO_MODE_DIGITAL;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.pull = FL_DISABLE;
GPIO_InitStruct.analogSwitch = FL_DISABLE;
GPIO_InitStruct.remapPin = PWM_LED_REPIN;
FL_GPIO_Init(PWM_LED_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.remapPin = PWM_HS_REPIN;
GPIO_InitStruct.pin = PWM_HS_PIN_MASK ;
FL_GPIO_Init(PWM_HS_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.remapPin = PWM_L1_REPIN;
GPIO_InitStruct.pin = PWM_L1_PIN_MASK ;
FL_GPIO_Init(PWM_L1_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.remapPin = PWM_L2_REPIN;
GPIO_InitStruct.pin = PWM_L2_PIN_MASK ;
FL_GPIO_Init(PWM_L2_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.remapPin = PWM_R1_REPIN;
GPIO_InitStruct.pin = PWM_R1_PIN_MASK ;
FL_GPIO_Init(PWM_R1_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.remapPin = PWM_R2_REPIN;
GPIO_InitStruct.pin = PWM_R2_PIN_MASK ;
FL_GPIO_Init(PWM_R2_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.remapPin = PWM_LH_REPIN;
GPIO_InitStruct.pin = PWM_LH_PIN_MASK ;
FL_GPIO_Init(PWM_LH_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.remapPin = PWM_RH_REPIN;
GPIO_InitStruct.pin = PWM_RH_PIN_MASK ;
FL_GPIO_Init(PWM_RH_GPIO, &GPIO_InitStruct);
}
/**
* GPIO_ADC_Init
*
* @param[in] none
* @return none
*
* @brief init key control gpio
*
*/
static void gpio_key_init(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.pin = KEY_1_PIN_MASK;
GPIO_InitStruct.mode = FL_GPIO_MODE_INPUT;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.pull = FL_DISABLE;
GPIO_InitStruct.remapPin = FL_DISABLE;
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(KEY_1_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = KEY_2_PIN_MASK;
FL_GPIO_Init(KEY_2_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = KEY_3_PIN_MASK;
FL_GPIO_Init(KEY_3_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = KEY_4_PIN_MASK;
FL_GPIO_Init(KEY_4_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = KEY_5_PIN_MASK;
FL_GPIO_Init(KEY_5_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = KEY_6_PIN_MASK;
FL_GPIO_Init(KEY_6_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = KEY_1_ENCODE_PIN_MASK;
FL_GPIO_Init(KEY_1_ENCODE_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = KEY_2_ENCODE_PIN_MASK;
FL_GPIO_Init(KEY_2_ENCODE_GPIO, &GPIO_InitStruct);
}
/**
* GPIO_ADC_Init
*
* @param[in] none
* @return none
*
* @brief init led control gpio
*
*/
static void gpio_adc_init(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
/* 配置引脚为模拟功能 */
/* ADC ADC_1 引脚 PD1 */
GPIO_InitStruct.pin = ADC_CHANNEL_0_PIN_MASK;
GPIO_InitStruct.mode = FL_GPIO_MODE_ANALOG;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.pull = FL_DISABLE;
GPIO_InitStruct.remapPin = FL_DISABLE;
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(ADC_CHANNEL_0_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = ADC_CHANNEL_1_PIN_MASK;
FL_GPIO_Init(ADC_CHANNEL_1_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = ADC_CHANNEL_2_PIN_MASK;
FL_GPIO_Init(ADC_CHANNEL_2_GPIO, &GPIO_InitStruct);
#if 0
GPIO_InitStruct.pin = ADC_CHANNEL_3_PIN_MASK;
FL_GPIO_Init(ADC_CHANNEL_3_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = ADC_CHANNEL_4_PIN_MASK;
FL_GPIO_Init(ADC_CHANNEL_4_GPIO, &GPIO_InitStruct);
#endif
GPIO_InitStruct.pin = ADC_CHANNEL_5_PIN_MASK;
FL_GPIO_Init(ADC_CHANNEL_5_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = ADC_CHANNEL_6_PIN_MASK;
FL_GPIO_Init(ADC_CHANNEL_6_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = ADC_CHANNEL_7_PIN_MASK;
FL_GPIO_Init(ADC_CHANNEL_7_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = ADC_CHANNEL_8_PIN_MASK;
FL_GPIO_Init(ADC_CHANNEL_8_GPIO, &GPIO_InitStruct);
}
/**
* GPIO_ADC_Init
*
* @param[in] none
* @return none
*
* @brief init led control gpio
*
*/
static void gpio_can_init(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
/* PC2.3配置成模拟功能外接XTHF */
/*-----------------------------------GPIO初始化---------------------------------------*/
GPIO_InitStruct.pin = CAN0_TX_PIN_MASK; /* 48PIN开发板引脚定义 */
GPIO_InitStruct.mode = FL_GPIO_MODE_DIGITAL;
GPIO_InitStruct.pull = FL_ENABLE;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.remapPin = FL_DISABLE;
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(CAN0_TX_GPIO, &GPIO_InitStruct); /* 48PIN开发板引脚定义 */
GPIO_InitStruct.pin = CAN0_RX_PIN_MASK; /* 48PIN开发板引脚定义 */
GPIO_InitStruct.mode = FL_GPIO_MODE_DIGITAL;
GPIO_InitStruct.pull = FL_ENABLE;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.remapPin = FL_DISABLE;
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(CAN0_RX_GPIO, &GPIO_InitStruct); /* 48PIN开发板引脚定义 */
/* STB引脚初始化 */
GPIO_InitStruct.pin = CAN0_STB_PIN_MASK; /* 48PIN开发板引脚定义 */
GPIO_InitStruct.mode = FL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.pull = FL_ENABLE;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.remapPin = FL_DISABLE;
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(CAN0_STB_GPIO, &GPIO_InitStruct);
CAN0_STB_ON();
}
/**
* gpio_led_init
*
* @param[in] none
* @return none
*
* @brief init led control gpio
*
*/
static void gpio_test_init(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.pin = TEST1_PIN_MASK;
GPIO_InitStruct.mode = FL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.pull = FL_DISABLE;
GPIO_InitStruct.remapPin = FL_DISABLE;
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(TEST1_GPIO, &GPIO_InitStruct);
GPIO_InitStruct.pin = TEST2_PIN_MASK;
FL_GPIO_Init(TEST2_GPIO, &GPIO_InitStruct);
//FL_GPIO_SetFOUT0(GPIO, FL_GPIO_FOUT0_SELECT_AHBCLK_DIV64);
//FL_GPIO_SetFOUT0(GPIO, FL_GPIO_FOUT0_SELECT_AHBCLK_DIV64);
/* init gpio as output mode */
TEST1_OFF();
TEST2_OFF();
}
//空闲io的配置
static void gpio_idle_init(void)
{
}
/**
* @brief
* @param input:
* @param output:
* @return none:
* @calls
* @calls by
* @others
*/
void gpio_cfg_init(void)
{
//gpio_output_init();
//gpio_pwm_init();
//gpio_key_init();
//gpio_adc_init();
gpio_can_init();
//gpio_idle_init();
//gpio_test_init();
//gpio_lin_init();
//gpio_i2c_init();
//gpio_ext_interrupt_init();
}
/*---------------------------------------------------------------------------
|Prototype :
|Called by : None
|Preconditions : None
|Input parameters : None
|Output parameters : None
|Return value : None
|Description :
----------------------------------------------------------------------------*/
static void gpio_ext_interrupt_init(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
FL_EXTI_InitTypeDef extiInitStruct = {0};
FL_EXTI_CommonInitTypeDef extiCommonInitStruct = {0};
FL_CMU_EnableEXTIOnSleep(); /* 休眠使能外部中断采样 */
/* EXTI中断采样时钟选择 */
extiCommonInitStruct.clockSource = FL_CMU_EXTI_CLK_SOURCE_LSCLK;
FL_EXTI_CommonInit(&extiCommonInitStruct);
/***********************CAN RX**************************/
GPIO_InitStruct.pin = (uint32_t)CAN0_RX_PIN_MASK; /* 48PIN开发板引脚定义 */
GPIO_InitStruct.mode = (uint32_t)FL_GPIO_MODE_INPUT;
GPIO_InitStruct.pull = (uint32_t)FL_ENABLE;
GPIO_InitStruct.outputType = (uint32_t)FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.remapPin = (uint32_t)FL_DISABLE;
GPIO_InitStruct.analogSwitch = (uint32_t)FL_DISABLE;
FL_GPIO_Init(CAN0_RX_GPIO, &GPIO_InitStruct); /* 48PIN开发板引脚定义 */
extiInitStruct.input = (uint32_t)CAN0_RX_EXIT_GROUP; /* 中断线上对应的IO */
extiInitStruct.filter = (uint32_t)FL_ENABLE; /* 使能数字滤波 */
extiInitStruct.triggerEdge = (uint32_t)FL_GPIO_EXTI_TRIGGER_EDGE_FALLING; /* 设置触发边沿 */
FL_EXTI_Init(CAN0_RX_EXIT_LINE,&extiInitStruct);
/* NVIC中断配置 */
NVIC_ClearPendingIRQ(GPIO_IRQn);
NVIC_DisableIRQ(GPIO_IRQn);
NVIC_SetPriority(GPIO_IRQn, NVIC_PRIORITY_GPIO); /* 中断优先级配置 */
NVIC_EnableIRQ(GPIO_IRQn);
}
/*---------------------------------------------------------------------------
|Prototype :
|Called by : None
|Preconditions : None
|Input parameters : None
|Output parameters : None
|Return value : None
|Description :
----------------------------------------------------------------------------*/
static void gpio_ext_interrupt_de_init(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
FL_CMU_DisableEXTIOnSleep(); /* 休眠使能外部中断采样 */
/* EXTI中断采样时钟选择 */
FL_EXTI_CommonDeinit();
/***********************FM33LG0X5A 48PIN**************************/
/* can rx GPIO外设 */
GPIO_InitStruct.pin = (uint32_t)CAN0_RX_PIN_MASK; /* 48PIN开发板引脚定义 */
GPIO_InitStruct.mode = (uint32_t)FL_GPIO_MODE_DIGITAL;
GPIO_InitStruct.pull = (uint32_t)FL_ENABLE;
GPIO_InitStruct.outputType = (uint32_t)FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.remapPin = (uint32_t)FL_DISABLE;
GPIO_InitStruct.analogSwitch = (uint32_t)FL_DISABLE;
FL_GPIO_Init(CAN0_RX_GPIO, &GPIO_InitStruct); /* 48PIN开发板引脚定义 */
FL_EXTI_DeInit(CAN0_RX_EXIT_LINE);
/* NVIC中断配置 */
NVIC_DisableIRQ(GPIO_IRQn);
//NVIC_SetPriority(GPIO_IRQn, NVIC_PRIORITY_EXTI0); /* 中断优先级配置 */
//NVIC_EnableIRQ(GPIO_IRQn);
}
//
/*---------------------------------------------------------------------------
|Prototype :
|Called by : None
|Preconditions : None
|Input parameters : None
|Output parameters : None
|Return value : None
|Description :
----------------------------------------------------------------------------*/
void gpio_goto_sleep(void)
{
TEST1_OFF();
TEST2_OFF();
CAN0_STB_OFF();
O_MDT_CTR_DISABLE();
O_12V_CTR_DISABLE();
O_5V_CTR_DISABLE();
O_KIT_CTR_DISABLE();
O_MDT_PWM_DISABLE();
O_DEN_CTR_DISABLE();
//FL_CAN_SetSoftwareReset(CAN,FL_CAN_SOFTWARE_RESET);
gpio_ext_interrupt_init();
}
/*---------------------------------------------------------------------------
|Prototype :
|Called by : None
|Preconditions : None
|Input parameters : None
|Output parameters : None
|Return value : None
|Description :
----------------------------------------------------------------------------*/
void gpio_goto_wakeup(void)
{
gpio_ext_interrupt_de_init();
TEST1_ON();
TEST2_ON();
CAN0_STB_ON();
//LIN_SLP_ENABLE();
}
/*---------------------------------------------------------------------------
|Prototype :
|Called by : None
|Preconditions : None
|Input parameters : None
|Output parameters : None
|Return value : None
|Description :
----------------------------------------------------------------------------*/
void gpio_cfg_re_init(void)
{
gpio_cfg_init();
}
/*---------------------------------------------------------------------------
|Prototype : lpt32_ch1_set_gpio
|Called by :
|Preconditions :
|Input parameters :
|Output parameters :
|Return value :
|Description :
----------------------------------------------------------------------------*/
void lpt32_ch1_set_gpio(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.pin = GPIO_PIN8_MASK;
GPIO_InitStruct.mode = FL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL; //FL_GPIO_OUTPUT_OPENDRAIN
GPIO_InitStruct.pull = FL_DISABLE;
GPIO_InitStruct.remapPin = FL_DISABLE; //注意
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(GPIOA, &GPIO_InitStruct);
FL_GPIO_ResetOutputPin(GPIOB, GPIO_PIN8_MASK);
}
/*---------------------------------------------------------------------------
|Prototype : lpt32_ch1_set_pwm
|Called by :
|Preconditions :
|Input parameters :
|Output parameters :
|Return value :
|Description :
----------------------------------------------------------------------------*/
void lpt32_ch1_set_pwm(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.pin = GPIO_PIN8_MASK;
GPIO_InitStruct.mode = FL_GPIO_MODE_DIGITAL;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL; //FL_GPIO_OUTPUT_OPENDRAIN
GPIO_InitStruct.pull = FL_DISABLE;
GPIO_InitStruct.remapPin = FL_ENABLE; //注意
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
/*---------------------------------------------------------------------------
|Prototype : lpt32_ch2_set_gpio
|Called by :
|Preconditions :
|Input parameters :
|Output parameters :
|Return value :
|Description :
----------------------------------------------------------------------------*/
void lpt32_ch2_set_gpio(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.pin = GPIO_PIN9_MASK;
GPIO_InitStruct.mode = FL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL; //FL_GPIO_OUTPUT_OPENDRAIN
GPIO_InitStruct.pull = FL_DISABLE;
GPIO_InitStruct.remapPin = FL_DISABLE; //注意
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(GPIOA, &GPIO_InitStruct);
FL_GPIO_ResetOutputPin(GPIOB, GPIO_PIN8_MASK);
}
/*---------------------------------------------------------------------------
|Prototype : lpt32_ch2_set_pwm
|Called by :
|Preconditions :
|Input parameters :
|Output parameters :
|Return value :
|Description :
----------------------------------------------------------------------------*/
void lpt32_ch2_set_pwm(void)
{
FL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.pin = GPIO_PIN9_MASK;
GPIO_InitStruct.mode = FL_GPIO_MODE_DIGITAL;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL; //FL_GPIO_OUTPUT_OPENDRAIN
GPIO_InitStruct.pull = FL_DISABLE;
GPIO_InitStruct.remapPin = FL_ENABLE; //注意
GPIO_InitStruct.analogSwitch = FL_DISABLE;
FL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
/*end line*/