很多時候,我們希望我們的單片機在掉電后,可以對一些數(shù)據(jù)進(jìn)行保存,下次上電可以讀取這些數(shù)據(jù),繼續(xù)工作?,F(xiàn)在我項目用到的是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;//搶占優(yōu)先級1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //子優(yōu)先級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; //電壓低于閥值時產(chǎn)生中斷
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //使能中斷線
EXTI_Init(&EXTI_InitStructure); //初始
PWR_PVDLevelConfig(PWR_PVDLevel_7);//設(shè)定監(jiān)控閥值 注意和F1的區(qū)別 F1的電壓等級就更直觀 PWR_PVDLevel_2V8
PWR_PVDCmd(ENABLE);//使能PVD
}
中斷服務(wù)函數(shù):
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;
//掉電了緊急情況處理
//寫入坐標(biāo)值到FLASH
STMFLASH_Write(FLASH_SAVE_ADDR,(u32*)MOTOR_absolute,4);
printf("%d %d %d %d\n",Xabsolute,Yabsolute,Zabsolute,Oabsolute);
//不能寫入外部FLASH 可能是電壓原因,所以只能寫入內(nèi)部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);
}
}
上一篇:stm32中中斷源名和中斷處理函數(shù)名所在位置
下一篇:STM32是如何進(jìn)入中斷函數(shù)的
推薦閱讀
史海拾趣
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- ARXML 規(guī)則下 ECU 總線通訊與 ADTF 測試方案
- 日產(chǎn)在歐洲推出第三代e-POWER技術(shù)
- 福特CEO更看好Waymo激光雷達(dá)方案:比特斯拉純視覺自動駕駛路線可靠
- 智元機器人兩大核心產(chǎn)品啟動規(guī)?;a(chǎn)
- 固態(tài)電池2026量產(chǎn)豪賭,真相還是泡沫?
- 100億元!湖北“下注”人形機器人產(chǎn)業(yè)
- 海外磷酸鐵鋰電池產(chǎn)能從0到1
- 基于多傳感器數(shù)據(jù)的自動駕駛仿真確定性驗證
- 國芯科技發(fā)布全球首款48V安全氣囊芯片,引領(lǐng)智能汽車新紀(jì)元
- 亞馬遜全球部署100萬臺機器人