📄 main.i
字号:
static __inline void NVIC_EnableIRQ(IRQn_Type IRQn)
{
((NVIC_Type *) ((0xE000E000) + 0x0100))->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));
}
static __inline void NVIC_DisableIRQ(IRQn_Type IRQn)
{
((NVIC_Type *) ((0xE000E000) + 0x0100))->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));
}
static __inline IRQn_Type NVIC_GetPendingIRQ(IRQn_Type IRQn)
{
return((IRQn_Type) (((NVIC_Type *) ((0xE000E000) + 0x0100))->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))));
}
static __inline void NVIC_SetPendingIRQ(IRQn_Type IRQn)
{
((NVIC_Type *) ((0xE000E000) + 0x0100))->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));
}
static __inline void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
{
((NVIC_Type *) ((0xE000E000) + 0x0100))->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));
}
static __inline IRQn_Type NVIC_GetActive(IRQn_Type IRQn)
{
return((IRQn_Type)(((NVIC_Type *) ((0xE000E000) + 0x0100))->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F))));
}
static __inline void NVIC_SetPriority(IRQn_Type IRQn, int32_t priority)
{
if(IRQn < 0) {
((SCB_Type *) ((0xE000E000) + 0x0D00))->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - 4)) & 0xff); }
else {
((NVIC_Type *) ((0xE000E000) + 0x0100))->IP[(uint32_t)(IRQn)] = ((priority << (8 - 4)) & 0xff); }
}
static __inline IRQn_Type NVIC_GetPriority(IRQn_Type IRQn)
{
if(IRQn < 0) {
return((IRQn_Type)(((SCB_Type *) ((0xE000E000) + 0x0D00))->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - 4))); }
else {
return((IRQn_Type)(((NVIC_Type *) ((0xE000E000) + 0x0100))->IP[(uint32_t)(IRQn)] >> (8 - 4))); }
}
static __inline uint32_t SysTick_Config(uint32_t ticks)
{
if (ticks > ((1<<24) -1)) return (1);
((SysTick_Type *) ((0xE000E000) + 0x0010))->LOAD = (ticks & ((1<<24) -1));
((SCB_Type *) ((0xE000E000) + 0x0D00))->SHP[(SysTick_IRQn & 0xF)-4] = (((1<<4) -1) << (8 - 4));
((SysTick_Type *) ((0xE000E000) + 0x0010))->VAL = (0x00);
((SysTick_Type *) ((0xE000E000) + 0x0010))->CTRL = (1 << 2) | (1<<0) | (1<<1);
return (0);
}
static __inline void NVIC_SystemReset(void)
{
((SCB_Type *) ((0xE000E000) + 0x0D00))->AIRCR = ((0x5FA << 16) | (((SCB_Type *) ((0xE000E000) + 0x0D00))->AIRCR & (0x700)) | (1<<2));
}
static __inline uint32_t ITM_SendChar (uint32_t ch)
{
if(ch == '\n') ITM_SendChar('\r');
if ((((CoreDebug_Type *) (0xE000EDF0))->DEMCR & (1 << 24)) &&
(((ITM_Type *) (0xE0000000))->TCR & 1) &&
(((ITM_Type *) (0xE0000000))->TER & (1UL << 0)) )
{
while (((ITM_Type *) (0xE0000000))->PORT[0].u32 == 0);
((ITM_Type *) (0xE0000000))->PORT[0].u8 = (uint8_t) ch;
}
return (ch);
}
#line 104 "../stm32.h"
#line 1 "../system_stm32.h"
extern const uint32_t SystemFrequency;
extern const uint32_t SystemFrequency_SysClk;
extern const uint32_t SystemFrequency_AHBClk;
extern const uint32_t SystemFrequency_APB1Clk;
extern const uint32_t SystemFrequency_APB2Clk;
extern void SystemInit (void);
#line 105 "../stm32.h"
extern void SystemInit (void);
typedef struct
{
volatile uint32_t SR;
volatile uint32_t CR1;
volatile uint32_t CR2;
volatile uint32_t SMPR1;
volatile uint32_t SMPR2;
volatile uint32_t JOFR1;
volatile uint32_t JOFR2;
volatile uint32_t JOFR3;
volatile uint32_t JOFR4;
volatile uint32_t HTR;
volatile uint32_t LTR;
volatile uint32_t SQR1;
volatile uint32_t SQR2;
volatile uint32_t SQR3;
volatile uint32_t JSQR;
volatile uint32_t JDR1;
volatile uint32_t JDR2;
volatile uint32_t JDR3;
volatile uint32_t JDR4;
volatile uint32_t DR;
} ADC_TypeDef;
typedef struct
{
uint32_t RESERVED0;
volatile uint16_t DR1;
uint16_t RESERVED1;
volatile uint16_t DR2;
uint16_t RESERVED2;
volatile uint16_t DR3;
uint16_t RESERVED3;
volatile uint16_t DR4;
uint16_t RESERVED4;
volatile uint16_t DR5;
uint16_t RESERVED5;
volatile uint16_t DR6;
uint16_t RESERVED6;
volatile uint16_t DR7;
uint16_t RESERVED7;
volatile uint16_t DR8;
uint16_t RESERVED8;
volatile uint16_t DR9;
uint16_t RESERVED9;
volatile uint16_t DR10;
uint16_t RESERVED10;
volatile uint16_t RTCCR;
uint16_t RESERVED11;
volatile uint16_t CR;
uint16_t RESERVED12;
volatile uint16_t CSR;
uint16_t RESERVED13;
} BKP_TypeDef;
typedef struct
{
volatile uint32_t TIR;
volatile uint32_t TDTR;
volatile uint32_t TDLR;
volatile uint32_t TDHR;
} CAN_TxMailBox_TypeDef;
typedef struct
{
volatile uint32_t RIR;
volatile uint32_t RDTR;
volatile uint32_t RDLR;
volatile uint32_t RDHR;
} CAN_FIFOMailBox_TypeDef;
typedef struct
{
volatile uint32_t FR0;
volatile uint32_t FR1;
} CAN_FilterRegister_TypeDef;
typedef struct
{
volatile uint32_t MCR;
volatile uint32_t MSR;
volatile uint32_t TSR;
volatile uint32_t RF0R;
volatile uint32_t RF1R;
volatile uint32_t IER;
volatile uint32_t ESR;
volatile uint32_t BTR;
uint32_t RESERVED0[88];
CAN_TxMailBox_TypeDef sTxMailBox[3];
CAN_FIFOMailBox_TypeDef sFIFOMailBox[2];
uint32_t RESERVED1[12];
volatile uint32_t FMR;
volatile uint32_t FM0R;
uint32_t RESERVED2[1];
volatile uint32_t FS0R;
uint32_t RESERVED3[1];
volatile uint32_t FFA0R;
uint32_t RESERVED4[1];
volatile uint32_t FA0R;
uint32_t RESERVED5[8];
CAN_FilterRegister_TypeDef sFilterRegister[14];
} CAN_TypeDef;
typedef struct
{
volatile uint32_t CCR;
volatile uint32_t CNDTR;
volatile uint32_t CPAR;
volatile uint32_t CMAR;
} DMA_Channel_TypeDef;
typedef struct
{
volatile uint32_t ISR;
volatile uint32_t IFCR;
} DMA_TypeDef;
typedef struct
{
volatile uint32_t IMR;
volatile uint32_t EMR;
volatile uint32_t RTSR;
volatile uint32_t FTSR;
volatile uint32_t SWIER;
volatile uint32_t PR;
} EXTI_TypeDef;
typedef struct
{
volatile uint32_t ACR;
volatile uint32_t KEYR;
volatile uint32_t OPTKEYR;
volatile uint32_t SR;
volatile uint32_t CR;
volatile uint32_t AR;
volatile uint32_t RESERVED;
volatile uint32_t OBR;
volatile uint32_t WRPR;
} FLASH_TypeDef;
typedef struct
{
volatile uint16_t RDP;
volatile uint16_t USER;
volatile uint16_t Data0;
volatile uint16_t Data1;
volatile uint16_t WRP0;
volatile uint16_t WRP1;
volatile uint16_t WRP2;
volatile uint16_t WRP3;
} OB_TypeDef;
typedef struct
{
volatile uint32_t CRL;
volatile uint32_t CRH;
volatile uint32_t IDR;
volatile uint32_t ODR;
volatile uint32_t BSRR;
volatile uint32_t BRR;
volatile uint32_t LCKR;
} GPIO_TypeDef;
typedef struct
{
volatile uint32_t EVCR;
volatile uint32_t MAPR;
volatile uint32_t EXTICR[4];
} AFIO_TypeDef;
typedef struct
{
volatile uint16_t CR1;
uint16_t RESERVED0;
volatile uint16_t CR2;
uint16_t RESERVED1;
volatile uint16_t OAR1;
uint16_t RESERVED2;
volatile uint16_t OAR2;
uint16_t RESERVED3;
volatile uint16_t DR;
uint16_t RESERVED4;
volatile uint16_t SR1;
uint16_t RESERVED5;
volatile uint16_t SR2;
uint16_t RESERVED6;
volatile uint16_t CCR;
uint16_t RESERVED7;
volatile uint16_t TRISE;
uint16_t RESERVED8;
} I2C_TypeDef;
typedef struct
{
volatile uint32_t KR;
volatile uint32_t PR;
volatile uint32_t RLR;
volatile uint32_t SR;
} IWDG_TypeDef;
typedef struct
{
volatile uint32_t CR;
volatile uint32_t CSR;
} PWR_TypeDef;
typedef struct
{
volatile uint32_t CR;
volatile uint32_t CFGR;
volatile uint32_t CIR;
volatile uint32_t APB2RSTR;
volatile uint32_t APB1RSTR;
volatile uint32_t AHBENR;
volatile uint32_t APB2ENR;
volatile uint32_t APB1ENR;
volatile uint32_t BDCR;
volatile uint32_t CSR;
} RCC_TypeDef;
typedef struct
{
volatile uint16_t CRH;
uint16_t RESERVED0;
volatile uint16_t CRL;
uint16_t RESERVED1;
volatile uint16_t PRLH;
uint16_t RESERVED2;
volatile uint16_t PRLL;
uint16_t RESERVED3;
volatile uint16_t DIVH;
uint16_t RESERVED4;
volatile uint16_t DIVL;
uint16_t RESERVED5;
volatile uint16_t CNTH;
uint16_t RESERVED6;
volatile uint16_t CNTL;
uint16_t RESERVED7;
volatile uint16_t ALRH;
uint16_t RESERVED8;
volatile uint16_t ALRL;
uint16_t RESERVED9;
} RTC_TypeDef;
typedef struct
{
volatile uint16_t CR1;
uint16_t RESERVED0;
volatile uint16_t CR2;
uint16_t RESERVED1;
volatile uint16_t SR;
uint16_t RESERVED2;
volatile uint16_t DR;
uint16_t RESERVED3;
volatile uint16_t CRCPR;
uint16_t RESERVED4;
volatile uint16_t RXCRCR;
uint16_t RESERVED5;
volatile uint16_t TXCRCR;
uint16_t RESERVED6;
} SPI_TypeDef;
typedef struct
{
volatile uint16_t CR1;
uint16_t RESERVED0;
volatile uint16_t CR2;
uint16_t RESERVED1;
volatile uint16_t SMCR;
uint16_t RESERVED2;
volatile uint16_t DIER;
uint16_t RESERVED3;
volatile uint16_t SR;
uint16_t RESERVED4;
volatile uint16_t EGR;
uint16_t RESERVED5;
volatile uint16_t CCMR1;
uint16_t RESERVED6;
volatile uint16_t CCMR2;
uint16_t RESERVED7;
volatile uint16_t CCER;
uint16_t RESERVED8;
volatile uint16_t CNT;
uint16_t RESERVED9;
volatile uint16_t PSC;
uint16_t RESERVED10;
volatile uint16_t ARR;
uint16_t RESERVED11;
volatile uint16_t RCR;
uint16_t RESERVED12;
volatile uint16_t CCR1;
uint16_t RESERVED13;
volatile uint16_t CCR2;
uint16_t RESERVED14;
volatile uint16_t CCR3;
uint16_t RESERVED15;
volatile uint16_t CCR4;
uint16_t RESERVED16;
volatile uint16_t BDTR;
uint16_t RESERVED17;
volatile uint16_t DCR;
uint16_t RESERVED18;
volatile uint16_t DMAR;
uint16_t RESERVED19;
} TIM1_TypeDef;
typedef struct
{
volatile uint16_t CR1;
uint16_t RESERVED0;
volatile uint16_t CR2;
uint16_t RESERVED1;
volatile uint16_t SMCR;
uint16_t RESERVED2;
volatile uint16_t DIER;
uint16_t RESERVED3;
volatile uint16_t SR;
uint16_t RESERVED4;
volatile uint16_t EGR;
uint16_t RESERVED5;
volatile uint16_t CCMR1;
uint16_t RESERVED6;
volatile uint16_t CCMR2;
uint16_t RESERVED7;
volatile uint16_t CCER;
uint16_t RESERVED8;
volatile uint16_t CNT;
uint16_t RESERVED9;
volatile uint16_t PSC;
uint16_t RESERVED10;
volatile uint16_t ARR;
uint16_t RESERVED11[3];
volatile uint16_t CCR1;
uint16_t RESERVED12;
volatile uint16_t CCR2;
uint16_t RESERVED13;
volatile uint16_t CCR3;
uint16_t RESERVED14;
volatile uint16_t CCR4;
uint16_t RESERVED15[3];
volatile uint16_t DCR;
uint16_t RESERVED16;
volatile uint16_t DMAR;
uint16_t RESERVED17;
} TIM_TypeDef;
typedef struct
{
volatile uint16_t SR;
uint16_t RESERVED0;
volatile uint16_t DR;
uint16_t RESERVED1;
volatile uint16_t BRR;
uint16_t RESERVED2;
volatile uint16_t CR1;
uint16_t RESERVED3;
volatile uint16_t CR2;
uint16_t RESERVED4;
volatile uint16_t CR3;
uint16_t RESERVED5;
volatile uint16_t GTPR;
uint16_t RESERVED6;
} USART_TypeDef;
typedef struct
{
volatile uint32_t CR;
volatile uint32_t CFR;
volatile uint32_t SR;
} WWDG_TypeDef;
#line 551 "../stm32.h"
#line 564 "../stm32.h"
#line 573 "../stm32.h"
#line 617 "../stm32.h"
#line 24 "main.c"
#line 1 "main.h"
#line 25 "main.c"
volatile unsigned int seconds=0;
int main(void)
{
SystemInit();
if (SysTick_Config(SystemFrequency / 1000))
{
while (1);
}
while(1)
{
;
}
}
void SysTick_Handler(void)
{
static int count=0;
count++;
if(count >= 1000)
{
count=0;
seconds++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -