CH32V307 GPIO上下拉電阻

配置端口為帶上下拉的輸入時(shí),說(shuō)明書(shū)內(nèi)無(wú)如何選擇上拉或下拉的說(shuō)明,
看實(shí)例代碼由端口輸出寄存器OUTDR控制上拉或下拉,理解是是否正確?

????????if?(GPIO_InitStruct->GPIO_Mode?==?GPIO_Mode_IPD)
????????{
??????????GPIOx->BCR?=?(((uint32_t)0x01)?<<?pinpos);
????????}
????????else
????????{
??????????if?(GPIO_InitStruct->GPIO_Mode?==?GPIO_Mode_IPU)
??????????{
????????????GPIOx->BSHR?=?(((uint32_t)0x01)?<<?pinpos);
??????????}
????????}



熱門(mén)產(chǎn)品 : USB3.0 HUB控制器:CH634

您好,若需要配置為上下拉輸入模式時(shí),需要通過(guò)GPIO配置寄存器(GPIOx_CFGLR/GPIOx_CFGHR)配置為帶有上下拉的輸入模式,比如MODEx位配置為00,表示輸入模式,CNFx位配置為10,表示帶有上下拉模式,具體可見(jiàn)下圖配置寄存器說(shuō)明。關(guān)于具體是上拉還是下拉,可通過(guò)BCR或者BSHR寄存器決定。若下拉,設(shè)置端口復(fù)位寄存器(GPIOx_BCR),若上拉,設(shè)置端口復(fù)位/置位寄存器(GPIOx_BSHR)的0-15對(duì)應(yīng)位置1。

Snipaste_2021-11-15_13-33-12.jpg

if-else語(yǔ)句里的兩個(gè)寄存器分別為端口復(fù)位寄存器(GPIOx_BCR)和端口復(fù)位/置位寄存器(GPIOx_BSHR),關(guān)于這兩個(gè)寄存器的具體說(shuō)明如下圖。

1636940918223921.jpg

1636940918186964.jpg



我的問(wèn)題如何設(shè)定IO輸入時(shí)的上拉與下拉?
看代碼碼跟置位與復(fù)位寄存器有關(guān)


您好,GPIO引腳上下拉輸入具體配置方式如下圖:

Snipaste_2021-11-15_13-43-04.jpg



??if?(GPIO_InitStruct->GPIO_Mode?==?GPIO_Mode_IPD)
????????{
??????????GPIOx->BCR?=?(((uint32_t)0x01)?<<?pinpos);
????????}
????????else
????????{
??????????if?(GPIO_InitStruct->GPIO_Mode?==?GPIO_Mode_IPU)
??????????{
????????????GPIOx->BSHR?=?(((uint32_t)0x01)?<<?pinpos);
??????????}
????????}

代碼我已經(jīng)看到,就是實(shí)際操作時(shí),也是對(duì)OUTDR進(jìn)行設(shè)置?沒(méi)有專(zhuān)門(mén)的管理上拉與下拉的寄存器?
與OUTDR寄存器復(fù)用?


您好,GPIO引腳的上下拉輸入配置與OUTDR寄存器無(wú)關(guān),OUTDR寄存器是一個(gè)端口輸出寄存器,表示端口輸出的數(shù)據(jù)。關(guān)于端口復(fù)位/置位寄存器(GPIOx_BSHR)或者端口復(fù)位寄存器(GPIOx_BCR)里描述的清除對(duì)應(yīng)的OUTDR位,意思是說(shuō):無(wú)論是配置為輸入或者輸出,當(dāng)你要將這個(gè)引腳拉高或者拉低時(shí),都會(huì)對(duì)OUTDR寄存器寫(xiě)0復(fù)位,然后設(shè)置引腳拉高拉低。關(guān)于上下拉寄存器,當(dāng)配置為輸入時(shí),對(duì)BSHR或BCR寄存器進(jìn)行相應(yīng)的操作即可設(shè)置上下拉。


引腳輸入輸出切換后,希望輸出保持原來(lái)的狀態(tài),

1、引腳在輸出狀態(tài),OUTDR寄存器輸出有效。

2、引腳 配置為輸入上拉,這時(shí),OUTDR會(huì)被復(fù)位

3、 重新配置為輸出,這時(shí)我必須重新設(shè)置OUTDR的值,因?yàn)樵贾档诙奖粡?fù)位了


我想請(qǐng)問(wèn)一下這個(gè)OUTDR是不是和mdk里面的ODR是同一樣?xùn)|西呢?還有INDR是不是和IDR是同一樣?xùn)|西呢


您好,OUTDR為端口輸出寄存器,INDR為端口輸入寄存器,同ODR、IDR功能是一樣的,具體介紹可看MCU對(duì)應(yīng)的應(yīng)用手冊(cè)介紹,如下圖:

image.png


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频