初级会员

- 积分
- 75
- 金钱
- 75
- 注册时间
- 2013-8-16
- 在线时间
- 3 小时
|

楼主 |
发表于 2014-2-28 11:29:09
|
显示全部楼层
回复【楼主位】wzj1238:
---------------------------------
代码如下,希望有人帮我看看有啥问题,叩谢:
//侵入检测中断服务程序
void TAMPER_IRQHandler(void)
{
BKP->CSR|=1<<0; //清除侵入事件标志TEF
// BKP->CR=0X00; //侵入检测引脚TAMPER被禁止
// BKP->CR=0X0001; //重新启动TAMPER引脚功能
BKP->DR10=0X5050; //写入第一次配置标记
BKP->CSR|=1<<1; //清除侵入检测中断和TIF侵入检测中断标志
}
//后备区域初始化
//取消后备区写保护,启动侵入检测Tamper功能
//BKP->DR1用于保存是否第一次配置的设置
void BKP_Init(void)
{
if(BKP->DR10!=0X5050)//第一次配置
{
RCC->APB1ENR|=1<<28; //使能电源接口时钟
RCC->APB1ENR|=1<<27; //使能备份接口时钟
PWR->CR|=1<<8; //取消备份区写保护
RCC->BDCR|=1<<16; //备份区域软复位
RCC->BDCR&=~(1<<16); //备份区域软复位结束
BKP->CR=0X0001; //开启Tamper引脚功能,Tamper引脚上的高电平会清除所有BKP_DRx的内容
BKP->DR10=0X5050; //在寄存器1标记已经开启了
}
else
{
RCC->APB1ENR|=1<<28; //使能电源接口时钟
RCC->APB1ENR|=1<<27; //使能备份接口时钟
PWR->CR|=1<<8; //取消备份区写保护
}
BKP->CSR|=1<<2; //TPIE=1,允许侵入检测中断
MY_NVIC_Init(2,0,TAMPER_IRQChannel,2); //抢占2,子优先级0,组2
} |
|