历史上的今天
今天是:2025年01月14日(星期二)
2019年01月14日 | stm32:查询法使用pt2262/pt2272无线模块
2019-01-14 来源:eefocus
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形成回路,所以不会产生效果。
史海拾趣
|
WinCE5.0挂接IDE硬盘的疑惑? 有个项目,想使用IDE44pin接口挂接最少64GB的外部存储器,现有如下问题和大家讨论: 1.工作电压: 现在手头上的IDE电路是直接从S3C2440上IO口引出,鉴于3.3V的IO电压,似乎不能正常驱 ...… 查看全部问答> |
|
求binArrayStart和binArrayEnd的定义的线索 问题描述: 大家好。我最近在修改Boot程序。在bootinit.c文件中有如下定义: IMPORT UCHAR binArrayStart []; & ...… 查看全部问答> |
|
在dialog中有个tab control,在每个tab的dialog中有个group box, group box中有个按钮。 现在的现实结果是tab control和group box都显示正常,按钮没有显示,什么原因? app方面菜鸟一个,期待大家指点… 查看全部问答> |
|
一、USB型51/AVR单片机编程器元器件清单 二、AVR ATmega16单片机学习板元器件清单 [ 本帖最后由 tiankai001 于 2010-8-8 15:35 编辑 ]… 查看全部问答> |
|
因为刚学DSP,做的是用2407产生6路3对对称PWM,一开始摸索的时候程序老是编译有问题,今天才把程序搞好``却发现我的板子出了问题,因为编的第一个程序所以没有把挖想放上来大家帮我看看这样写是不是能产生6路3对对称PWM``` 主程序如下 #include \\" ...… 查看全部问答> |




