EDN首页   博客首页 用户登陆  |  注册

日志档案

发表于 2008/8/1 22:19:38

标签: STM32F  中文  汉化  固件库  NVIC  

汉化STM32F2.02版固件库之五(NVIC)

/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
* 文件名称: stm32f10x_nvic.c
* 程序作者: MCD Application Team
* 程序版本: V2.0.2
* 编制日期: 07/11/2008
* 功能描述: 这个文件提供了所有NVIC的固件函数.
********************************************************************************
* 目前的固件的目的是为客户提供关于他们的产品的编码信息以便于节省他们时间。
* 结果, 意法半导体将不会为此承担任何直接,间接或相应的损害赔偿方面的任何索赔要求,
* 例如固件或使用所作的客户编码中他涉嫌包含与他们的相关产品的信息。
*******************************************************************************/

/* 包涵的文件 ------------------------------------------------------------------*/
#include "stm32f10x_nvic.h"

/* 自用类型 -----------------------------------------------------------*/
/* 自用定义 ------------------------------------------------------------*/
#define AIRCR_VECTKEY_MASK    ((u32)0x05FA0000)

/* 自用宏 -------------------------------------------------------------*/
/* 自用变量 ---------------------------------------------------------*/
/* 自用函数原型 -----------------------------------------------*/
/* 自用函数 ---------------------------------------------------------*/

/*******************************************************************************
* 函数名称: NVIC_DeInit
* 功能描述: 复位NVIC外围设备寄存器为默认的复位值.
* 输入参数: 无
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void NVIC_DeInit(void)
{
  u32 index = 0;
 
  NVIC->ICER[0] = 0xFFFFFFFF;
  NVIC->ICER[1] = 0x0FFFFFFF;
  NVIC->ICPR[0] = 0xFFFFFFFF;
  NVIC->ICPR[1] = 0x0FFFFFFF;
 
  for(index = 0; index < 0x0F; index++)
  {
     NVIC->IPR[index] = 0x00000000;
  }
}

/*******************************************************************************
* 函数名称: NVIC_SCBDeInit
* 功能描述: 复位SCB外围设备寄存器为默认的复位值.
* 输入参数: 无
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void NVIC_SCBDeInit(void)
{
  u32 index = 0x00;
 
  SCB->ICSR = 0x0A000000;
  SCB->VTOR = 0x00000000;
  SCB->AIRCR = AIRCR_VECTKEY_MASK;
  SCB->SCR = 0x00000000;
  SCB->CCR = 0x00000000;
  for(index = 0; index < 0x03; index++)
  {
     SCB->SHPR[index] = 0;
  }
  SCB->SHCSR = 0x00000000;
  SCB->CFSR = 0xFFFFFFFF;
  SCB->HFSR = 0xFFFFFFFF;
  SCB->DFSR = 0xFFFFFFFF;
}

下面还有但是都贴上来版面太长不好看,就放在附件里了,欢迎下载.

stm32f10x_nvic.c点击下载请您在下载的同时到左上角顶我一下,以示支持!谢谢

系统分类: 单片机   |   用户分类: STM32F   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

24

阅读(2643)  |  评论(9)  |  收藏(5)  |  举报  

投一票您将和博主都有获奖机会!

最新评论

  • 544852010

    2009/10/24 19:24:36

    你有勇气看完么!反映当代社会的100张照片http://romantic5920.blog.163.com/blog/static/3373111520099185199244/

  • 544852010

    2009/7/1 11:50:56

    我每次都顶你了哦..........呵呵............

  • edncareer5

    2008/9/20 12:00:24

    有点感觉,多谢

  • SUNKE9

    2008/9/19 20:10:11

    1.定义数据结构的目的就是给指定的函数赋值 2.结构本身是不占用寄存器的,结构的成员才是寄存器的名称,他的地址是编译器随机分配的。 3.这个中断优先级功能我没仔细研究过,我做的程序优先级别只有一级,也就是大家平等,谁先来先响应谁。

  • edncareer5

    2008/9/16 20:56:51

    什么是优先级组的长度?(NVIC_PriorityGroup) 作用是什么? 以这个为例: 使能PD.3外部中断(EXTI3) NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure); 使能PD.4外部中断(EXTI4) NVIC_InitStructure.NVIC_IRQChannel=EXTI4_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2; NVIC_InitStructure.NVIC_IRQChannelSubPriority=2; NVIC_Init(&NVIC_InitStructure); 配置SysTick handler的优先级 NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick,2,0); 哪个优先级高呢?程序中该怎么看?

  • edncareer5

    2008/9/16 20:24:48

    NO.2 /*- Nested Vectored Interrupt Controller --------------*/ typedef struct { vu32 Enable[2]; u32 RESERVED0[30]; vu32 Disable[2]; u32 RSERVED1[30]; vu32 Set[2]; u32 RESERVED2[30]; vu32 Clear[2]; u32 RESERVED3[30]; vu32 Active[2]; u32 RESERVED4[62]; vu32 Priority[11]; } NVIC_TypeDef; Dir:library\inc\STM32F10X_MAP.H 这个数据结构对应的是哪个寄存器呢?地址呢?里面的数组存放什么数据? 敬请指导!

  • edncareer5

    2008/9/16 20:18:04

    向小可歌请教一个问题: 在学习万利EK-STM32F板时,看到几个NVIC(嵌套中断控制器)中的数据结构,不太明白,想咨询一下. NO.1 typedef struct {vu32 CPUID; vu32 IRQcontrolState; vu32 ExceptionTableOffset; vu32 AIRC; vu32 Systrl; vu32 ConfigCtrl; vu32 SystemPriority[3]; vu32 SysHandleCtrl; vu32 ConfigFaultStatus; vu32 HardFaultStatus; vu32 MemoryManageFaultAddr; vu32 BusFaultAddr; }SCB_Typedef 这个寄存器对应的是哪个?它的地址是多少呢?这个结构体的作用是什么?

  • edncareer5

    2008/9/16 19:56:43

    小可歌,你太可爱了.你当博主,我支持!!!

  • uzufk

    2008/8/16 8:52:19

    好!人才!