找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4803|回复: 2
收起左侧

stm32初始化gpio步骤

[复制链接]
ID:56662 发表于 2013-11-18 23:28 | 显示全部楼层 |阅读模式
                                                                                                 1,、用函数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)



评分

参与人数 1黑币 +5 收起 理由
呃呃呃111 + 5 很给力!

查看全部评分

回复

使用道具 举报

ID:59192 发表于 2014-2-20 19:34 | 显示全部楼层
正急需中。谢谢
回复

使用道具 举报

ID:504404 发表于 2019-4-8 13:01 | 显示全部楼层
如果我要初始化PB的不同引脚呢比如PB1,PB3,PB5,PB7,那么先写GPIO_InitTypeDef ,然后配置每一个的mode,speed,pin再之后的初始化GPIO_Init()是不是要写好多还是要在最后写一个呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表