| 楼主,在V3.3.0新库中没有V2.0.3中文件""的函数void NVIC_SystemHandlerPriorityConfig(u32 SystemHandler, u8 SystemHandlerPreemptionPriority, u8 SystemHandlerSubPriority);这个函数可以设置 /******  Cortex-M3 Processor Exceptions Numbers ***************************************************/
 NonMaskableInt_IRQn         = -14,    /*!< 2 Non Maskable Interrupt                             */
 MemoryManagement_IRQn       = -12,    /*!< 4 Cortex-M3 Memory Management Interrupt              */
 BusFault_IRQn               = -11,    /*!< 5 Cortex-M3 Bus Fault Interrupt                      */
 UsageFault_IRQn             = -10,    /*!< 6 Cortex-M3 Usage Fault Interrupt                    */
 SVCall_IRQn                 = -5,     /*!< 11 Cortex-M3 SV Call Interrupt                       */
 DebugMonitor_IRQn           = -4,     /*!< 12 Cortex-M3 Debug Monitor Interrupt                 */
 PendSV_IRQn                 = -2,     /*!< 14 Cortex-M3 Pend SV Interrupt                       */
 SysTick_IRQn                = -1,     /*!< 15 Cortex-M3 System Tick Interrupt                   */
 
 的优先级,如果用库函数V3.3.0中的函数void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);只能设置外部中断的优先级,而不能设置Cortex-M3内核中的中断的优先级,原因是他们的中断优先级寄存器地址不同,外部中断使用Interrupt Priority Registers,地址:0xE000E400-0xE000E41F;内核中断(包括SysTick_IRQn)使用System Handler Priority Registers,地址:0xE000ED18, 0xE000ED1C , 0xE000ED20,详细的资料需要查阅ARM公司的Cortex-M3手册的Nested Vectored Interrupt Controller章节。我正在修改V2.0.3的NVIC函数,使其与V3.3.0兼容,马上就快改好了,有些寄存器ARM公司的定义和ST公司的定义不同,所以要改改。还有提醒你,V3.3.0的函数比V2.0.3的函数功能少点,所以如果你想使用V2.0.3的函数,那就去修改使其两个库兼容。
 |