yangakw yangakw

gpio检测高电平

in 记录read (153) 文章转载请注明来源!

请输入图片描述

#include"stm32f10x_lib.h"
GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO结构体对象
void MY_GPIO_Init(void) //GPIO初始化函数
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能GPIOA端口的时钟信号

    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;            //构造一个16bits的数值,赋值给GPIO_Pin ,使用 GPIOA_1做输出指示    
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;   //设置GPIOA_1的工作状态,推挽输出
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;  //设置GPIOA_1的工作速度,50MHz
    GPIO_Init(GPIOA,&GPIO_InitStructure);            //初始化GPIOA_1

    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;          //构造一个16bits的数值,赋值给GPIO_Pin,使用GPIOA_2做输入检测
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;           //设置GPIOA_2的工作状态,下拉输入
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;       //设置GPIOA_2的工作速度,50MHz,(输入无需此设置,设置如此亦无影响)
    GPIO_Init(GPIOA,&GPIO_InitStructure);                   //初始化 GPIOA_2

}
main()
{ u8 read=0x00;
MY_GPIO_Init(); //初始化GPIO端口
while(1)
{ read=GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2); //读取IO口状态
if( read==0x01 ) //若GPIOA_2为1
{
GPIO_SetBits(GPIOA,GPIO_Pin_1); //GPIOA_1 为高电平,LED灯亮
}
else
{
GPIO_ResetBits(GPIOA,GPIO_Pin_1); //GPIOA_1 为低电平,LED灯灭
}
}
}

jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

发表新评论
博客已运行
© 2017 yangakw
PREVIOUS NEXT
雷姆
拉姆