找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

C语言while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4))条件未满足还是退出了

查看数: 2703 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-5-10 08:31

正文摘要:

while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4))                         {            & ...

回复

ID:585428 发表于 2021-5-10 10:23
黄youhui 发表于 2021-5-10 09:35
4 最重要的一点,其实的while()根本就没进去,至于为何会直接跳到break,可能是代码优化的结果,进去后直 ...

谢谢回复,我已经查到原因了。因为while内的条件不满足了,所以跳到了break内退出了。因为我通过示波器看过,将输入线拔掉后,IO口的电平始终是高的,所以想不通while为什么会退出,后来我发现PC4的电平在1和0之间变化,现在我怀疑是硬件坏了或是别的原因,我自己再查查。
ID:592807 发表于 2021-5-10 09:35
4 最重要的一点,其实的while()根本就没进去,至于为何会直接跳到break,可能是代码优化的结果,进去后直接break和没进去是一个效果。
4 最重要的一点,其实的while()根本就没进去,至于为何会直接跳到break,可能是代码优化的结果,进去后直接break和没进去是一个效果。
4 最重要的一点,其实的while()根本就没进去,至于为何会直接跳到break,可能是代码优化的结果,进去后直接break和没进去是一个效果。


1 外部输入的信号,共地了吗?
2 while()里面很少会放函数的,因为函数返回值可能是一个整数也可能是一个地址
3 你的全局变量初始化了吗?如果没有初始化,他们可以是任意值。

ID:429003 发表于 2021-5-10 09:09
粗心大意,while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4))  不等价 test_temp=GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4);   while(test_temp){}

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表