welcom ! Handel home

2017年2月26日 星期日

[STM32F103 GPIO 定義說明]

[STM32F103 GPIO   定義說明]
void GPIO_Configuration(void)//初始化
{
    GPIO_InitTypeDef  GPIO_InitStructure; //定義了一個初始化的結構體變數,其中包括埠引腳,速度,模式,
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 ;
                         //GPIO_Pin_None;           //無管腳被選中
                         //GPIO_Pin_0 - GPIO_Pin_15;//選中管腳 0-15
                         //GPIO_Pin_All;            //選中全部管腳
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽輸出
                                 //GPIO_Mode_AIN;         //模擬輸入
                                 //GPIO_Mode_IN_FLOATING ;//浮空輸入
                                 //GPIO_Mode_IPD;         //下拉輸入
                                 //GPIO_Mode_IPU;         //上拉輸入
                                 //GPIO_Mode_Out_OD;      //開漏輸出
                                 //GPIO_Mode_Out_PP;      //推挽輸出
                                 //GPIO_Mode_AF_OD;       //複用開漏輸出 
                                 //GPIO_Mode_AF_PP;       //複用推挽輸出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
                                  //GPIO_Speed_10MHz; //最高輸出速率 10MHz 
                                  //GPIO_Speed_2MHz;  //最高輸出速率 2 MHz  
                                  //GPIO_Speed_50MHz; //最高輸出速率 50MHz  
    GPIO_Init(GPIOD, &GPIO_InitStructure);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
}

main()
{
    ReadValue = GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13);//讀取指定埠位
    ReadValue = GPIO_ReadInputData(GPIOC); //讀取指定的 GPIO埠輸入
    ReadValue = GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_7);//讀取指定埠管腳的輸出
    ReadValue = GPIO_ReadOutputData(GPIOC); //讀取指定的 GPIO埠輸出   
    GPIO_SetBits(GPIOD,GPIO_Pin_2|GPIO_Pin_4);         //設置指定數據埠位元
    GPIO_ResetBits(GPIOD,GPIO_Pin_2); //清除指定資料埠位元
    GPIO_WriteBit(GPIOD, GPIO_Pin_3, Bit_SET);//設置指定數據埠位元
    GPIO_WriteBit(GPIOD, GPIO_Pin_3, Bit_RESET);//清除指定資料埠位元
    GPIO_Write(GPIOD,0x0004);//指定GPIO口寫數據

}