有關STM32F0的NVIC問題(跟中斷有關)

2019-12-17 21:27发布

本帖最后由 陳聖文 于 2018-10-12 17:41 编辑

小弟正在研究NVIC
以下有兩條程式我無法在DATASHEET上找到他的相關資料
有關NVIC的相關寄存器
以下是紅字的寄存器就是無法在DATASHEET上找到的

  1. //設定其優先權
  2. __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
  3. {
  4.   if((int32_t)(IRQn) < 0) {
  5.     SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
  6.        (((priority << (8 - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
  7.   }
  8.   else {
  9.     NVIC->IP[_IP_IDX(IRQn)]  = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)]  & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
  10.        (((priority << (8 - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
  11.   }
  12. }
复制代码
NVIC->IP


  1. //設定啟用
  2. __STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)//---------------------------------------------------------------------------
  3. {
  4.   NVIC->ISER[0] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL));
  5. }
复制代码
NVIC->ISER[0]

以下附上我所使用的DATASHEET STM32F030-F4_DATASHEET_779.pdf (11.46 MB, 下载次数: 3) 2018-10-12 17:39 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
Error.Dan
2019-12-17 23:56
NVIC本质上是CM0内核组件,所以就是找资料也应该是去ARM找,而不是ST。虽然大部分单片机的手册都会提一嘴子NVIC的内容,因为太重要了。

具体这个问题,太久不搞不能直接给你答案,但是我知道答案在哪里,就是CortexM0权威指南里面。
CM3的权威指南我是翻的的滚瓜烂熟,但是CM0内核还是有些不一样的,建议自己去看~

一周热门 更多>