2014-10-30 70 views
1

我有一個引腳可以控制一個p溝道MOSFET開啓/關閉電源總線。它有一個上拉電阻,以便當引腳處於高阻抗狀態時,總線處於關閉狀態,並且在電流吸收時處於開啓狀態。在STM32F103初始化之前設置GPIO引腳狀態是否正確?

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
    GPIO_SetBits(GPIOD, GPIO_Pin_14); //pin will be high immediately on init 
    GPIO_Init(GPIOD, &GPIO_InitStructure); 

如果我可以這樣做,巴士將停留。如果我有好像會有幾納米或微秒它吸收電流的GPIO_Init後設置引腳狀態,在暫時關閉總線:

GPIO_Init(GPIOD, &GPIO_InitStructure); //PP, low state, sinking current, bus is on 
    GPIO_SetBits(GPIOD, GPIO_Pin_14); //now bus is off again 

是否有關於這個的任何文檔?

編輯:我剛剛意識到我應該使用漏極開路,但問題仍然適用。

回答

4

在完成引腳初始化之前,您可以安全地設置引腳的狀態。設置管腳的狀態只是在某些寄存器(ODR)中設置一些位,這在未配置管腳的情況下什麼也不做。

是的 - 你應該使用開漏模式。

請注意,這不適用於RCC初始化,因爲在啓用RCC中的時鐘之前,您無法修改GPIO寄存器。

+3

+1提到RCC問題 – 2014-10-31 01:08:04

相關問題