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

[复制链接]
 楼主| 电气小学生 发表于 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 | 显示全部楼层
去掉这个代码有什么问题吗?
 楼主| 电气小学生 发表于 2017-12-4 23:34 来自手机 | 显示全部楼层
如果注释掉这个代码,按红外遥控器,程序不会触发中断。不注释掉,程序运行正常。所以,我想,这个代码是不是有什么特殊的意义。可是,PA1已经被初始化成输入模式了,按说,输出已经没有任何意义了。对这个比较迷茫
 楼主| 电气小学生 发表于 2017-12-6 09:55 | 显示全部楼层
谢谢各位的耐心解答,虽然都不是我想要的答案。
已经在第三方帖子中找到答案,结贴
xinxianshi 发表于 2017-12-6 10:58 | 显示全部楼层
因为要实现默认高电平,也就是上拉模式,所以要在输入端口输出个高电平。这样上拉确认生效。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

47

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

3

主题

47

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部