/*****************头文件*************************/
#include "fsl_common.h"
#include "fsl_port.h"
#include "fsl_gpio.h"
#include "pin_Init.h"
#include "fsl_uart.h"

/*****************PTA15初始化*************************/
void pin_Init()
{
    CLOCK_EnableClock(kCLOCK_PortA);    //开启PORT时钟
    port_pin_config_t GPIO_Port_Init = 
    {
        kPORT_PullUp ,    //上拉
        kPORT_FastSlewRate,   //快速压摆率
        kPORT_PassiveFilterDisable,   //无源滤波器
        kPORT_OpenDrainDisable,   //推挽输出
        kPORT_HighDriveStrength,   //高驱动力
        kPORT_MuxAsGpio,  //普通GPIO模式
        kPORT_UnlockRegister, //
    };
    PORT_SetPinConfig(PORTA, 15U, &GPIO_Port_Init); //设置引脚复用方式
    gpio_pin_config_t config =
    {
        kGPIO_DigitalOutput,    //输出模式
        0,
    };
    GPIO_PinInit(GPIOA, 15U, &config);  //初始化PTA15
    GPIO_PinWrite(GPIOA, 15, 1);    //PTA15写1
    
    /*编码器方向PTE3*/
    CLOCK_EnableClock(kCLOCK_PortE);    //开启PORT时钟
    PORT_SetPinConfig(PORTE, 3U, &GPIO_Port_Init); //设置引脚复用方式
    GPIO_PinInit(GPIOE, 3U, &config);  //初始化PTA15
}

/*****************UART1引脚初始化*************************/
void UART1_InitPins(void)
{
  //  CLOCK_EnableClock(kCLOCK_PortE);    //开启PORT时钟
    PORT_SetPinMux(PORTE, 0U, kPORT_MuxAlt3);  //PTE0配置为UART1_TX
    PORT_SetPinMux(PORTE, 1U, kPORT_MuxAlt3);  //PTE1配置为UART1_RX
    SIM->SOPT5 = ((SIM->SOPT5 &
                   /* UART1收发数据源选择*/
                   (~(SIM_SOPT5_UART1TXSRC_MASK | SIM_SOPT5_UART1RXSRC_MASK)))
                  | SIM_SOPT5_UART1TXSRC(SOPT5_UART1TXSRC_UART_TX)
                  | SIM_SOPT5_UART1RXSRC(SOPT5_UART1RXSRC_UART_RX));
}

/*****************UART2引脚初始化*************************/
void UART2_InitPins(void)
{
   // CLOCK_EnableClock(kCLOCK_PortE);    //开启PORT时钟
    PORT_SetPinMux(PORTE, 16U, kPORT_MuxAlt3);  //PTE16配置为UART2_TX
    PORT_SetPinMux(PORTE, 17U, kPORT_MuxAlt3);  //PTE17配置为UART2_RX
//    SIM->SOPT5 = ((SIM->SOPT5 &
//                   /* UART1收发数据源选择*/
//                   (~(SIM_SOPT5_UART1TXSRC_MASK | SIM_SOPT5_UART1RXSRC_MASK)))
//                  | SIM_SOPT5_UART1TXSRC(SOPT5_UART1TXSRC_UART_TX)
//                  | SIM_SOPT5_UART1RXSRC(SOPT5_UART1RXSRC_UART_RX));
}