找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

C語言while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4))條件未滿足還是退出了

查看數(shù): 2575 | 評(píng)論數(shù): 3 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2021-5-10 08:31

正文摘要:

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

回復(fù)

ID:585428 發(fā)表于 2021-5-10 10:23
黃youhui 發(fā)表于 2021-5-10 09:35
4 最重要的一點(diǎn),其實(shí)的while()根本就沒進(jìn)去,至于為何會(huì)直接跳到break,可能是代碼優(yōu)化的結(jié)果,進(jìn)去后直 ...

謝謝回復(fù),我已經(jīng)查到原因了。因?yàn)閣hile內(nèi)的條件不滿足了,所以跳到了break內(nèi)退出了。因?yàn)槲彝ㄟ^示波器看過,將輸入線拔掉后,IO口的電平始終是高的,所以想不通while為什么會(huì)退出,后來我發(fā)現(xiàn)PC4的電平在1和0之間變化,現(xiàn)在我懷疑是硬件壞了或是別的原因,我自己再查查。
ID:592807 發(fā)表于 2021-5-10 09:35
4 最重要的一點(diǎn),其實(shí)的while()根本就沒進(jìn)去,至于為何會(huì)直接跳到break,可能是代碼優(yōu)化的結(jié)果,進(jìn)去后直接break和沒進(jìn)去是一個(gè)效果。
4 最重要的一點(diǎn),其實(shí)的while()根本就沒進(jìn)去,至于為何會(huì)直接跳到break,可能是代碼優(yōu)化的結(jié)果,進(jìn)去后直接break和沒進(jìn)去是一個(gè)效果。
4 最重要的一點(diǎn),其實(shí)的while()根本就沒進(jìn)去,至于為何會(huì)直接跳到break,可能是代碼優(yōu)化的結(jié)果,進(jìn)去后直接break和沒進(jìn)去是一個(gè)效果。


1 外部輸入的信號(hào),共地了嗎?
2 while()里面很少會(huì)放函數(shù)的,因?yàn)楹瘮?shù)返回值可能是一個(gè)整數(shù)也可能是一個(gè)地址
3 你的全局變量初始化了嗎?如果沒有初始化,他們可以是任意值。

ID:429003 發(fā)表于 2021-5-10 09:09
粗心大意,while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4))  不等價(jià) test_temp=GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4);   while(test_temp){}

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表