STM32¹Ì¼þ¿âʹÓÃÊÖ²áµÄÖÐÎÄ·­Òë

NVIC

NVIC_PriorityGroup_3

NVIC_PriorityGroup_4

0-7 0-15

0-1 0

ÏÈÕ¼ÓÅÏȼ¶3λ ´ÓÓÅÏȼ¶1λ ÏÈÕ¼ÓÅÏȼ¶4λ ´ÓÓÅÏȼ¶0λ

1. Ñ¡ÖÐNVIC_PriorityGroup_0£¬Ôò²ÎÊýNVIC_IRQChannelPreemptionPriority¶ÔÖжÏͨµÀµÄÉèÖò»²úÉúÓ°Ïì¡£

2. Ñ¡ÖÐNVIC_PriorityGroup_4£¬Ôò²ÎÊýNVIC_IRQChannelSubPriority¶ÔÖжÏͨµÀµÄÉèÖò»²úÉúÓ°Ïì¡£

NVIC_IRQChannelCmd

¸Ã²ÎÊýÖ¸¶¨ÁËÔÚ³ÉÔ±NVIC_IRQChannelÖж¨ÒåµÄIRQͨµÀ±»Ê¹ÄÜ»¹ÊÇʧÄÜ¡£Õâ¸ö²ÎÊýȡֵΪENABLE»òÕßDISABLE¡£ Àý£º

NVIC_InitTypeDef NVIC_InitStructure; /* Configure the Priority Grouping with 1 bit */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

/* Enable TIM3 global interrupt with Preemption Priority 0 and Sub Priority as 2 */

NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure(&NVIC_InitStructure);

/* Enable USART1 global interrupt with Preemption Priority 1 and Sub Priority as 5 */

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 5; NVIC_InitStructure(&NVIC_InitStructure);

/* Enable RTC global interrupt with Preemption Priority 1 and Sub Priority as 7 */

NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 7; NVIC_InitStructure(&NVIC_InitStructure);

/* Enable EXTI4 interrupt with Preemption Priority 1 and Sub Priority as 7 */

NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 7; NVIC_InitStructure(&NVIC_InitStructure);

/* TIM3 interrupt priority is higher than USART1, RTC and EXTI4 interrupts priorities. USART1 interrupt priority is higher than RTC and EXTI4 interrupts priorities. RTC interrupt priority is higher than EXTI4 interrupt prioriy. */

ÒëÎÄÓ¢ÎÄÔ­°æÎªUM0427 Oct. 2007 Rev 2, ÒëÎĽö¹©²Î¿¼£¬ÓëÓ¢Îİæ³åÍ»µÄ£¬ÒÔÓ¢ÎİæÎª×¼

NVIC

13.2.5 º¯ÊýNVIC_StructInit

Table 274. ÃèÊöÁ˺¯ÊýNVIC_StructInit Table 274. º¯ÊýNVIC_StructInit º¯ÊýÃû º¯ÊýÔ­ÐÎ ¹¦ÄÜÃèÊö ÊäÈë²ÎÊý Êä³ö²ÎÊý ·µ»ØÖµ ÏȾöÌõ¼þ ±»µ÷Óú¯Êý NVIC_StructInit

void NVIC_StructInit (NVIC_InitTypeDef* NVIC_InitStruct) °ÑNVIC_InitStructÖеÄÿһ¸ö²ÎÊý°´È±Ê¡ÖµÌîÈë

NVIC_InitStruct£ºÖ¸Ïò½á¹¹NVIC_InitTypeDefµÄÖ¸Õ룬´ý³õʼ»¯ ÎÞ ÎÞ ÎÞ ÎÞ Table 275. ¸ø³öÁËNVIC_InitStruct¸÷¸ö³ÉÔ±µÄȱʡֵ¡£

Table 275. NVIC_InitStructȱʡֵ ³ÉÔ±

NVIC_IRQChannel NVIC_IRQChannelPreemptionPriority NVIC_IRQChannelSubPriority NVIC_IRQChannelCmd Àý£º

/* The following example illustrates how to initialize a NVIC_InitTypeDef structure */ NVIC_InitTypeDef NVIC_InitStructure; NVIC_StructInit(&NVIC_InitStructure);

ȱʡֵ 0x0 0 0 DISABLE

13.2.6 º¯ÊýNVIC_SETPRIMASK

Table 276. ÃèÊöÁ˺¯ÊýNVIC_SETPRIMASK Table 276. º¯ÊýNVIC_SETPRIMASKº¯ÊýÃû º¯ÊýÔ­ÐÎ ¹¦ÄÜÃèÊö ÊäÈë²ÎÊý Êä³ö²ÎÊý ·µ»ØÖµ ÏȾöÌõ¼þ

£¨1£©£¨2£©£¨3£©

NVIC_SETPRIMASK void NVIC_SETPRIMASK(void) ʹÄÜPRIMASKÓÅÏȼ¶£ºÌáÉýÖ´ÐÐÓÅÏȼ¶ÖÁ0 ÎÞ ÎÞ ÎÞ ÎÞ

ÒëÎÄÓ¢ÎÄÔ­°æÎªUM0427 Oct. 2007 Rev 2, ÒëÎĽö¹©²Î¿¼£¬ÓëÓ¢Îİæ³åÍ»µÄ£¬ÒÔÓ¢ÎİæÎª×¼

NVIC

±»µ÷Óú¯Êý __SETPRIMASK() 1. ¸Ãº¯ÊýÓÉ»ã±àÓïÑÔÊéд¡£

2. ¸Ãº¯ÊýÖ»Ó°Ïì×éÓÅÏȼ¶£¬²»Ó°Ïì´ÓÓÅÏȼ¶¡£

3. ÔÚÉèÖÃPRIMASK¼Ä´æÆ÷ǰ£¬½¨ÒéÔÚ´ÓΪÁËʹÄÜÒ»¸öÀýÍâÖÐÁíÒ»¸öÀýÍâ·µ»ØÊ±£¬Çå³ý¸Ã¼Ä´æÆ÷¡£ Àý£º

/* Enable the PRIMASK priority */ NVIC_SETPRIMASK();

13.2.7 º¯ÊýNVIC_RESETPRIMASK

Table 277. ÃèÊöÁ˺¯ÊýNVIC_RESETPRIMASK Table 277. º¯ÊýNVIC_RESETPRIMASKº¯ÊýÃû º¯ÊýÔ­ÐÎ ¹¦ÄÜÃèÊö ÊäÈë²ÎÊý Êä³ö²ÎÊý ·µ»ØÖµ ÏȾöÌõ¼þ ±»µ÷Óú¯Êý NVIC_Init

void NVIC_RESETPRIMASK(void) ʧÄÜPRIMASKÓÅÏȼ¶ ÎÞ ÎÞ ÎÞ ÎÞ

__RESETPRIMASK() £¨1£©

1. ¸Ãº¯ÊýÓÉ»ã±àÓïÑÔÊéд¡£ Àý£º

/* Disable the PRIMASK priority */ NVIC_RESETPRIMASK();

13.2.8 º¯ÊýNVIC_SETFAULTMASK

Table 278. ÃèÊöÁ˺¯ÊýNVIC_SETFAULTMASK Table 278. º¯ÊýNVIC_SETFAULTMASKº¯ÊýÃû º¯ÊýÔ­ÐÎ ¹¦ÄÜÃèÊö ÊäÈë²ÎÊý Êä³ö²ÎÊý ·µ»ØÖµ ÏȾöÌõ¼þ ±»µ÷Óú¯Êý £¨1£©£¨2£©£¨3£©

NVIC_SETFAULTMASK void NVIC_SETFAULTMASK(void) ʹÄÜFAULTMASKÓÅÏȼ¶£ºÌáÉýÖ´ÐÐÓÅÏȼ¶ÖÁ-1 ÎÞ ÎÞ ÎÞ ÎÞ

__SETFAULTMASK()

ÒëÎÄÓ¢ÎÄÔ­°æÎªUM0427 Oct. 2007 Rev 2, ÒëÎĽö¹©²Î¿¼£¬ÓëÓ¢Îİæ³åÍ»µÄ£¬ÒÔÓ¢ÎİæÎª×¼

NVIC

1. ¸Ãº¯ÊýÓÉ»ã±àÓïÑÔÊéд¡£

2. ¸Ãº¯ÊýÖ»Ó°Ïì×éÓÅÏȼ¶£¬²»Ó°Ïì´ÓÓÅÏȼ¶¡£

3. FAULTMASKÖ»ÓÐÔÚÖ´ÐÐÓÅÏȼ¶ÖµÐ¡ÓÚ-1µÄÇé¿öϲÅÄܱ»ÉèÖã¬ÉèÖÃFAULTMASK½«ËüµÄÖ´ÐÐÓÅÏȼ¶ÌáÉýµ½HardFAULTµÄ¼¶±ð¡£Ã¿µ±´Ó³ýNMIÖ®ÍâµÄÀýÍâÖзµ»Ø£¬FAULTMASK»á±»×Ô¶¯Çå³ý¡£ Àý£º

/* Enable the FAULTMASK priority */ NVIC_SETFAULTMASK();

13.2.9 º¯ÊýNVIC_RESETFAULTMASK

Table 279. ÃèÊöÁ˺¯ÊýNVIC_ RESETFAULTMASK Table 279. º¯ÊýNVIC_ RESETFAULTMASKº¯ÊýÃû º¯ÊýÔ­ÐÎ ¹¦ÄÜÃèÊö ÊäÈë²ÎÊý Êä³ö²ÎÊý ·µ»ØÖµ ÏȾöÌõ¼þ ±»µ÷Óú¯Êý £¨1£©

NVIC_RESETFAULTMASK void NVIC_RESETFAULTMASK(void) ʧÄÜFAULTMASKÓÅÏȼ¶ ÎÞ ÎÞ ÎÞ ÎÞ

__RESETFAULTMASK() 1. ¸Ãº¯ÊýÓÉ»ã±àÓïÑÔÊéд¡£ Àý£º

/* Enable the PRIMASK priority */ NVIC_RESETPRIMASK();

13.2.10 º¯ÊýNVIC_BASEPRICONFIG

Table 280. ÃèÊöÁ˺¯ÊýNVIC_ BASEPRICONFIG Table 280. º¯ÊýNVIC_ BASEPRICONFIGº¯ÊýÃû º¯ÊýÔ­ÐÎ ¹¦ÄÜÃèÊö ÊäÈë²ÎÊý Êä³ö²ÎÊý ·µ»ØÖµ ÏȾöÌõ¼þ ±»µ÷Óú¯Êý £¨1£©£¨2£©£¨3£©

NVIC_ BASEPRICONFIG

void NVIC_BASEPRICONFIG(u32 NewPriority) ¸Ä±äÖ´ÐÐÓÅÏȼ¶´ÓN£¨×îµÍ¿ÉÉèÖÃÓÅÏȼ¶£©ÌáÉýÖÁ1 NewPriority£ºÖ´ÐÐÓÅÏȼ¶µÄÐÂÓÅÏȼ¶Öµ ÎÞ ÎÞ ÎÞ

__BASEPRICONFIG()

ÒëÎÄÓ¢ÎÄÔ­°æÎªUM0427 Oct. 2007 Rev 2, ÒëÎĽö¹©²Î¿¼£¬ÓëÓ¢Îİæ³åÍ»µÄ£¬ÒÔÓ¢ÎİæÎª×¼

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)