优化中断
This commit is contained in:
+7
-31
@@ -1,37 +1,13 @@
|
||||
#ifndef __BSP_H__
|
||||
#define __BSP_H__
|
||||
|
||||
#include "VoiletTypeDef.h"
|
||||
|
||||
/* Extra Library Enable */
|
||||
#define USE_SHELL //系统使用Shell
|
||||
|
||||
#ifdef USE_SHELL
|
||||
#include "LetterShell.h"
|
||||
#endif
|
||||
|
||||
#define ARRAY_LEN(arr) (sizeof(arr) / sizeof((arr)[0]))
|
||||
|
||||
/* BOOL类型定义 */
|
||||
typedef enum {
|
||||
false = 0,
|
||||
true = 1,
|
||||
} bool_t;
|
||||
|
||||
//GPIO
|
||||
//数组信号输入/出开关
|
||||
#define DI_ON 1
|
||||
#define DI_OFF 0
|
||||
#define DO_ON 1
|
||||
#define DO_OFF 0
|
||||
//LED灯开关
|
||||
#define LED_ON 0
|
||||
#define LED_OFF 1
|
||||
|
||||
/* Voilet */
|
||||
void VoiletBspInit(void);
|
||||
/* Voilet Bsp */
|
||||
#include "VoiletPort.h"
|
||||
/* Board */
|
||||
#include "Board.h"
|
||||
|
||||
/* BSP */
|
||||
void BspInit(void);
|
||||
void LedOn(uint8_t Chnl);
|
||||
void LedOff(uint8_t Chnl);
|
||||
void LedSet(uint8_t Chnl,uint8_t Value);
|
||||
@@ -39,8 +15,8 @@ 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 IrqRegister(unsigned char Irqn,void(*Func)(void *Param));
|
||||
void IrqEnable(uint32_t Irq, uint8_t NvicPrePriority, uint8_t NvicSubPriority);
|
||||
void IrqDisable(uint32_t Irq);
|
||||
|
||||
//System Delay
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#ifndef __LETTER_SHELL_H__
|
||||
#define __LETTER_SHELL_H__
|
||||
|
||||
#include "Bsp.h"
|
||||
|
||||
void LetterShellInit(const COM_MAP_T *ComX, uint32_t Baud);
|
||||
|
||||
#endif
|
||||
@@ -2,24 +2,37 @@
|
||||
// Created by anonymous on 2026/5/24.
|
||||
//
|
||||
|
||||
#ifndef VOILETTYPEDEF_H
|
||||
#define VOILETTYPEDEF_H
|
||||
#ifndef _VOILET_PORT_H
|
||||
#define _VOILET_PORT_H
|
||||
|
||||
#include "stm32f10x.h"
|
||||
|
||||
#define INTERRUPT_ENABLE __set_PRIMASK(0); //开启中断
|
||||
#define INTERRUPT_DISABLE __set_PRIMASK(1); //关闭中断
|
||||
|
||||
#define ARRAY_LEN(arr) (sizeof(arr) / sizeof((arr)[0]))
|
||||
|
||||
/* BOOL类型定义 */
|
||||
typedef enum {
|
||||
false = 0,
|
||||
true = 1,
|
||||
} bool_t;
|
||||
|
||||
/* Interrupt Irq */
|
||||
typedef struct {
|
||||
unsigned char Irqn;
|
||||
void *Periph;
|
||||
void (*IrqCallback)(void *Param);
|
||||
}IRQ_MAP_T;
|
||||
|
||||
#define IRQ_NUM 0xFF //中断数量
|
||||
#define IRQ_NUM 67 //系统共有多少个中断
|
||||
#define NVIC_GROUP_LEVEL NVIC_PriorityGroup_2 //中断组
|
||||
|
||||
/* GPIO */
|
||||
typedef struct {
|
||||
GPIO_TypeDef *GpioPort;
|
||||
unsigned short GpioPin;
|
||||
unsigned char Irqn;
|
||||
} GPIO_PERIPH_T;
|
||||
|
||||
typedef struct {
|
||||
@@ -28,6 +41,12 @@ typedef struct {
|
||||
GPIO_PERIPH_T Periph;
|
||||
} GPIO_MAP_T;
|
||||
|
||||
typedef struct {
|
||||
GPIO_MAP_T GpioX;
|
||||
GPIOMode_TypeDef Mode;
|
||||
GPIOSpeed_TypeDef Speed;
|
||||
}GPIO_CONFIG;
|
||||
|
||||
// ==================== GPIOA 组 ====================
|
||||
#ifdef GPIOA
|
||||
#define GPIO0 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOA, {GPIOA, GPIO_Pin_0}}
|
||||
@@ -162,9 +181,10 @@ typedef struct {
|
||||
#define GPIO111 {RCC_APB2PeriphClockCmd, RCC_APB2Periph_GPIOG, {GPIOG, GPIO_Pin_15}}
|
||||
#endif
|
||||
|
||||
/* COM */
|
||||
typedef struct {
|
||||
USART_TypeDef *UartId;
|
||||
unsigned int Irqn;
|
||||
unsigned char Irqn;
|
||||
} COM_PERIPH_T;
|
||||
|
||||
typedef struct {
|
||||
@@ -173,6 +193,13 @@ typedef struct {
|
||||
COM_PERIPH_T Periph;
|
||||
} COM_MAP_T;
|
||||
|
||||
typedef struct {
|
||||
COM_MAP_T *ComX;
|
||||
GPIO_MAP_T TxPort;
|
||||
GPIO_MAP_T RxPort;
|
||||
GPIOSpeed_TypeDef Speed;
|
||||
}COM_CONFIG;
|
||||
|
||||
#ifdef USART1
|
||||
#define COM0 (&(COM_MAP_T){RCC_APB2PeriphClockCmd, RCC_APB2Periph_USART1, {USART1,USART1_IRQn}})
|
||||
#endif
|
||||
@@ -187,4 +214,4 @@ typedef struct {
|
||||
#endif
|
||||
#define COM4 (&(COM_MAP_T){RCC_APB1PeriphClockCmd, RCC_APB1Periph_UART5,{UART5,UART5_IRQn}})
|
||||
|
||||
#endif //VOILETTYPEDEF_H
|
||||
#endif //_VOILET_PORT_H
|
||||
Reference in New Issue
Block a user