大佬們,這個(gè)GPIO輸入上下拉模式怎么區(qū)分
您好,GPIO設(shè)置為下拉輸入模式時(shí),IO內(nèi)部接下拉電阻,當(dāng)IO未接電平信號(hào)時(shí),默認(rèn)為低電平,即0。GPIO設(shè)置為上拉輸入模式時(shí),IO內(nèi)部接上拉電阻,當(dāng)IO未接電平信號(hào)時(shí),默認(rèn)為高電平,即1。具體用法根據(jù)你使用的外設(shè)以及需求進(jìn)行配置,如下圖為對(duì)應(yīng)外設(shè)GPIO的配置,具體可看應(yīng)用手冊(cè)GPIO章節(jié)。
它這個(gè)寄存器上面寫的10是上下拉模式,我怎么區(qū)分是上拉,還是下拉呢
@你. 需要配合GPIOx_OUTDR寄存器來配置,確定是上拉還是下拉
以下代碼可設(shè)置默認(rèn)輸入狀態(tài),當(dāng)設(shè)置GPIO為輸入上下拉模式?jīng)]有賦值時(shí)我的經(jīng)驗(yàn)是默認(rèn)輸出高電平.
GPIOA->CFGLR? &=? 0x00000000; //低8位IO清零復(fù)位
GPIOA->CFGLR? |=? 0x2222AAAA; //2為通用推挽輸出2M,A為復(fù)用推挽輸出2M
GPIOA->CFGHR? &=? 0x00000000;?//高8位IO清零復(fù)位
GPIOA->CFGHR? |=? 0x44448888; //8為輸入上下拉模式,4為浮空輸入
GPIOA->OUTDR? = 0xFFFF ;? ?//默認(rèn)全部高電平
GPIOA->OUTDR? = 0x0000 ;? ?//默認(rèn)全部低電平
使用BSHR和BCR可以對(duì)單個(gè)GPIO設(shè)置高低電平.
GPIOA->BSHR = 0x0001; //PA0輸出高電平
GPIOA->BCR = 0x0001; //PA0輸出低電平