stm32:查询法使用pt2262/pt2272无线模块

pt2262/pt2272的工作原理就是按下遥控器的按键之后,接收器的相对应引脚上就会产生一个高电平。该程序实现的功能就是遥控器按下之后,红灯亮起。采用查询法检测引脚是否为高电平。

//初始化接收器的相对应的IO口
void KEY1_Config(void)
{
    GPIO_InitTypeDef  GPIO_Struct;

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
    //由于检测高电平,所以设置为下拉模式,可理解为,该io口为低电平   
    GPIO_Struct.GPIO_Mode=GPIO_Mode_IPD;
    GPIO_Struct.GPIO_Pin=KEY1_Pin;


    GPIO_Init(GPIOC, &GPIO_Struct);
}
//初始化灯的LED灯的端口
void LED_R_Config(void)
{
    GPIO_InitTypeDef  GPIO_Struct;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

    GPIO_Struct.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_Struct.GPIO_Pin=LED_R_GPIO;
    GPIO_Struct.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOB,&GPIO_Struct);
}

主函数也比较简单

int main(void)
 {  
    KEY1_Config();
    LED_R_Config();
   //初始化之后灯的IO默认为0,所以要把它置1
    GPIO_SetBits(GPIOB, GPIO_Pin_5);
   for(;;)
{
   //用GPIO_ReadInputDataBit函数检测是否IO口为高电平
    if( GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8)==SET )
    {
        GPIO_ResetBits(GPIOB,GPIO_Pin_5);
    }
    else
    {
    GPIO_SetBits(GPIOB, GPIO_Pin_5);
    }
}  


}

在过程中又一个很重要的一点就是,要将接收器用stm32供电,或者至少要将接收器的GND与stm32的GND连接,否则会出现IO口即使上拉也会一直高电平的,灯以一直亮的现象。主要是由于接收器的输出口没有与GND形成回路,所以不会产生效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值