stm32的GPIO程序.docx

上传人:b****8 文档编号:9475366 上传时间:2023-02-04 格式:DOCX 页数:15 大小:16.62KB
下载 相关 举报
stm32的GPIO程序.docx_第1页
第1页 / 共15页
stm32的GPIO程序.docx_第2页
第2页 / 共15页
stm32的GPIO程序.docx_第3页
第3页 / 共15页
stm32的GPIO程序.docx_第4页
第4页 / 共15页
stm32的GPIO程序.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

stm32的GPIO程序.docx

《stm32的GPIO程序.docx》由会员分享,可在线阅读,更多相关《stm32的GPIO程序.docx(15页珍藏版)》请在冰豆网上搜索。

stm32的GPIO程序.docx

stm32的GPIO程序

/*Definetopreventrecursiveinclusion-------------------------------------*/

#ifndef__STM32F4xx_GPIO_H

#define__STM32F4xx_GPIO_H

#ifdef__cplusplus

extern"C"{

#endif

/*Includes------------------------------------------------------------------*/

#include"stm32f4xx.h"

#defineIS_GPIO_ALL_PERIPH(PERIPH)(((PERIPH)==GPIOA)||\

((PERIPH)==GPIOB)||\

((PERIPH)==GPIOC)||\

((PERIPH)==GPIOD)||\

((PERIPH)==GPIOE)||\

((PERIPH)==GPIOF)||\

((PERIPH)==GPIOG)||\

((PERIPH)==GPIOH)||\

((PERIPH)==GPIOI))

/**

*@briefGPIOConfigurationModeenumeration

*/

typedefenum

{

GPIO_Mode_IN=0x00,/*!

GPIO_Mode_OUT=0x01,/*!

GPIO_Mode_AF=0x02,/*!

GPIO_Mode_AN=0x03/*!

}GPIOMode_TypeDef;

#defineIS_GPIO_MODE(MODE)(((MODE)==GPIO_Mode_IN)||((MODE)==GPIO_Mode_OUT)||\

((MODE)==GPIO_Mode_AF)||((MODE)==GPIO_Mode_AN))

/**

*@briefGPIOOutputtypeenumeration

*/

typedefenum

{

GPIO_OType_PP=0x00,

GPIO_OType_OD=0x01

}GPIOOType_TypeDef;

#defineIS_GPIO_OTYPE(OTYPE)(((OTYPE)==GPIO_OType_PP)||((OTYPE)==GPIO_OType_OD))

/**

*@briefGPIOOutputMaximumfrequencyenumeration

*/

typedefenum

{

GPIO_Speed_2MHz=0x00,/*!

GPIO_Speed_25MHz=0x01,/*!

GPIO_Speed_50MHz=0x02,/*!

GPIO_Speed_100MHz=0x03/*!

}GPIOSpeed_TypeDef;

#defineIS_GPIO_SPEED(SPEED)(((SPEED)==GPIO_Speed_2MHz)||((SPEED)==GPIO_Speed_25MHz)||\

((SPEED)==GPIO_Speed_50MHz)||((SPEED)==GPIO_Speed_100MHz))

/**

*@briefGPIOConfigurationPullUpPullDownenumeration

*/

typedefenum

{

GPIO_PuPd_NOPULL=0x00,

GPIO_PuPd_UP=0x01,

GPIO_PuPd_DOWN=0x02

}GPIOPuPd_TypeDef;

#defineIS_GPIO_PUPD(PUPD)(((PUPD)==GPIO_PuPd_NOPULL)||((PUPD)==GPIO_PuPd_UP)||\

((PUPD)==GPIO_PuPd_DOWN))

/**

*@briefGPIOBitSETandBitRESETenumeration

*/

typedefenum

{

Bit_RESET=0,

Bit_SET

}BitAction;

#defineIS_GPIO_BIT_ACTION(ACTION)(((ACTION)==Bit_RESET)||((ACTION)==Bit_SET))

/**

*@briefGPIOInitstructuredefinition

*/

typedefstruct

{

uint32_tGPIO_Pin;/*!

Thisparametercanbeanyvalueof@refGPIO_pins_define*/

GPIOMode_TypeDefGPIO_Mode;/*!

Thisparametercanbeavalueof@refGPIOMode_TypeDef*/

GPIOSpeed_TypeDefGPIO_Speed;/*!

Thisparametercanbeavalueof@refGPIOSpeed_TypeDef*/

GPIOOType_TypeDefGPIO_OType;/*!

Thisparametercanbeavalueof@refGPIOOType_TypeDef*/

GPIOPuPd_TypeDefGPIO_PuPd;/*!

Thisparametercanbeavalueof@refGPIOPuPd_TypeDef*/

}GPIO_InitTypeDef;

/*Exportedconstants--------------------------------------------------------*/

/**@defgroupGPIO_Exported_Constants

*@{

*/

/**@defgroupGPIO_pins_define

*@{

*/

#defineGPIO_Pin_0((uint16_t)0x0001)/*Pin0selected*/

#defineGPIO_Pin_1((uint16_t)0x0002)/*Pin1selected*/

#defineGPIO_Pin_2((uint16_t)0x0004)/*Pin2selected*/

#defineGPIO_Pin_3((uint16_t)0x0008)/*Pin3selected*/

#defineGPIO_Pin_4((uint16_t)0x0010)/*Pin4selected*/

#defineGPIO_Pin_5((uint16_t)0x0020)/*Pin5selected*/

#defineGPIO_Pin_6((uint16_t)0x0040)/*Pin6selected*/

#defineGPIO_Pin_7((uint16_t)0x0080)/*Pin7selected*/

#defineGPIO_Pin_8((uint16_t)0x0100)/*Pin8selected*/

#defineGPIO_Pin_9((uint16_t)0x0200)/*Pin9selected*/

#defineGPIO_Pin_10((uint16_t)0x0400)/*Pin10selected*/

#defineGPIO_Pin_11((uint16_t)0x0800)/*Pin11selected*/

#defineGPIO_Pin_12((uint16_t)0x1000)/*Pin12selected*/

#defineGPIO_Pin_13((uint16_t)0x2000)/*Pin13selected*/

#defineGPIO_Pin_14((uint16_t)0x4000)/*Pin14selected*/

#defineGPIO_Pin_15((uint16_t)0x8000)/*Pin15selected*/

#defineGPIO_Pin_All((uint16_t)0xFFFF)/*Allpinsselected*/

#defineIS_GPIO_PIN(PIN)((((PIN)&(uint16_t)0x00)==0x00)&&((PIN)!

=(uint16_t)0x00))

#defineIS_GET_GPIO_PIN(PIN)(((PIN)==GPIO_Pin_0)||\

((PIN)==GPIO_Pin_1)||\

((PIN)==GPIO_Pin_2)||\

((PIN)==GPIO_Pin_3)||\

((PIN)==GPIO_Pin_4)||\

((PIN)==GPIO_Pin_5)||\

((PIN)==GPIO_Pin_6)||\

((PIN)==GPIO_Pin_7)||\

((PIN)==GPIO_Pin_8)||\

((PIN)==GPIO_Pin_9)||\

((PIN)==GPIO_Pin_10)||\

((PIN)==GPIO_Pin_11)||\

((PIN)==GPIO_Pin_12)||\

((PIN)==GPIO_Pin_13)||\

((PIN)==GPIO_Pin_14)||\

((PIN)==GPIO_Pin_15))

/**

*@}

*/

/**@defgroupGPIO_Pin_sources

*@{

*/

#defineGPIO_PinSource0((uint8_t)0x00)

#defineGPIO_PinSource1((uint8_t)0x01)

#defineGPIO_PinSource2((uint8_t)0x02)

#defineGPIO_PinSource3((uint8_t)0x03)

#defineGPIO_PinSource4((uint8_t)0x04)

#defineGPIO_PinSource5((uint8_t)0x05)

#defineGPIO_PinSource6((uint8_t)0x06)

#defineGPIO_PinSource7((uint8_t)0x07)

#defineGPIO_PinSource8((uint8_t)0x08)

#defineGPIO_PinSource9((uint8_t)0x09)

#defineGPIO_PinSource10((uint8_t)0x0A)

#defineGPIO_PinSource11((uint8_t)0x0B)

#defineGPIO_PinSource12((uint8_t)0x0C)

#defineGPIO_PinSource13((uint8_t)0x0D)

#defineGPIO_PinSource14((uint8_t)0x0E)

#defineGPIO_PinSource15((uint8_t)0x0F)

#defineIS_GPIO_PIN_SOURCE(PINSOURCE)(((PINSOURCE)==GPIO_PinSource0)||\

((PINSOURCE)==GPIO_PinSource1)||\

((PINSOURCE)==GPIO_PinSource2)||\

((PINSOURCE)==GPIO_PinSource3)||\

((PINSOURCE)==GPIO_PinSource4)||\

((PINSOURCE)==GPIO_PinSource5)||\

((PINSOURCE)==GPIO_PinSource6)||\

((PINSOURCE)==GPIO_PinSource7)||\

((PINSOURCE)==GPIO_PinSource8)||\

((PINSOURCE)==GPIO_PinSource9)||\

((PINSOURCE)==GPIO_PinSource10)||\

((PINSOURCE)==GPIO_PinSource11)||\

((PINSOURCE)==GPIO_PinSource12)||\

((PINSOURCE)==GPIO_PinSource13)||\

((PINSOURCE)==GPIO_PinSource14)||\

((PINSOURCE)==GPIO_PinSource15))

/**

*@}

*/

/**@defgroupGPIO_Alternat_function_selection_define

*@{

*/

/**

*@briefAF0selection

*/

#defineGPIO_AF_RTC_50Hz((uint8_t)0x00)/*RTC_50HzAlternateFunctionmapping*/

#defineGPIO_AF_MCO((uint8_t)0x00)/*MCO(MCO1andMCO2)AlternateFunctionmapping*/

#defineGPIO_AF_TAMPER((uint8_t)0x00)/*TAMPER(TAMPER_1andTAMPER_2)AlternateFunctionmapping*/

#defineGPIO_AF_SWJ((uint8_t)0x00)/*SWJ(SWDandJTAG)AlternateFunctionmapping*/

#defineGPIO_AF_TRACE((uint8_t)0x00)/*TRACEAlternateFunctionmapping*/

/**

*@briefAF1selection

*/

#defineGPIO_AF_TIM1((uint8_t)0x01)/*TIM1AlternateFunctionmapping*/

#defineGPIO_AF_TIM2((uint8_t)0x01)/*TIM2AlternateFunctionmapping*/

/**

*@briefAF2selection

*/

#defineGPIO_AF_TIM3((uint8_t)0x02)/*TIM3AlternateFunctionmapping*/

#defineGPIO_AF_TIM4((uint8_t)0x02)/*TIM4AlternateFunctionmapping*/

#defineGPIO_AF_TIM5((uint8_t)0x02)/*TIM5AlternateFunctionmapping*/

/**

*@briefAF3selection

*/

#defineGPIO_AF_TIM8((uint8_t)0x03)/*TIM8AlternateFunctionmapping*/

#defineGPIO_AF_TIM9((uint8_t)0x03)/*TIM9AlternateFunctionmapping*/

#defineGPIO_AF_TIM10((uint8_t)0x03)/*TIM10AlternateFunctionmapping*/

#defineGPIO_AF_TIM11((uint8_t)0x03)/*TIM11AlternateFunctionmapping*/

/**

*@briefAF4selection

*/

#defineGPIO_AF_I2C1((uint8_t)0x04)/*I2C1AlternateFunctionmapping*/

#defineGPIO_AF_I2C2((uint8_t)0x04)/*I2C2AlternateFunctionmapping*/

#defineGPIO_AF_I2C3((uint8_t)0x04)/*I2C3AlternateFunctionmapping*/

/**

*@briefAF5selection

*/

#defineGPIO_AF_SPI1((uint8_t)0x05)/*SPI1AlternateFunctionmapping*/

#defineGPIO_AF_SPI2((uint8_t)0x05)/*SPI2/I2S2AlternateFunctionmapping*/

/**

*@briefAF6selection

*/

#defineGPIO_AF_SPI3((uint8_t)0x06)/*SPI3/I2S3AlternateFunctionmapping*/

/**

*@briefAF7selection

*/

#defineGPIO_AF_USART1((uint8_t)0x07)/*USART1AlternateFunctionmapping*/

#defineGPIO_AF_USART2((uint8_t)0x07)/*USART2AlternateFunctionmapping*/

#defineGPIO_AF_USART3((uint8_t)0x07)/*USART3AlternateFunctionmapping*/

#defineGPIO_AF_I2S3ext((uint8_t)0x07)/*I2S3extAlternateFunctionmapping*/

/**

*@briefAF8selection

*/

#defineGPIO_AF_UART4((uint8_t)0x08)/*UART4AlternateFunctionmapping*/

#defineGPIO_AF_UART5((uint8_t)0x08)/*UART5AlternateFunctionmapping*/

#defineGPIO_AF_USART6((uint8_t)0x08)/*USART6AlternateFunctionmapping*/

/**

*@briefAF9selection

*/

#defineGPIO_AF_CAN1((uint8_t)0x09)/*CAN1AlternateFunctionmapping*/

#defineGPIO_AF_CAN2((uint8_t)0x09)/*CAN2AlternateFunctionmapping*/

#defineGPIO_AF_TIM12((uint8_t)0x09)/*TIM12AlternateFunctionmapping*/

#defineGPIO_AF_TIM13((uint8_t)0x09)/*TIM13AlternateFunctionmapping*/

#defineGPIO_AF_TIM14((uint8_t)0x09)/*TIM14AlternateFunctionmapping*/

/**

*@briefAF10selection

*/

#defineGPIO_AF_OTG_FS((uint8_t)0xA)/*OTG_FSAlternateFunctionmapping*/

#defineGPIO_AF_OTG_HS((uint8_t)0xA)/*OTG_HSAlternateFunctionmapping*/

/**

*@briefAF11selection

*/

#defineGPIO_AF_ETH((uint8_t)0x0B)/*ETHERNETAlternateFunctionmapping*/

/**

*@briefAF12selection

*/

#defineGPIO_AF_FSMC((uint8_t)0xC)/*FSMCAlternateFunctionmapping*/

#defineGPIO_AF_OTG_HS_FS((uint8_t)0xC)/*OTGHSconfiguredinFS,AlternateFunctionmapping*/

#defineGPIO_AF_SDIO((uint8_t)0xC)/*SDIOAlternateFunctionmapping*/

/**

*@briefAF13selection

*/

#defineGPIO_AF_DCMI((uint8_t)0x0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1