串口和中断写完
This commit is contained in:
+18
-14
@@ -2,7 +2,13 @@
|
||||
#define __BSP_H__
|
||||
|
||||
#include "VoiletTypeDef.h"
|
||||
#include "Voilet.h"
|
||||
|
||||
/* Extra Library Enable */
|
||||
#define USE_SHELL //系统使用Shell
|
||||
|
||||
#ifdef USE_SHELL
|
||||
#include "LetterShell.h"
|
||||
#endif
|
||||
|
||||
#define ARRAY_LEN(arr) (sizeof(arr) / sizeof((arr)[0]))
|
||||
|
||||
@@ -26,12 +32,17 @@ typedef enum {
|
||||
void VoiletBspInit(void);
|
||||
|
||||
/* BSP */
|
||||
void AllPeriphClockDisable(void);
|
||||
void LedOn(uint8_t Chnl);
|
||||
void LedOff(uint8_t Chnl);
|
||||
void LedSet(uint8_t Chnl,uint8_t Value);
|
||||
void LedToggle(uint8_t Chnl);
|
||||
|
||||
//Interrupt
|
||||
void IrqInit(void);
|
||||
void IrqRegister(unsigned int Irq, void(*Func)(void *Param));
|
||||
void IrqConfig(uint32_t Irq, uint8_t NvicPrePriority, uint8_t NvicSubPriority);
|
||||
void IrqDisable(uint32_t Irq);
|
||||
|
||||
//System Delay
|
||||
void DelayConfig(void);
|
||||
unsigned int DwtCntGet(void);
|
||||
@@ -39,18 +50,16 @@ void DelayUs(unsigned int Us);
|
||||
void DelayMs(unsigned int Ms);
|
||||
|
||||
/* GPIO */
|
||||
void GpioClockEnable(const GPIO_MAP_T *GpioX);
|
||||
void GpioConfig(const GPIO_MAP_T *GpioX, GPIOMode_TypeDef GpioMode, GPIOSpeed_TypeDef GpioSpeed);
|
||||
void GpioSet(const GPIO_MAP_T *GpioX, uint8_t Value);
|
||||
unsigned char GpioGet(const GPIO_MAP_T *GpioX);
|
||||
|
||||
/* UART */
|
||||
void UartClockEnable(const COM_MAP_T *ComX);
|
||||
// void UartSendChar(uint32_t ComId,uint8_t Data);
|
||||
// void UartSendStr(uint32_t ComId,uint8_t* Data, uint64_t Len);
|
||||
// void UartStdConfig(COM_MAP_T ComX, uint32_t baud);
|
||||
// void UartAdvConfig(const COM_MAP_T *ComX, uint32_t baud, uint8_t DataBits, uint8_t StopBits, uint8_t Parity);
|
||||
// #define UartStdConfig(ComX, baud) UartStdConfig((COM_MAP_T)ComX, baud)
|
||||
void ComSendChar(const COM_MAP_T *ComX,uint8_t Data);
|
||||
void ComSendStr(const COM_MAP_T *ComX,uint8_t* Data, uint64_t Len);
|
||||
uint8_t ComReceiveChar(const COM_MAP_T *ComX);
|
||||
void ComStdConfig(const COM_MAP_T *ComX, uint32_t Baud);
|
||||
void ComAdvConfig(const COM_MAP_T *ComX, uint32_t Baud, uint8_t DataBits, uint8_t StopBits, uint8_t Parity);
|
||||
|
||||
// /* 板级BSP头文件 */
|
||||
// #include "Board.h"
|
||||
@@ -86,11 +95,6 @@ void UartClockEnable(const COM_MAP_T *ComX);
|
||||
// void LedOn(uint8_t Chnl);
|
||||
//
|
||||
//
|
||||
// //Interrupt
|
||||
// void SystemInterruptInit(void);
|
||||
// void InterruptRegister(uint32_t Irqn, void(*Func)(uint32_t));
|
||||
// void InterruptSetLevel(uint32_t Vector, uint8_t NvicPrePriority, uint8_t NvicSubPriority);
|
||||
// void InterruptDisable(uint32_t Vector);
|
||||
//
|
||||
// //Usart
|
||||
// void SystemUsartInit(void);
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
|
||||
#include "Bsp.h"
|
||||
|
||||
void LetterShellInit(uint32_t ComId, uint32_t baud);
|
||||
void LetterShellInit(const COM_MAP_T *ComX, uint32_t Baud);
|
||||
|
||||
#endif
|
||||
|
||||
+138
-121
@@ -11,163 +11,180 @@
|
||||
#define INTERRUPT_DISABLE __set_PRIMASK(1); //关闭中断
|
||||
|
||||
typedef struct {
|
||||
GPIO_TypeDef *Periph;
|
||||
void (*IrqCallback)(void *Param);
|
||||
}IRQ_MAP_T;
|
||||
|
||||
#define IRQ_NUM 0xFF //中断数量
|
||||
#define NVIC_GROUP_LEVEL NVIC_PriorityGroup_2 //中断组
|
||||
|
||||
typedef struct {
|
||||
GPIO_TypeDef *GpioPort;
|
||||
unsigned short GpioPin;
|
||||
} GPIO_PERIPH_T;
|
||||
|
||||
typedef struct {
|
||||
void (*ClockCmd)(uint32_t RccPeriph, FunctionalState State);
|
||||
unsigned int ClockTree;
|
||||
GPIO_PERIPH_T Periph;
|
||||
} GPIO_MAP_T;
|
||||
|
||||
// ==================== GPIOA 组 ====================
|
||||
#ifdef GPIOA
|
||||
#define GPIO0 {GPIOA, GPIO_Pin_0}
|
||||
#define GPIO1 {GPIOA, GPIO_Pin_1}
|
||||
#define GPIO2 {GPIOA, GPIO_Pin_2}
|
||||
#define GPIO3 {GPIOA, GPIO_Pin_3}
|
||||
#define GPIO4 {GPIOA, GPIO_Pin_4}
|
||||
#define GPIO5 {GPIOA, GPIO_Pin_5}
|
||||
#define GPIO6 {GPIOA, GPIO_Pin_6}
|
||||
#define GPIO7 {GPIOA, GPIO_Pin_7}
|
||||
#define GPIO8 {GPIOA, GPIO_Pin_8}
|
||||
#define GPIO9 {GPIOA, GPIO_Pin_9}
|
||||
#define GPIO10 {GPIOA, GPIO_Pin_10}
|
||||
#define GPIO11 {GPIOA, GPIO_Pin_11}
|
||||
#define GPIO12 {GPIOA, GPIO_Pin_12}
|
||||
#define GPIO13 {GPIOA, GPIO_Pin_13}
|
||||
#define GPIO14 {GPIOA, GPIO_Pin_14}
|
||||
#define GPIO15 {GPIOA, GPIO_Pin_15}
|
||||
#define GPIO0 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_0}}
|
||||
#define GPIO1 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_1}}
|
||||
#define GPIO2 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_2}}
|
||||
#define GPIO3 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_3}}
|
||||
#define GPIO4 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_4}}
|
||||
#define GPIO5 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_5}}
|
||||
#define GPIO6 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_6}}
|
||||
#define GPIO7 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_7}}
|
||||
#define GPIO8 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_8}}
|
||||
#define GPIO9 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_9}}
|
||||
#define GPIO10 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_10}}
|
||||
#define GPIO11 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_11}}
|
||||
#define GPIO12 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_12}}
|
||||
#define GPIO13 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_13}}
|
||||
#define GPIO14 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_14}}
|
||||
#define GPIO15 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_15}}
|
||||
#endif
|
||||
#ifdef GPIOB
|
||||
// ==================== GPIOB 组 ====================
|
||||
#define GPIO16 {GPIOB, GPIO_Pin_0}
|
||||
#define GPIO17 {GPIOB, GPIO_Pin_1}
|
||||
#define GPIO18 {GPIOB, GPIO_Pin_2}
|
||||
#define GPIO19 {GPIOB, GPIO_Pin_3}
|
||||
#define GPIO20 {GPIOB, GPIO_Pin_4}
|
||||
#define GPIO21 {GPIOB, GPIO_Pin_5}
|
||||
#define GPIO22 {GPIOB, GPIO_Pin_6}
|
||||
#define GPIO23 {GPIOB, GPIO_Pin_7}
|
||||
#define GPIO24 {GPIOB, GPIO_Pin_8}
|
||||
#define GPIO25 {GPIOB, GPIO_Pin_9}
|
||||
#define GPIO26 {GPIOB, GPIO_Pin_10}
|
||||
#define GPIO27 {GPIOB, GPIO_Pin_11}
|
||||
#define GPIO28 {GPIOB, GPIO_Pin_12}
|
||||
#define GPIO29 {GPIOB, GPIO_Pin_13}
|
||||
#define GPIO30 {GPIOB, GPIO_Pin_14}
|
||||
#define GPIO31 {GPIOB, GPIO_Pin_15}
|
||||
#define GPIO16 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_0}}
|
||||
#define GPIO17 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_1}}
|
||||
#define GPIO18 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_2}}
|
||||
#define GPIO19 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_3}}
|
||||
#define GPIO20 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_4}}
|
||||
#define GPIO21 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_5}}
|
||||
#define GPIO22 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_6}}
|
||||
#define GPIO23 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_7}}
|
||||
#define GPIO24 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_8}}
|
||||
#define GPIO25 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_9}}
|
||||
#define GPIO26 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_10}}
|
||||
#define GPIO27 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_11}}
|
||||
#define GPIO28 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_12}}
|
||||
#define GPIO29 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_13}}
|
||||
#define GPIO30 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_14}}
|
||||
#define GPIO31 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOB, {GPIOB, GPIO_Pin_15}}
|
||||
#endif
|
||||
#ifdef GPIOC
|
||||
// ==================== GPIOC 组 ====================
|
||||
#define GPIO32 {GPIOC, GPIO_Pin_0}
|
||||
#define GPIO33 {GPIOC, GPIO_Pin_1}
|
||||
#define GPIO34 {GPIOC, GPIO_Pin_2}
|
||||
#define GPIO35 {GPIOC, GPIO_Pin_3}
|
||||
#define GPIO36 {GPIOC, GPIO_Pin_4}
|
||||
#define GPIO37 {GPIOC, GPIO_Pin_5}
|
||||
#define GPIO38 {GPIOC, GPIO_Pin_6}
|
||||
#define GPIO39 {GPIOC, GPIO_Pin_7}
|
||||
#define GPIO40 {GPIOC, GPIO_Pin_8}
|
||||
#define GPIO41 {GPIOC, GPIO_Pin_9}
|
||||
#define GPIO42 {GPIOC, GPIO_Pin_10}
|
||||
#define GPIO43 {GPIOC, GPIO_Pin_11}
|
||||
#define GPIO44 {GPIOC, GPIO_Pin_12}
|
||||
#define GPIO45 {GPIOC, GPIO_Pin_13}
|
||||
#define GPIO46 {GPIOC, GPIO_Pin_14}
|
||||
#define GPIO47 {GPIOC, GPIO_Pin_15}
|
||||
#define GPIO32 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_0}}
|
||||
#define GPIO33 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_1}}
|
||||
#define GPIO34 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_2}}
|
||||
#define GPIO35 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_3}}
|
||||
#define GPIO36 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_4}}
|
||||
#define GPIO37 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_5}}
|
||||
#define GPIO38 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_6}}
|
||||
#define GPIO39 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_7}}
|
||||
#define GPIO40 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_8}}
|
||||
#define GPIO41 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_9}}
|
||||
#define GPIO42 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_10}}
|
||||
#define GPIO43 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_11}}
|
||||
#define GPIO44 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_12}}
|
||||
#define GPIO45 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_13}}
|
||||
#define GPIO46 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_14}}
|
||||
#define GPIO47 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOC, {GPIOC, GPIO_Pin_15}}
|
||||
#endif
|
||||
#ifdef GPIOD
|
||||
// ==================== GPIOD 组 ====================
|
||||
#define GPIO48 {GPIOD, GPIO_Pin_0}
|
||||
#define GPIO49 {GPIOD, GPIO_Pin_1}
|
||||
#define GPIO50 {GPIOD, GPIO_Pin_2}
|
||||
#define GPIO51 {GPIOD, GPIO_Pin_3}
|
||||
#define GPIO52 {GPIOD, GPIO_Pin_4}
|
||||
#define GPIO53 {GPIOD, GPIO_Pin_5}
|
||||
#define GPIO54 {GPIOD, GPIO_Pin_6}
|
||||
#define GPIO55 {GPIOD, GPIO_Pin_7}
|
||||
#define GPIO56 {GPIOD, GPIO_Pin_8}
|
||||
#define GPIO57 {GPIOD, GPIO_Pin_9}
|
||||
#define GPIO58 {GPIOD, GPIO_Pin_10}
|
||||
#define GPIO59 {GPIOD, GPIO_Pin_11}
|
||||
#define GPIO60 {GPIOD, GPIO_Pin_12}
|
||||
#define GPIO61 {GPIOD, GPIO_Pin_13}
|
||||
#define GPIO62 {GPIOD, GPIO_Pin_14}
|
||||
#define GPIO63 {GPIOD, GPIO_Pin_15}
|
||||
#define GPIO48 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_0}}
|
||||
#define GPIO49 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_1}}
|
||||
#define GPIO50 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_2}}
|
||||
#define GPIO51 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_3}}
|
||||
#define GPIO52 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_4}}
|
||||
#define GPIO53 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_5}}
|
||||
#define GPIO54 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_6}}
|
||||
#define GPIO55 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_7}}
|
||||
#define GPIO56 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_8}}
|
||||
#define GPIO57 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_9}}
|
||||
#define GPIO58 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_10}}
|
||||
#define GPIO59 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_11}}
|
||||
#define GPIO60 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_12}}
|
||||
#define GPIO61 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_13}}
|
||||
#define GPIO62 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_14}}
|
||||
#define GPIO63 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOD, {GPIOD, GPIO_Pin_15}}
|
||||
#endif
|
||||
#ifdef GPIOE
|
||||
// ==================== GPIOE 组 ====================
|
||||
#define GPIO64 {GPIOE, GPIO_Pin_0}
|
||||
#define GPIO65 {GPIOE, GPIO_Pin_1}
|
||||
#define GPIO66 {GPIOE, GPIO_Pin_2}
|
||||
#define GPIO67 {GPIOE, GPIO_Pin_3}
|
||||
#define GPIO68 {GPIOE, GPIO_Pin_4}
|
||||
#define GPIO69 {GPIOE, GPIO_Pin_5}
|
||||
#define GPIO70 {GPIOE, GPIO_Pin_6}
|
||||
#define GPIO71 {GPIOE, GPIO_Pin_7}
|
||||
#define GPIO72 {GPIOE, GPIO_Pin_8}
|
||||
#define GPIO73 {GPIOE, GPIO_Pin_9}
|
||||
#define GPIO74 {GPIOE, GPIO_Pin_10}
|
||||
#define GPIO75 {GPIOE, GPIO_Pin_11}
|
||||
#define GPIO76 {GPIOE, GPIO_Pin_12}
|
||||
#define GPIO77 {GPIOE, GPIO_Pin_13}
|
||||
#define GPIO78 {GPIOE, GPIO_Pin_14}
|
||||
#define GPIO79 {GPIOE, GPIO_Pin_15}
|
||||
#define GPIO64 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_0}}
|
||||
#define GPIO65 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_1}}
|
||||
#define GPIO66 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_2}}
|
||||
#define GPIO67 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_3}}
|
||||
#define GPIO68 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_4}}
|
||||
#define GPIO69 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_5}}
|
||||
#define GPIO70 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_6}}
|
||||
#define GPIO71 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_7}}
|
||||
#define GPIO72 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_8}}
|
||||
#define GPIO73 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_9}}
|
||||
#define GPIO74 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_10}}
|
||||
#define GPIO75 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_11}}
|
||||
#define GPIO76 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_12}}
|
||||
#define GPIO77 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_13}}
|
||||
#define GPIO78 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_14}}
|
||||
#define GPIO79 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOE, {GPIOE, GPIO_Pin_15}}
|
||||
#endif
|
||||
#ifdef GPIOF
|
||||
// ==================== GPIOF 组 ====================
|
||||
#define GPIO80 {GPIOF, GPIO_Pin_0}
|
||||
#define GPIO81 {GPIOF, GPIO_Pin_1}
|
||||
#define GPIO82 {GPIOF, GPIO_Pin_2}
|
||||
#define GPIO83 {GPIOF, GPIO_Pin_3}
|
||||
#define GPIO84 {GPIOF, GPIO_Pin_4}
|
||||
#define GPIO85 {GPIOF, GPIO_Pin_5}
|
||||
#define GPIO86 {GPIOF, GPIO_Pin_6}
|
||||
#define GPIO87 {GPIOF, GPIO_Pin_7}
|
||||
#define GPIO88 {GPIOF, GPIO_Pin_8}
|
||||
#define GPIO89 {GPIOF, GPIO_Pin_9}
|
||||
#define GPIO90 {GPIOF, GPIO_Pin_10}
|
||||
#define GPIO91 {GPIOF, GPIO_Pin_11}
|
||||
#define GPIO92 {GPIOF, GPIO_Pin_12}
|
||||
#define GPIO93 {GPIOF, GPIO_Pin_13}
|
||||
#define GPIO94 {GPIOF, GPIO_Pin_14}
|
||||
#define GPIO95 {GPIOF, GPIO_Pin_15}
|
||||
#define GPIO80 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_0}}
|
||||
#define GPIO81 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_1}}
|
||||
#define GPIO82 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_2}}
|
||||
#define GPIO83 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_3}}
|
||||
#define GPIO84 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_4}}
|
||||
#define GPIO85 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_5}}
|
||||
#define GPIO86 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_6}}
|
||||
#define GPIO87 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_7}}
|
||||
#define GPIO88 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_8}}
|
||||
#define GPIO89 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_9}}
|
||||
#define GPIO90 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_10}}
|
||||
#define GPIO91 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_11}}
|
||||
#define GPIO92 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_12}}
|
||||
#define GPIO93 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_13}}
|
||||
#define GPIO94 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_14}}
|
||||
#define GPIO95 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOF, {GPIOF, GPIO_Pin_15}}
|
||||
#endif
|
||||
#ifdef GPIOG
|
||||
// ==================== GPIOG 组 ====================
|
||||
#define GPIO96 {GPIOG, GPIO_Pin_0}
|
||||
#define GPIO97 {GPIOG, GPIO_Pin_1}
|
||||
#define GPIO98 {GPIOG, GPIO_Pin_2}
|
||||
#define GPIO99 {GPIOG, GPIO_Pin_3}
|
||||
#define GPIO100 {GPIOG, GPIO_Pin_4}
|
||||
#define GPIO101 {GPIOG, GPIO_Pin_5}
|
||||
#define GPIO102 {GPIOG, GPIO_Pin_6}
|
||||
#define GPIO103 {GPIOG, GPIO_Pin_7}
|
||||
#define GPIO104 {GPIOG, GPIO_Pin_8}
|
||||
#define GPIO105 {GPIOG, GPIO_Pin_9}
|
||||
#define GPIO106 {GPIOG, GPIO_Pin_10}
|
||||
#define GPIO107 {GPIOG, GPIO_Pin_11}
|
||||
#define GPIO108 {GPIOG, GPIO_Pin_12}
|
||||
#define GPIO109 {GPIOG, GPIO_Pin_13}
|
||||
#define GPIO110 {GPIOG, GPIO_Pin_14}
|
||||
#define GPIO111 {GPIOG, GPIO_Pin_15}
|
||||
#define GPIO96 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_0}}
|
||||
#define GPIO97 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_1}}
|
||||
#define GPIO98 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_2}}
|
||||
#define GPIO99 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_3}}
|
||||
#define GPIO100 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_4}}
|
||||
#define GPIO101 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_5}}
|
||||
#define GPIO102 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_6}}
|
||||
#define GPIO103 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_7}}
|
||||
#define GPIO104 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_8}}
|
||||
#define GPIO105 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_9}}
|
||||
#define GPIO106 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_10}}
|
||||
#define GPIO107 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_11}}
|
||||
#define GPIO108 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_12}}
|
||||
#define GPIO109 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_13}}
|
||||
#define GPIO110 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_14}}
|
||||
#define GPIO111 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_15}}
|
||||
#endif
|
||||
|
||||
#define GPIOEND {(GPIO_TypeDef *)0xFFFFFFFF, 0xFFFF}
|
||||
typedef struct {
|
||||
USART_TypeDef *UartId;
|
||||
unsigned int Irqn;
|
||||
} COM_PERIPH_T;
|
||||
|
||||
typedef struct {
|
||||
USART_TypeDef *Periph;
|
||||
unsigned int Irqn;
|
||||
void (*ClockCmd)(uint32_t RccPeriph, FunctionalState State);
|
||||
unsigned int ClockTree;
|
||||
COM_PERIPH_T Periph;
|
||||
} COM_MAP_T;
|
||||
|
||||
#ifdef USART1
|
||||
#define COM0 {USART1,USART1_IRQn}
|
||||
#define COM0 (&(COM_MAP_T){RCC_APB2PeriphClockCmd, RCC_APB2Periph_USART1, {USART1,USART1_IRQn}})
|
||||
#endif
|
||||
#ifdef USART2
|
||||
#define COM1 {USART2,USART2_IRQn}
|
||||
#define COM1 (&(COM_MAP_T){RCC_APB1PeriphClockCmd, RCC_APB1Periph_USART2, {USART2,USART2_IRQn}})
|
||||
#endif
|
||||
#ifdef USART3
|
||||
#define COM2 {USART3,USART3_IRQn}
|
||||
#define COM2 (&(COM_MAP_T){RCC_APB1PeriphClockCmd, RCC_APB1Periph_USART3,{USART3,USART3_IRQn}})
|
||||
#endif
|
||||
#ifdef UART4
|
||||
#define COM3 {UART4,UART4_IRQn}
|
||||
#define COM3 (&(COM_MAP_T){RCC_APB1PeriphClockCmd, RCC_APB1Periph_UART4,{UART4,UART4_IRQn}})
|
||||
#endif
|
||||
#define COM4 {UART5,UART5_IRQn}
|
||||
#define COM4 (&(COM_MAP_T){RCC_APB1PeriphClockCmd, RCC_APB1Periph_UART5,{UART5,UART5_IRQn}})
|
||||
|
||||
#endif //VOILETTYPEDEF_H
|
||||
|
||||
Reference in New Issue
Block a user