打印
[STM32F1]

关于红外接收头初始化问题

[复制链接]
1162|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电气小学生|  楼主 | 2017-12-4 17:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;                                 //PA1 输入
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;                 //上拉输入
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        GPIO_SetBits(GPIOA,GPIO_Pin_1);        //初始化GPIOA1
正点原子的MINI板,红外接收头连接在PA1上,为什么PA1初始化完成后要GPIO_SetBits(GPIOA,GPIO_Pin_1);给PA1一个高电平,有什么特殊意义吗
红外接收头在没有脉冲时是高电平,有脉冲时是低电平。单片机是STM32F103RCT6

沙发
mmuuss586| | 2017-12-4 20:12 | 只看该作者
个人理解没什么用;
你可以注释掉看看;

因为IO设置成输入了;

使用特权

评论回复
板凳
cemaj| | 2017-12-4 22:27 | 只看该作者
应该是防止信号不稳定。

使用特权

评论回复
地板
10299823| | 2017-12-4 22:28 | 只看该作者
去掉这个代码有什么问题吗?

使用特权

评论回复
5
电气小学生|  楼主 | 2017-12-4 23:34 | 只看该作者
如果注释掉这个代码,按红外遥控器,程序不会触发中断。不注释掉,程序运行正常。所以,我想,这个代码是不是有什么特殊的意义。可是,PA1已经被初始化成输入模式了,按说,输出已经没有任何意义了。对这个比较迷茫

使用特权

评论回复
来自android
6
电气小学生|  楼主 | 2017-12-6 09:55 | 只看该作者
谢谢各位的耐心解答,虽然都不是我想要的答案。
已经在第三方帖子中找到答案,结贴

使用特权

评论回复
7
xinxianshi| | 2017-12-6 10:58 | 只看该作者
因为要实现默认高电平,也就是上拉模式,所以要在输入端口输出个高电平。这样上拉确认生效。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

47

帖子

0

粉丝