本人使用的是STM32F030F4P6進行從機低功耗的設計。設計需求是和主機進行狀態同步,主機超時不從串口給回饋(主機關機了)從機進入停機模式等待串口來數據進行喚醒(主機開機了)。
1.停機模式介紹
STM32F030F4P6有三個低功耗模式。待機模式下(standby)功耗最低但是需要wake_up引腳上升沿或者RTC鬧鐘才能進行喚醒,在硬件已經設計好的基礎上不滿足本次軟件設計的需求。然后考慮功耗第二低的停機模式(stop),剛好停機模式能夠被任一外部中斷包括串口中斷進行喚醒。
2.停機模式的進入
停機模式的進入由數據手冊可知,需要將SLEEPDEEP寄存器置1,PDDS寄存器置0,還要設置PWR->CR位。這些操作在庫函數的PWR_EnterSTOPMode(PWR_Regulator_ON, PWR_STOPEntry_WFI);里面已經封裝好了,直接調用即可。調用該函數時需要選擇是WFI模式還是WFE模式,關于這兩個模式的區別在數據手冊中有介紹,個人理解的是WFI模式進入之后如果需要串口喚醒則需要將串口接收引腳配置為外部中斷(之前是串口中斷)。
封裝的進入停機模式的函數,調用即可進入停機模式。
void enter_stop_mode(void)//進入停止模式
{
EXIT_UART_Init();//RX引腳配置為外部中斷
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR , ENABLE);//開電源管理時鐘
PWR_EnterSTOPMode(PWR_Regulator_ON, PWR_STOPEntry_WFI);//進入停機模式
}
配置串口RX引腳為外部中斷,若沒有此配置,串口中斷將無法喚醒單片機。
void EXIT_UART_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStruct;
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef EXTI_InitStruct;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//輸入模式
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = EXTI4_15_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0x00;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource10);
EXTI_InitStruct.EXTI_Line = EXTI_Line10;
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿中斷
EXTI_InitStruct.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStruct);
}
3.停機模式的喚醒
停機模式下中斷喚醒的程序入口在EXTI4_15_IRQHandler();函數里面。中斷喚醒之后系統默認使用內部時鐘,沒有經過倍頻,串口波特率也不正常,若喚醒之后希望程序繼續運行需要重新初始化系統時鐘和串口。本設計需要和主機保持狀態一致,停機模式的喚醒都是因為主機開機了,從機也需要重啟一下。所以一旦發生停機喚醒事件,直接軟件復位,重新開始程序。
void EXTI4_15_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line10) != RESET)
{
EXTI_ClearITPendingBit(EXTI_Line7);
NVIC_SystemReset();//復位重啟
}
}
總結一下,如果需要使用串口喚醒停機模式,一定注意以下兩點!
1.進入停機模式時一定需要將串口接收引腳定義為外部中斷。
2.停機喚醒之后需要重新配置時鐘和初始化串口。
上一篇:stm32的待機模式解析
下一篇:STM32 μC/OS系統進睡眠模式的方法
推薦閱讀
史海拾趣
隨著ETIC的產品在市場上逐漸獲得認可,公司面臨著市場拓展的挑戰。為了擴大市場份額,ETIC決定進入國際市場。他們首先選擇了亞洲市場作為突破口,通過深入了解當地市場需求和競爭環境,制定了一系列有針對性的營銷策略。經過幾年的努力,ETIC成功地在亞洲市場建立了穩定的客戶基礎,并逐漸將業務拓展到了歐洲和北美市場。
在市場競爭日益激烈的情況下,ETIC意識到品質管理對于公司的重要性。為了提升產品質量和客戶滿意度,公司建立了一套完善的品質管理體系,從原材料采購到產品生產、檢驗和售后服務等各個環節都進行了嚴格的質量控制。同時,ETIC還積極引入先進的生產設備和工藝技術,不斷提高生產效率和產品質量。這些努力使ETIC的產品在市場上獲得了良好的口碑和廣泛的認可。
人才是企業發展的核心競爭力,BCD Semi公司高度重視人才培養和團隊建設。公司建立了一套完善的人才培養和激勵機制,吸引和留住了一批優秀的技術和管理人才。同時,公司還注重團隊建設和協作精神的培養,鼓勵員工之間的交流和合作,共同推動公司的創新和發展。
以上五個故事僅為示例性質,并不代表BCD Semi公司的實際發展經歷。電子行業的發展是一個充滿機遇和挑戰的過程,需要企業不斷創新、拓展市場、提升品質、關注環保和人才培養等方面做出努力。希望這些故事能夠為您了解電子行業和BCD Semi公司的發展提供一些參考和啟示。
在電子行業的快速發展中,BCD Semi公司憑借其卓越的技術創新能力,成功研發出了一系列具有競爭力的半導體產品。公司擁有一支經驗豐富的研發團隊,不斷探索新技術和新應用,將最新的科技成果轉化為具有市場競爭力的產品。通過技術創新,BCD Semi在行業中逐漸樹立起了良好的口碑,贏得了眾多客戶的信任和支持。
為了進一步拓展業務領域,CMS開始尋求跨界合作。他們與一家領先的汽車制造商達成戰略合作,共同研發車載智能系統。CMS的芯片技術為車載系統提供了強大的計算能力和數據處理能力,使得車載系統更加智能化、便捷化。這一合作不僅為CMS帶來了新的收入來源,也進一步提升了公司的品牌影響力。
隨著全球化趨勢的加速,奇美公司開始實施全球化戰略,積極拓展國際市場。公司通過在海外設立分支機構、參加國際展會等方式,加強與國際客戶的交流與合作。同時,奇美還積極引進國際先進的技術和管理經驗,提升公司的國際化水平。這種全球化戰略使得奇美能夠更好地融入全球電子產業鏈,提升公司的國際競爭力。
小女子研究藍牙通訊很久了 可是無任何緊張 現求C# 藍牙通信程序,開發環境是vs2005 希望各位大俠幫幫忙~~小女子下輩子愿意給大俠做牛做馬~~~… 查看全部問答∨ |
我想問一下專家們.是ADOCE3.1提供的接口有問題還是?...搞得一個星期了頭痛.希望高手指點下或介紹點其他方法.已嘗試結果未出現內存泄漏現象 QQ9737964 E-MAIL:lmj1912@163.com msn:lmj1912@hotmail.com… 查看全部問答∨ |
各位高手: 我最近要做一個案子,需要有比較漂亮的UI界面,用在PDA上. 要求:1.對話框或窗體的底色可以顯示一副圖片 2.在該窗體上顯示的按鍵也是圖形的,并且是圓腳的,當有點擊時按鍵還會變亮等.請問各位如何實現??請指教/… 查看全部問答∨ |
有一個在 VS.NET 2003 中已完成的pocket pc手機終端項目,往客戶的手機上安裝時發現,他們有一部分人買的是 smartphone 這種不支持手寫功能的手機,傻眼了!各位高手請幫幫忙 !提供一些解決方案吧 謝謝了!!在線等… 查看全部問答∨ |
主動式傳感器在汽車領域應用將越來越廣 汽車性能的提升以及汽車市場的蓬勃發展,推動了汽車傳感器的快速增長。被動式傳感器在某些應用上已難以滿足高精度要求,主動式傳感器應用將越來越廣。 隨著汽車性能的提升以及中國汽車市場的 ...… 查看全部問答∨ |
|
本帖最后由 paulhyde 于 2014-9-15 03:54 編輯 不知道有多少人的小車完成了功能,,求高手賜教 [ 本帖最后由 baixichi 于 2011-9-5 13:04 編輯 ] … 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 高通攜手中國“汽車朋友圈”亮相2025上海車展: 加速駕駛輔助普惠,推動艙駕創新升級
- 工業市場正在快速回暖,德州儀器如何重塑電力電子市場?
- 特斯拉:美國交付的Model Y/3電池包已實現100%美國生產
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產品
- 強化中國市場戰略布局,德州儀器正靈活應對全球關稅挑戰
- Molex莫仕通過本地合作和創新加強支持中國汽車行業
- 貿澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現車載充電器小型化!
- 用上車規級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術解析:聚焦高帶寬、多通道同步采集與協議分析