美文网首页
灵动微MM32F003硬件最小系统 --- GPIO INPUT

灵动微MM32F003硬件最小系统 --- GPIO INPUT

作者: 黄开通 | 来源:发表于2020-10-28 09:41 被阅读0次

    同GPIO输出一样,只需要两个步骤就可以实现GPIO输入的功能。

    1 将GPIO配置为输出模式

    void GPIO_ConfigInit(void)
    {
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);    
        //PA0 INPUT
        GPIO_InitStructure.GPIO_Pin  =  GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        
        //PB6 INPUT
        GPIO_InitStructure.GPIO_Pin  =  GPIO_Pin_6;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
    
        //PB0/PB1 OUTPUT
        GPIO_InitStructure.GPIO_Pin  =  GPIO_Pin_0|GPIO_Pin_1;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
    }
    

    2 调用接口函数实现功能。

    int main(void)
    {
        
        RCC_ConfigInit();
        GPIO_ConfigInit();
        Uart_ConfigInit(9600);
    
        while(1) {
            //get PA0 input data;
            gpioTempBuf[ 0 ] = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);     
            //get GPIOB input data;
            gpioTempBuf[ 1 ] = GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_6);          
    
    
            if(gpioTempBuf[ 0 ] != Bit_RESET) {  
            //if level of IO changed,printf current status;
                GPIO_ResetBits(GPIOB, GPIO_Pin_0);
                UartSendGroup((u8*)printBuf, sprintf(printBuf, "PA0 PRESS\r\n"));
            }
                    else
                            GPIO_SetBits(GPIOB, GPIO_Pin_0);
            if(gpioTempBuf[ 1 ] != Bit_RESET) {
                GPIO_ResetBits(GPIOB, GPIO_Pin_1);
                UartSendGroup((u8*)printBuf, sprintf(printBuf, "PB6 PRESS\r\n"));
            }
                    else
                            GPIO_SetBits(GPIOB, GPIO_Pin_1);
         }
    }
    

    这个例程实现以下功能:
    1 当PA0输入为低电平时,PB0控制LED亮;
    2 当PB6输入为低电平时,PB1控制LED亮。

    相关文章

      网友评论

          本文标题:灵动微MM32F003硬件最小系统 --- GPIO INPUT

          本文链接:https://www.haomeiwen.com/subject/mslqvktx.html