LL01/code_boot_out/asil/bsp/gpio_cfg.c
2025-04-26 16:03:23 +08:00

655 lines
19 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.

/** ##########################################################################
** 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*/