SmartOS/Platform/Pin_STM32F1.h

136 lines
5.1 KiB
C

#ifndef _PIN_STM32F1_H_
#define _PIN_STM32F1_H_ 1
#include "Pin.h"
// 获取组和针脚
#define _GROUP(PIN) ((GPIO_TypeDef *) (GPIOA_BASE + (((PIN) & (uint16_t)0xF0) << 6)))
#ifdef STM32F10X_HD
/* 通用同步/异步收发器(USART)针脚 ------------------------------------------------------------------*/
#define UARTS {USART1, USART2, USART3, UART4, UART5}
#define UART_IRQs {USART1_IRQn, USART2_IRQn, USART3_IRQn, UART4_IRQn, UART5_IRQn}
#define UART_PINS {\
/* TX RX CTS RTS */ \
PA9, PA10,PA11,PA12,/* USART1 */ \
PA2, PA3, PA0, PA1, /* USART2 */ \
PB10,PB11,PB13,PB14,/* USART3 */ \
PC10,PC11,P0, P0, /* UART4 */ \
PC12, PD2,P0, P0, /* UART5 */ \
}
#define UART_PINS_FULLREMAP {\
/* TX RX CTS RTS */ \
PB6, PB7, PA11,PA12,/* USART1 AFIO_MAPR_USART1_REMAP */ \
PD5, PD6, PD3, PD4, /* USART2 AFIO_MAPR_USART2_REMAP */ \
PD8, PD9, PD11,PD12,/* USART3 AFIO_MAPR_USART3_REMAP_FULLREMAP */ \
PC10,PC11,P0, P0, /* UART4 */ \
PC12, PD2,P0, P0, /* UART5 */ \
}
#endif
#ifdef STM32F10X_MD
/* 通用同步/异步收发器(USART)针脚 ------------------------------------------------------------------*/
#define UARTS {USART1, USART2, USART3}
#define UART_IRQs {USART1_IRQn, USART2_IRQn, USART3_IRQn}
#define UART_PINS {\
/* TX RX CTS RTS */ \
PA9, PA10,PA11,PA12,/* USART1 */ \
PA2, PA3, PA0, PA1, /* USART2 */ \
PB10,PB11,PB13,PB14,/* USART3 */ \
}
#define UART_PINS_FULLREMAP {\
/* TX RX CTS RTS */ \
PB6, PB7, PA11,PA12,/* USART1 AFIO_MAPR_USART1_REMAP */ \
PD5, PD6, PD3, PD4, /* USART2 AFIO_MAPR_USART2_REMAP */ \
PD8, PD9, PD11,PD12,/* USART3 AFIO_MAPR_USART3_REMAP_FULLREMAP */ \
}
#endif
#ifdef STM32F10X_HD
/* 定时器针脚 ------------------------------------------------------------------*/
#define TIMS {TIM1, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8}
#define TIM_IRQns {TIM1_UP_IRQn, TIM2_IRQn, TIM3_IRQn, TIM4_IRQn, TIM5_IRQn, TIM6_IRQn, TIM7_IRQn, TIM8_UP_IRQn}
#define TIM_PINS {\
PA8, PA9, PA10,PA11,/* TIM1 */ \
PA0, PA1, PA2, PA3, /* TIM2 */ \
PA6, PA7, PB0, PB1, /* TIM3 */ \
PB6, PB7, PB8, PB9, /* TIM4 */ \
PA0, PA1, PA2, PA3, /* TIM5 */ \
P0, P0, P0, P0, /* TIM6 */ \
P0, P0, P0, P0, /* TIM7 */ \
PC6, PC7, PC8, PC9 /* TIM8 */ \
}
#define TIM_PINS_FULLREMAP {\
PE9, PE11,PE13,PE14,/* TIM1 AFIO_MAPR_TIM1_REMAP_FULLREMAP */ \
PA15,PB3, PB10,PB11,/* TIM2 AFIO_MAPR_TIM2_REMAP_FULLREMAP */ \
PC6, PC7, PC8, PC9, /* TIM3 AFIO_MAPR_TIM3_REMAP_FULLREMAP */ \
PD12,PD13,PD14,PD15,/* TIM4 AFIO_MAPR_TIM4_REMAP */ \
PA0, PA1, PA2, PA3, /* TIM5 */ \
P0, P0, P0, P0, /* TIM6 */ \
P0, P0, P0, P0, /* TIM7 */ \
PC6, PC7, PC8, PC9 /* TIM8 */ \
}
#endif
#ifdef STM32F10X_MD
/* 定时器针脚 ------------------------------------------------------------------*/
#define TIMS {TIM1, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8}
#define TIM_IRQns {TIM1_UP_IRQn, TIM2_IRQn, TIM3_IRQn, TIM4_IRQn}
#define TIM_PINS {\
PA8, PA9, PA10,PA11,/* TIM1 */ \
PA0, PA1, PA2, PA3, /* TIM2 */ \
PA6, PA7, PB0, PB1, /* TIM3 */ \
PB6, PB7, PB8, PB9, /* TIM4 */ \
}
#define TIM_PINS_FULLREMAP {\
PE9, PE11,PE13,PE14,/* TIM1 AFIO_MAPR_TIM1_REMAP_FULLREMAP */ \
PA15,PB3, PB10,PB11,/* TIM2 AFIO_MAPR_TIM2_REMAP_FULLREMAP */ \
PC6, PC7, PC8, PC9, /* TIM3 AFIO_MAPR_TIM3_REMAP_FULLREMAP */ \
PD12,PD13,PD14,PD15,/* TIM4 AFIO_MAPR_TIM4_REMAP */ \
}
#endif
/* ADC(模拟/数字转换器)针脚 ------------------------------------------------------------------*/
#define DAC_PINS {PA4,PA5}
#define ADCS {ADC1,ADC2,ADC3}
#define ADC_RCCS {RCC_APB2Periph_ADC1,RCC_APB2Periph_ADC2,RCC_APB2Periph_ADC3}
#define ADC1_PINS {PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PB0,PB1,PC0,PC1,PC2,PC3,PC4,PC5}
#define ADC3_PINS {PA0,PA1,PA2,PA3,PF6,PF7,PF8,PF9,PF10,PF3,PC0,PC1,PC2,PC3,PF4,PF5}
/* I2C总线针脚 ------------------------------------------------------------------*/
#define I2CS {I2C1, I2C2}
#define I2C_PINS {\
/* SCL SDA */\
{ PB6, PB7 },\
{ PB10, PB11 },\
/*F1 REMAP{ PA8, PA9 },*/\
}
/* 串行外设接口(SPI)针脚 ------------------------------------------------------------------*/
#define SPIS {SPI1, SPI2, SPI3}
//#define SPI_NSS_PINS {4, 28, 15} // PA4, PB12, PA15
//#define SPI_SCLK_PINS {5, 29, 19} // PA5, PB13, PB3
//#define SPI_MISO_PINS {6, 30, 20} // PA6, PB14, PB4
//#define SPI_MOSI_PINS {7, 31, 21} // PA7, PB15, PB5
#define SPI_PINS_FULLREMAP {\
/* NSS CLK MISO MOSI */\
{PA4, PA5, PA6, PA7 },\
{PB12,PB13,PB14,PB15},\
{PA15,PB3, PB4, PB5 }\
}
/* 控制器区域网络(CAN)针脚 ------------------------------------------------------------------*/
#define CANS {CAN1, CAN2}
// TX RX
#define CAN_PINS {PA12, PA11} // AFIO_MAPR_CAN_REMAP_REMAP1
#define CAN_PINS_REMAP2 {PB9, PB8 } // AFIO_MAPR_CAN_REMAP_REMAP2
#define CAN_PINS_REMAP3 {PD1, PD0 } // AFIO_MAPR_CAN_REMAP_REMAP3
/* 通用串行总线(USB)针脚 ------------------------------------------------------------------*/
/* SDIO针脚 ------------------------------------------------------------------*/
#endif