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

2008-8-1 22:19 6126 0 9 分类: MCU/ 嵌入式

/******************** (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点击下载请您在下载的同时到左上角顶我一下,以示支持!谢谢

文章评论9条评论)

登录后参与讨论

romantic5920_736051533 2009-10-24 19:24

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

romantic5920_736051533 2009-7-1 11:50

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

edncareer5 2008-9-20 12:00

有点感觉,多谢

sunke9_998892717 2008-9-19 20:10

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

edncareer5 2008-9-16 20:56

什么是优先级组的长度?(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

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

向小可歌请教一个问题: 在学习万利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

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

uzufk_681520805 2008-8-16 08:52

好!人才!
相关推荐阅读
小可歌 2016-05-31 13:54
【转帖】模拟电路的四重境界
无意中看到这个文章,虽然自己也搞了4 年模电了,但后看完之后发现自己原来根本就没有入门阿!现发上来和大家共享!·············   复旦攻读微电子专业模拟芯片设计方向研究生开始到...
小可歌 2016-05-28 07:14
发帖庆祝用app inventor的录音机保存MP3格式录音成功!
看似简单的功能,可是把我难够呛,刚学APP INVENTOR没几天,手里的两本书翻来掉去的看了N遍。APP INVENTOR的录音机默认是保存录音文件为3GP格式,我想保存成MP3文件就没有地方找...
小可歌 2016-02-22 08:56
C语言Printf格式,调试最好的助手!
    C中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型, 其中方括号[]中的项为...
小可歌 2016-02-19 15:19
对于SRAM的地址线和数据线是可以打乱顺序用的!!!!
因为SRAM的地址具有唯一性,其实数据线也有唯一性。 也就是A0~A18,D0~D15,都是唯一的。 正常是:A0~A18,接FSMC的A0~A18。 D0~D15,接FSMC的D0~D15. 假...
小可歌 2016-02-02 11:29
Linux系统下基本命令
Linux系统下基本命令: 要区分大小写  uname 显示版本信息(同win2K的 ver)  dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir)  pwd...
小可歌 2016-02-02 11:28
DOS命令大全
对于一般的网民来说,dos命令是什么真的不知道,dos命令有些什么作用也不知道。但是黑客们却精通dos命令,经常利用dos命令进行各种任务,以达到自己的目的。下面笔者为大家汇总出dos命令大全,希...
广告
我要评论
9
0
广告
关闭 热点推荐上一条 /5 下一条