嵌入式ARM STM32 结构体变量NVIC是在哪里定义的
嵌入式ARMSTM32结构体变量NVIC是在哪里定义的,最后一句,IPR在新版本的库里的变量名变了,我想查一下改成什么名字了if(NVIC_Channel<32)NVIC...
嵌入式ARM STM32 结构体变量NVIC是在哪里定义的,最后一句,IPR在新版本的库里的变量名变了,我想查一下改成什么名字了
if(NVIC_Channel<32)NVIC->ISER[0]|=1<<NVIC_Channel;
else NVIC->ISER[1]|=1<<(NVIC_Channel-32);
EXTI->IPR|=temp<<IPROFFSET;// 展开
if(NVIC_Channel<32)NVIC->ISER[0]|=1<<NVIC_Channel;
else NVIC->ISER[1]|=1<<(NVIC_Channel-32);
EXTI->IPR|=temp<<IPROFFSET;// 展开
展开全部
是这个吗
typedef struct
{
__IO uint32_t ISER[8]; /*!< Offset: 0x000 Interrupt Set Enable Register */
uint32_t RESERVED0[24];
__IO uint32_t ICER[8]; /*!< Offset: 0x080 Interrupt Clear Enable Register */
uint32_t RSERVED1[24];
__IO uint32_t ISPR[8]; /*!< Offset: 0x100 Interrupt Set Pending Register */
uint32_t RESERVED2[24];
__IO uint32_t ICPR[8]; /*!< Offset: 0x180 Interrupt Clear Pending Register */
uint32_t RESERVED3[24];
__IO uint32_t IABR[8]; /*!< Offset: 0x200 Interrupt Active bit Register */
uint32_t RESERVED4[56];
__IO uint8_t IP[240]; /*!< Offset: 0x300 Interrupt Priority Register (8Bit wide) */
uint32_t RESERVED5[644];
__O uint32_t STIR; /*!< Offset: 0xE00 Software Trigger Interrupt Register */
} NVIC_Type;
#define SCS_BASE (0xE000E000) /*!< System Control Space Base Address */
#define NVIC_BASE (SCS_BASE + 0x0100) /*!< NVIC Base Address */
#define NVIC ((NVIC_Type *) NVIC_BASE) /*!< NVIC configuration struct */
是在M3内核里定义的
typedef struct
{
__IO uint32_t ISER[8]; /*!< Offset: 0x000 Interrupt Set Enable Register */
uint32_t RESERVED0[24];
__IO uint32_t ICER[8]; /*!< Offset: 0x080 Interrupt Clear Enable Register */
uint32_t RSERVED1[24];
__IO uint32_t ISPR[8]; /*!< Offset: 0x100 Interrupt Set Pending Register */
uint32_t RESERVED2[24];
__IO uint32_t ICPR[8]; /*!< Offset: 0x180 Interrupt Clear Pending Register */
uint32_t RESERVED3[24];
__IO uint32_t IABR[8]; /*!< Offset: 0x200 Interrupt Active bit Register */
uint32_t RESERVED4[56];
__IO uint8_t IP[240]; /*!< Offset: 0x300 Interrupt Priority Register (8Bit wide) */
uint32_t RESERVED5[644];
__O uint32_t STIR; /*!< Offset: 0xE00 Software Trigger Interrupt Register */
} NVIC_Type;
#define SCS_BASE (0xE000E000) /*!< System Control Space Base Address */
#define NVIC_BASE (SCS_BASE + 0x0100) /*!< NVIC Base Address */
#define NVIC ((NVIC_Type *) NVIC_BASE) /*!< NVIC configuration struct */
是在M3内核里定义的
更多追问追答
追问
看到了,是在
按这个头文件,用法是NVIC_Type->ISER[1],那里
宏定义把NVIC_Type换成NVIC,这一句又在哪时找?
追答
NVIC_Type是结构体类型声明,NVIC是用宏定义定义的
#define NVIC ((NVIC_Type *) NVIC_BASE)
找到NVIC寄存器的地址,然后强制转换成NVIC_Type *
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32是一款单片机,由意法半导体公司制造。ST是意法半导体的简称,M是指微控制器(也就是单片机的)MCU的第一个英文字母,32是指32位的CPU,它的CPU是采用的ARM公司的Cortex-M系列的内核设计。STM32具有高性价比、内部...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
头文件里面没有嘛?一般肯定在头文件里面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询