背景
STM32G071的PD0,PD2作為外部中斷使用,外部接10K上拉電阻拉到3.3V。外部設(shè)備被觸發(fā)后電平變?yōu)榈碗娖剑匠13指唠娖?a target="_blank">信號(hào)。
問題
在以上背景下,按道理外部設(shè)備正常時(shí)(未觸發(fā)中斷),IO口輸入電平應(yīng)該是3.3V。但是實(shí)際上測量到的卻是0.9V,這跟觸發(fā)后的0V,同樣會(huì)被單片機(jī)識(shí)別為低電平,故無法產(chǎn)生電平跳變而觸發(fā)中斷。
分析解決
查閱STM32G0數(shù)據(jù)手冊可知:
這個(gè)引腳的電平類型為FT_c,我們知道FT是容忍5V的意思,那么FT_c是什么意思?不妨看看說明:
然后去用戶手冊查看GPIO相關(guān)說明,找到以下內(nèi)容:
基本上了解狀況了,再看一下相關(guān)寄存器說明:
具體說明:
看了以上說明,基本明白怎么操作了。在初始化IO的時(shí)候,應(yīng)該把SYSCFG registers的UCPD2_STROBE位設(shè)置一下就ok了。
HAL庫操作:HAL_SYSCFG_StrobeDBattpinsConfig(SYSCFG_CFGR1_UCPD2_STROBE);
LL庫操作:MODIFY_REG(SYSCFG->CFGR1, (SYSCFG_CFGR1_UCPD1_STROBE | SYSCFG_CFGR1_UCPD2_STROBE), SYSCFG_CFGR1_UCPD2_STROBE);
再提醒下,其實(shí)PA8和PA15也是這樣的。如果我們不需要這個(gè)下拉電阻,需要按照上面的操作調(diào)整一下。
那么為什么STM32G071有這樣的設(shè)置呢?看下面IO功能即可知道,這幾個(gè)引腳其實(shí)是下面幾個(gè)管腳的復(fù)用腳。
-
STM32
+關(guān)注
關(guān)注
2272文章
10923瀏覽量
357573
原文標(biāo)題:技術(shù)分享 | STM32G071 PD0 PD2引腳使用注意事項(xiàng)
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論