wwppd 发表于 2022-10-26 22:22

KF32A156操作IO口



KF32A156迷你EVB上的LED0每500ms闪烁一次
void BoardGpioInit(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        /* Configure PD12 LED1 output */
        GPIO_InitStructure.m_Mode = GPIO_MODE_OUT;
        GPIO_InitStructure.m_OpenDrain = GPIO_POD_PP;
        GPIO_InitStructure.m_PullDown = GPIO_NOPULL;
        GPIO_InitStructure.m_PullUp = GPIO_NOPULL;
        GPIO_InitStructure.m_Speed = GPIO_LOW_SPEED;
        GPIO_InitStructure.m_Pin = GPIO_PIN_MASK_12;
        GPIO_Configuration(GPIOD_SFR , &GPIO_InitStructure);
       
        /* Configure PH3 LED2 output */
        GPIO_InitStructure.m_Pin = GPIO_PIN_MASK_3;
        GPIO_Configuration(GPIOH_SFR , &GPIO_InitStructure);
       
        /* Configure PD7 user key input */
        GPIO_InitStructure.m_Mode = GPIO_MODE_IN;
        GPIO_InitStructure.m_Pin = GPIO_PIN_MASK_7;
        GPIO_Configuration(GPIOD_SFR , &GPIO_InitStructure);
}

/*******************************************************************************
**                                             Main Functions                                                   **
*******************************************************************************/
/**
*@brief :Main program
*@param in :None
*@param out :None
*@retval :None
*/
int main()
{
        /* Initialize the system clock is 120M*/
        SystemInit(120);
        /* Setup SysTick Timer as delay function, and input frequency is 120M */
        systick_delay_init(120);
        /* Initialize the user IOs */
        BoardGpioInit();
        while(1)
        {
                /* Toggle LED1 */
                if (++TimingDelay >= 10)
                {
                        TimingDelay = 0;
                        GPIO_Toggle_Output_Data_Config(GPIOD_SFR, GPIO_PIN_MASK_12);
                }
                /* Turn ON/OFF the dedicate LED2 by user key */
                if (GPIO_Read_Input_Data_Bit(GPIOD_SFR, GPIO_PIN_MASK_7) == Bit_RESET)
                {
                        GPIO_Set_Output_Data_Bits(GPIOH_SFR, GPIO_PIN_MASK_3, Bit_SET);
                }
                else
                {
                        GPIO_Set_Output_Data_Bits(GPIOH_SFR, GPIO_PIN_MASK_3, Bit_RESET);
                }
                systick_delay_ms(50);
        }               
}

页: [1]
查看完整版本: KF32A156操作IO口