历史上的今天
今天是:2024年12月27日(星期五)
2018年12月27日 | stm32F4电源管理PVD掉电数据存储
2018-12-27 来源:eefocus
很多时候,我们希望我们的单片机在掉电后,可以对一些数据进行保存,下次上电可以读取这些数据,继续工作。现在我项目用到的是STM32F4单片机,利用STM32F4自带的PVD电源管理配置如下:
初始化PVD:
void PWR_PVD_Init(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//使能PWR时钟
NVIC_InitStructure.NVIC_IRQChannel = PVD_IRQn; //使能PVD所在的外部中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//抢占优先级1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //子优先级0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道
NVIC_Init(&NVIC_InitStructure);
EXTI_StructInit(&EXTI_InitStructure);
EXTI_InitStructure.EXTI_Line = EXTI_Line16; //PVD连接到中断线16上
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //使用中断模式
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //电压低于阀值时产生中断
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //使能中断线
EXTI_Init(&EXTI_InitStructure); //初始
PWR_PVDLevelConfig(PWR_PVDLevel_7);//设定监控阀值 注意和F1的区别 F1的电压等级就更直观 PWR_PVDLevel_2V8
PWR_PVDCmd(ENABLE);//使能PVD
}
中断服务函数:
void PVD_IRQHandler(void)
{
static u16 MOTOR_absolute[4];
if(EXTI_GetITStatus(EXTI_Line16) != RESET)
{
MOTOR_absolute[0]=Xabsolute;
MOTOR_absolute[1]=Yabsolute;
MOTOR_absolute[2]=Zabsolute;
MOTOR_absolute[3]=Oabsolute;
//掉电了紧急情况处理
//写入坐标值到FLASH
STMFLASH_Write(FLASH_SAVE_ADDR,(u32*)MOTOR_absolute,4);
printf("%d %d %d %d\n",Xabsolute,Yabsolute,Zabsolute,Oabsolute);
//不能写入外部FLASH 可能是电压原因,所以只能写入内部FLASH
// res=f_open (&fil,"1:/MOTOR_absolute.txt", FA_CREATE_ALWAYS|FA_WRITE); //机械手的一些配置信息管理文件
//
// for(i=0;i<4;i++)
// {
// f_printf(&fil,"%x\n",MOTOR_absolute[i]);
// printf("%d\n",MOTOR_absolute[i]);
// }
/* Clear the Key Button EXTI line pending bit */
EXTI_ClearITPendingBit(EXTI_Line16);
}
}
史海拾趣
|
观察了一些企业的产品技术情况,比较普遍的一个现象是:研发人员无一例外的同声谴责采购和工艺部门,对元器件控制不严,致使电路板入检合格率低、到客户现场后频频出毛病。 举几个简单例子: 一个电解电容紧挨着散热片焊接的,与电解电容相关联 ...… 查看全部问答> |
|
芯片会损坏,这是不争的事实。至于损坏的原因,大致有两个方面,一是内因——芯片工艺缺陷;二是外因——使用不当。下面两个例子,都是在工厂里形成的故障,属于芯片或机器的固有缺陷,照理说,都是应该召回的。 【制作环境潮湿,芯片爆米花】 ...… 查看全部问答> |
|
我想请问一下有兄弟用DDK自带的bulkusb这个例子吗? 我编译安装后提示的是一个感叹号,无法正确安装. 不知道为什么编译后无法正确安装呢? 急啊,兄弟们. 谢谢… 查看全部问答> |
|
TMS320C2801的eCAP功能可以捕获PWM的脉冲个数吗? 查看了TMS320C2801的eCAP功能手册和相关样例,介绍的都是利用该捕获功能进行脉冲周期的测量,而没有对脉冲个数的测量,请问:该功能模块可以现实对脉冲个数的捕获吗? 本人是初学者,请高手们指点一下,最好可以提供一个样例程序,非常感谢!!!… 查看全部问答> |
|
自MSP430系列单片机99年进入中国市场以来,以其超低功耗,高性能深得广大工程师青睐。 2011年MCU DAY研讨会我们更注重MCU技术前沿,重点对value line,low voltage MCU以及FRAM MCU等新技术进行研讨。研讨会共巡回20个城市,以16位超低功耗MSP430 ...… 查看全部问答> |
|
在信息日益成为一种重要资源的今天,强大的市场需求和微电子技术的发展促成了便携式电子系统的飞速发展。这些便携式电子设备,不但对速度和面积要求非常高,而且对系统的平均功耗要求也很严格,使功耗问题日渐成 ...… 查看全部问答> |
|
RF功率测量系统,初步完工 以下是源程序、电路图和PCB文件。 程序有两个版本的分别是3.2寸TFT驱动为ILI9320、2.8寸TFT驱动为ST7783。 其中3.2寸的程序不完整,由于该屏过大,安装失败,实现功能全部在2.8寸上。3.2寸只 ...… 查看全部问答> |




