標題:
stm32初始化gpio步驟
[打印本頁]
作者:
xiaotang
時間:
2013-11-18 23:28
標題:
stm32初始化gpio步驟
1,、用函數(shù)RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx, ENABLE)使能所有GPIO的時鐘
2、普通IO口的配置
(1)聲明 GPIO_InitTypeDef GPIO_InitStructure
(2)配置引腳
GPIO_InitStructure.GPIO_Pin = CLK595_PIN | LOCK595_PIN | EN595_PIN | DATA595_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
(3)初始化
GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
3、IO口備用功能的配置
(1)、先定義備用功能
#define SPI1_CLK RCC_APB2Periph_SPI1
#define SPI1_CS_Pin GPIO_Pin15
#define SPI1_CS_SourceGPIO_PinSource15
#define SPI1_CS_Port GPIOA
#define SPI1_CS_AF GPIO_AF_SPI1
#define SPI1_CLK_Pin GPIO_Pin3
#define SPI1_CLK_SourceGPIO_PinSource3
#define SPI1_CLK_Port GPIOB
#define SPI1_CLK_AF GPIO_AF_SPI1
#define SPI1_MISO_PinGPIO_Pin4
#define SPI1_MISO_SourceGPIO_PinSource4
#define SPI1_MISO_Port GPIOB
#define SPI1_MISO_AF GPIO_AF_SPI1
#define SPI1_MOSI_Pin GPIO_Pin5
#define SPI1_MOSI_SourceGPIO_PinSource5
#define SPI1_MOSI_Port GPIOB
#define SPI1_MOSI_AF GPIO_AF_SPI1
(2)、使能備用功能的時鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE) for SPI1
(3)、配置引腳及初始化
GPIO_InitTypeDef GPIO_InitStructure
GPIO_InitStructure.GPIO_Pin = SPI1_MOSI_Pin ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //GPIO_Mode必須配置為GPIO_Mode_AF(備用功能)
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
(4)、連接引腳到備用功能
GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)
作者:
啦啦啦123
時間:
2014-2-20 19:34
正急需中。謝謝
作者:
QI0609
時間:
2019-4-8 13:01
如果我要初始化PB的不同引腳呢比如PB1,PB3,PB5,PB7,那么先寫GPIO_InitTypeDef ,然后配置每一個的mode,speed,pin再之后的初始化GPIO_Init()是不是要寫好多還是要在最后寫一個呢
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1