stm32對1.8V外圍器件的識(shí)別率(不加電平轉(zhuǎn)換)
其他的單向口用的是“開漏+上拉”,就這一個(gè)雙向口,嫌麻煩,之前不想上電平轉(zhuǎn)換芯片,但是又不知道影響大不大,就做了個(gè)實(shí)驗(yàn)。
想測試一下stm32能把大概多高電壓識(shí)別為高。
方案很簡單,就是檢測到高電平,就點(diǎn)亮led。
while(1)
{
if(PBin(10)==1)
else
}
PC13的接口接的是一個(gè)led,模式推挽。
PB10的接口接的是一個(gè)滑動(dòng)變阻器,模式下拉。
我轉(zhuǎn)動(dòng)滑動(dòng)變阻器的時(shí)候發(fā)現(xiàn),
把PB10改成浮空狀態(tài)也差不多,區(qū)別就是PB10在不接的時(shí)候,下拉不亮,浮空是亮的。
為了更直觀的驗(yàn)證,PB10接到1.8v上,
寫了一個(gè)小程序測試了一下:
while(1)
{
if(PBin(10)==1) {i++;j++;}
else {i++;}
delay_ms(1);
UART1_Put_String("測試總次數(shù):");
UART1_Putw_Dec(i);
UART1_Put_String("檢測為高次數(shù):");
UART1_Putw_Dec(j);
UART1_Put_String("");
}
結(jié)果大概是這樣的
測試總次數(shù):132835檢測為高次數(shù):131906
測試總次數(shù):132836檢測為高次數(shù):131907……
測試總次數(shù):611184檢測為高次數(shù):606143
測試總次數(shù):611185檢測為高次數(shù):606144……
大約有0.5%~1%的情況檢測不出來。
作為對比,我把PB10接到3.3v
測試總次數(shù):147005檢測為高次數(shù):147005
測試總次數(shù):147006檢測為高次數(shù):147006……
完全沒有失誤率
看來穩(wěn)妥的設(shè)計(jì)還得上電平轉(zhuǎn)換芯片,還要搭外圍模塊,感覺還占地兒的??赡芤院蟀?805的封裝都改成0603的會(huì)好些。
評(píng)論