色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分享一種STM32F407的鎖相環(huán)PLL重新配置方法

冬至子 ? 來(lái)源:技術(shù)老農(nóng)的工作臺(tái) ? 作者:技術(shù)老農(nóng) ? 2023-10-30 17:30 ? 次閱讀

老農(nóng)最近搞基于STM32F407的IAP升級(jí)固件升級(jí)功能,遇到了這樣一個(gè)問(wèn)題:IAP引導(dǎo)程序和APP程序都是基于STM32CUBEMX的程序模板生成,單獨(dú)調(diào)試運(yùn)行APP功能也都正常,但是只要采用IAP方式將APP程序的bin文件燒寫到程序存儲(chǔ)區(qū),再跳轉(zhuǎn)到APP的地址運(yùn)行就死掉了。

這個(gè)問(wèn)題困擾了老農(nóng)挺長(zhǎng)時(shí)間,后來(lái)才發(fā)現(xiàn)問(wèn)題所在:那就是STM32系列的單片機(jī)一旦完成PLL時(shí)鐘設(shè)置后,是不能再次配置的。

本例中IAP引導(dǎo)程序首先對(duì)PLL進(jìn)行了成功配置,當(dāng)跳轉(zhuǎn)到APP程序運(yùn)行后,APP程序初始化部分又對(duì)PLL進(jìn)行了一次配置,結(jié)果配置失敗,因?yàn)槌绦蚴腔赟TM32CUBEMX的模板,配置失敗后調(diào)用模板的Error_Handler()函數(shù),該函數(shù)原型如下:

/**
  * @brief  This function is executed in case of error occurrence.
  * @retval None
  */
void Error_Handler(void)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */
  __disable_irq();
  while (1)
  {
  }
  /* USER CODE END Error_Handler_Debug */
}

可以看到,函數(shù)內(nèi)部會(huì)先禁止中斷,然后就進(jìn)入死循環(huán)。這就是為什么程序每次跳轉(zhuǎn)到APP后死掉的原因。

搞清楚了問(wèn)題所在,就有針對(duì)性的解決方法:一是偷懶的方法,將Error_Handler()函數(shù)的內(nèi)部功能全部屏蔽,這樣即使PLL配置出錯(cuò),也能跳過(guò)去,但是必須要保證IAP引導(dǎo)程序和APP程序的時(shí)鐘配置完全一致,否則還是會(huì)出問(wèn)題。二是想辦法重新配置PLL,這樣即使IAP引導(dǎo)程序和APP程序的時(shí)鐘配置不一致,程序也能順利運(yùn)行。

要想重新配置STM32的PLL,通過(guò)查閱相關(guān)資料,發(fā)現(xiàn)STM32的PLL一旦使能后配置參數(shù)便不能更改,除非在下次重新啟動(dòng)時(shí)再次配置相關(guān)參數(shù)。這樣就成死循環(huán)了,似乎只能采用前面說(shuō)的第一種方法了。

老農(nóng)不死心,繼續(xù)研究參考手冊(cè),發(fā)現(xiàn)有這么一段話:

The three PLLs are disabled by hardware when entering Stop and Standby modes, or when
an HSE failure occurs when HSE or PLL (clocked by HSE) are used as system clock.

重點(diǎn)在第一句,在進(jìn)入停止或待機(jī)模式時(shí)PLL可以由硬件禁止。這樣的話我們就可以在APP程序的時(shí)鐘初始化之前首先設(shè)置STM32進(jìn)入停止或待機(jī)模式,然后再喚醒,并重新對(duì)PLL時(shí)鐘進(jìn)行配置。

通過(guò)研究STM32的停止模式和待機(jī)模式,可以知道其進(jìn)入和退出方式有一定差異,如下所示:

圖片

圖片

另外如果進(jìn)入待機(jī)模式,退出后除備份區(qū)域和待機(jī)電路中的寄存器外,其他SRAM和寄存器內(nèi)容全部丟失,程序?qū)凑諒?fù)位后的方式重新執(zhí)行,這個(gè)并不是我們的初衷。如果每次喚醒都相當(dāng)于重啟,那我們的程序就進(jìn)入死循環(huán)了。

老農(nóng)結(jié)合自己的實(shí)際硬件,正好在某個(gè)管腳上有一個(gè)外部I2C設(shè)備輸入方波可以用來(lái)做為喚醒源,選用停止模式。具體代碼如下:

HAL_Init();
  IIC_Init();          //外部設(shè)備初始化
  SetCLKOandSQW(0,F1Hz,S_1Hz);   //使能外部器件方波輸出
  HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);  //使能方波輸入管腳中斷 
  HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);  //進(jìn)入停止模式
  Stm32_Clock_Init(168,6,2,7);  //重新配置PLL并使能
  HAL_NVIC_DisableIRQ(EXTI9_5_IRQn);  //關(guān)閉方波輸入管腳中斷

為了驗(yàn)證效果,將Error_Handler函數(shù)中的死循環(huán)重新打開,再次燒寫新的APP程序,這次APP能夠正常運(yùn)行,這說(shuō)明通過(guò)采用進(jìn)入停止模式再重新配置PLL時(shí)鐘是可行的。

采用這種方法確實(shí)可以解決PLL的重配置,但是需要結(jié)合自己的硬件考慮是否具備喚醒停止模式或待機(jī)模式的能力。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 鎖相環(huán)
    +關(guān)注

    關(guān)注

    35

    文章

    584

    瀏覽量

    87735
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5336

    瀏覽量

    120230
  • STM32F407
    +關(guān)注

    關(guān)注

    15

    文章

    187

    瀏覽量

    29437
  • PLL電路
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    6403
  • stm32cubemx
    +關(guān)注

    關(guān)注

    5

    文章

    283

    瀏覽量

    14791
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32F407可以實(shí)現(xiàn)數(shù)字鎖相環(huán)功能嗎?

    咨詢STM32F407可以實(shí)現(xiàn)數(shù)字鎖相環(huán)功能嗎,在實(shí)現(xiàn)中怎么設(shè)置PLL倍頻
    發(fā)表于 07-04 07:32

    一種寬頻率范圍的CMOS鎖相環(huán)(PLL)電路應(yīng)用設(shè)計(jì)

    本文設(shè)計(jì)了一種寬頻率范圍的CMOS鎖相環(huán)(PLL)電路,通過(guò)提高電荷泵電路的電流鏡鏡像精度和增加開關(guān)噪聲抵消電路,有效地改善了傳統(tǒng)電路中由于電流失配、電荷共享、時(shí)鐘饋通等導(dǎo)致的相位偏差問(wèn)題。設(shè)計(jì)了
    發(fā)表于 07-08 07:37

    LabVIEW鎖相環(huán)PLL

    LabVIEW鎖相環(huán)PLL鎖相環(huán)一種反饋電路,其作用是使得電路上的時(shí)鐘和某外部時(shí)鐘的相位同步。
    發(fā)表于 05-31 19:58

    鎖相環(huán)原理

    鎖相環(huán)原理 鎖相環(huán)路是一種反饋電路,鎖相環(huán)的英文全稱是Phase-Locked Loop,簡(jiǎn)稱PLL。其作用是使得電路上的時(shí)鐘和某
    發(fā)表于 08-21 14:46 ?5179次閱讀

    鎖相環(huán)(PLL),鎖相環(huán)(PLL)是什么意思

    鎖相環(huán)(PLL),鎖相環(huán)(PLL)是什么意思 PLL的概念 我們所說(shuō)的PLL。其
    發(fā)表于 03-23 10:47 ?6133次閱讀

    鎖相環(huán)(PLL)電路設(shè)計(jì)與應(yīng)用

    本書是圖解電子工程師實(shí)用技術(shù)叢書之,本書主要介紹鎖相環(huán)(PLL)電路的設(shè)計(jì)與應(yīng)用,內(nèi)容包括PLL工作原理與電路構(gòu)成、PLL電路的傳輸特性、
    發(fā)表于 09-14 17:55 ?0次下載
    <b class='flag-5'>鎖相環(huán)</b>(<b class='flag-5'>PLL</b>)電路設(shè)計(jì)與應(yīng)用

    鎖相環(huán)

    鎖相環(huán)英文為PLL,即PLL鎖相環(huán)。可以分為模擬鎖相環(huán)和數(shù)字鎖相環(huán)。兩
    發(fā)表于 10-26 12:40
    <b class='flag-5'>鎖相環(huán)</b>

    STM32F407的串口UART 基礎(chǔ)配置STM32CubeMX

    STM32F407的串口UART 基礎(chǔ)配置STM32CubeMX
    發(fā)表于 11-29 16:06 ?55次下載
    <b class='flag-5'>STM32F407</b>的串口UART 基礎(chǔ)<b class='flag-5'>配置</b><b class='flag-5'>STM32</b>CubeMX

    鎖相環(huán)(PLL)的工作原理及應(yīng)用

    鎖相環(huán)路是一種反饋控制電路,簡(jiǎn)稱鎖相環(huán)PLL,Phase-Locked Loop)。鎖相環(huán)的特點(diǎn)是:利用外部輸入的參考信號(hào)控制環(huán)路內(nèi)部振蕩
    的頭像 發(fā)表于 03-29 09:54 ?1.4w次閱讀

    pll鎖相環(huán)倍頻

    PLL鎖相環(huán)倍頻是一種用于改變輸入信號(hào)頻率的技術(shù),它可以將輸入信號(hào)的頻率放大或縮小,以達(dá)到某種特定的目的。
    發(fā)表于 02-14 15:56 ?2959次閱讀

    pll是什么意思_pll鎖相環(huán)參數(shù)

     PLL是指鎖相環(huán),是一種用于控制頻率和相位的電路,它可以將個(gè)輸入信號(hào)的頻率和相位轉(zhuǎn)換成另個(gè)輸出信號(hào)的頻率和相位,從而實(shí)現(xiàn)頻率和相位的控
    發(fā)表于 02-14 17:19 ?1.1w次閱讀

    pll鎖相環(huán)倍頻的原理

    pll鎖相環(huán)倍頻的原理? PLL鎖相環(huán)倍頻是一種重要的時(shí)鐘信號(hào)處理技術(shù),廣泛應(yīng)用于數(shù)字系統(tǒng)、通信系統(tǒng)、計(jì)算機(jī)等領(lǐng)域,具有高可靠性、高精度、快
    的頭像 發(fā)表于 09-02 14:59 ?3077次閱讀

    pll鎖相環(huán)的作用 pll鎖相環(huán)的三配置模式

    pll鎖相環(huán)的作用 pll鎖相環(huán)的三配置模式? PLL
    的頭像 發(fā)表于 10-13 17:39 ?3397次閱讀

    鎖相環(huán)(PLL)基本原理 當(dāng)鎖相環(huán)無(wú)法鎖定時(shí)該怎么處理的呢?

    鎖相環(huán)(PLL)基本原理 當(dāng)鎖相環(huán)無(wú)法鎖定時(shí)該怎么處理的呢? 鎖相環(huán)(Phase Locked Loop, PLL)是
    的頭像 發(fā)表于 10-23 10:10 ?3246次閱讀

    鎖相環(huán)PLL的工作原理 鎖相環(huán)PLL應(yīng)用領(lǐng)域

    鎖相環(huán)(Phase-Locked Loop,簡(jiǎn)稱PLL)是一種電子電路,它能夠自動(dòng)調(diào)整輸出信號(hào)的相位,使其與輸入信號(hào)的相位同步。這種電路在電子工程領(lǐng)域有著廣泛的應(yīng)用,特別是在頻率合成、時(shí)鐘恢復(fù)、調(diào)制
    的頭像 發(fā)表于 11-06 10:42 ?591次閱讀
    主站蜘蛛池模板: 亚洲精品国产拍在线观看 | 亚洲精品午夜aaa级久久久久| 91久久线看在观草草青青| 国产精品永久免费视频观看| 伦理片 qvod| 亚洲国产中文字幕新在线| 芭乐视频网页版在线观看| 久久黄色网址| 忘忧草在线社区WWW日本直播| 116美女写真成人午夜视频| 国产一区二区三区在线看片| 秋霞网在线伦理影片| 最近的2019中文字幕国语| 国内精品一级毛片免费看| 神马电影dy888午夜我不卡| 9位美女厕所撒尿11分| 久久黄色免费| 亚洲精品综合在线影院| 国产精品爽爽久久久久久无码| 欧美重口绿帽video| 综合色就爱涩涩涩综合婷婷| 红桃视频国产AV| 午夜DV内射一区区| 纯肉高H种马艳遇风流多| 欧美123区| 18禁无遮遮挡羞漫画免费阅读| 狠狠色狠狠色综合日日91app| 脱jk裙的美女露小内内无遮挡| chinese东北老年tv视频| 久久综合色悠悠| 夜色视频社区| 国模孕妇模特季玥之粉红| 天堂网久久| 第一福利视频网站在线| 欧美性爱 先锋影音| 51国产偷自视频在线视频播放| 九九热久久只有精品2| 亚州视频一区| 国产乱码一区二区三区| 手机伊在人线香蕉2| 动漫美女被到爽了流漫画|