久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6188|回復(fù): 1
收起左側(cè)

一個關(guān)于STM32F072芯片USART喚醒的話題

[復(fù)制鏈接]
ID:98618 發(fā)表于 2015-12-8 03:47 | 顯示全部樓層 |閱讀模式
整理:MilerShao


近日某工程師電話我說他在使用STM32F072芯片開發(fā)產(chǎn)品,發(fā)現(xiàn)USART2中斷無法從將芯片從STOP模式喚醒。他說也是折騰幾天了,翻來覆去都查不出問題所在,懷疑芯片是否真具有該功能。因?yàn)橹坝衅渌蛻粲玫皆摴δ埽腋嬷_實(shí)可行,建議他再耐心檢查

一天后我們再次網(wǎng)絡(luò)聯(lián)絡(luò),告知仍然無法實(shí)現(xiàn)USART喚醒STOP狀態(tài)。我查看其相關(guān)程序代碼,代碼是基于STM32F0系列傳統(tǒng)固件庫編寫的。將客戶代碼結(jié)合32f0系列的技術(shù)參考手冊來看了兩遍并未發(fā)現(xiàn)什么明顯問題。

因?yàn)镾TM32F0系列官方固件庫里有相關(guān)例程項(xiàng)目,打開官方例程代碼和參考手冊比對時,有個地方引起了我的注意。那就是USART是時鐘源問題。


我注意到ST官方例程里在配置USART的喚醒功能時,有條關(guān)于USART時鐘源的配置代碼,而客戶代碼里卻沒有相應(yīng)代碼。從參考手冊相關(guān)描述來看,只有USART時鐘源選為HSI或LSE時才具備將芯片從STOP模式喚醒的功能。問題很可能出在這里,讓客戶在USART的配置函數(shù)里加上如下語句后再測試,結(jié)果一切正常了。

/* Configure the HSI as USART clock */

RCC_USARTCLKConfig(RCC_USART2CLK_HSI);

顯然,問題正是出在這個USART2的時鐘的配置上。下圖是STM32F072芯片的RCC時鐘樹。可以看出,USART可以有四個時鐘源。即PCLK/SYSCLK/HSI/LSE.


現(xiàn)在客戶代碼里沒有對USART2的時鐘源做明確配置,只是做了時鐘的使能配置。不難理解MCU硬件使用了默認(rèn)值,那默認(rèn)時鐘源是哪一個呢?


從相關(guān)寄存器位可以得知,USART2的默認(rèn)時鐘源是PCLK,既不是HSI也不是LSE。難怪客戶死活沒法利用USART中斷將STOP模式下的STM32F072喚醒了。

可能很多人用過STM32F1系列芯片,相比之下,STM32F0系列在時鐘這塊跟F1存在諸多不一樣的地方,使用時要注意。


ST官方針對各系列的MCU都有較為完善參考固件庫,針對各外設(shè)的應(yīng)用多有例程供使用者學(xué)習(xí)參考和使用。那些參考庫代碼整體上講都有很高的參考和使用價值。尤其各工程項(xiàng)目里的有關(guān)配置流程值得借鑒使用。

我這里順便多聊幾句。如果你對官方例程項(xiàng)目里的部分代碼不確定是否有用或是否需要時建議不要輕易舍棄不用,先留著,哪怕注釋在那兒也好,至少是個提醒。最好借助于參考手冊和實(shí)驗(yàn)弄明白怎么回事。經(jīng)常有人在并不了解部分代碼功能的前提下,直接棄掉不用而給自己帶來不必要的麻煩。

比方前面談到的32F072 USART2喚醒STOP模式的問題,參考例程里其實(shí)就有相關(guān)USART時鐘源配置代碼,而客戶工程師在自己代碼里卻不假思索地直接拿掉了。

記得前不久有位工程師利用STM32F3系列的AD功能,訴說AD取得的結(jié)果總是不準(zhǔn),總是找不到原因。跟著他一起看了硬件線路再看他的軟件配置代碼,結(jié)果發(fā)現(xiàn)有關(guān)AD校準(zhǔn)相關(guān)代碼根本就沒有。問他為什么不參考官方例程代碼來寫,他說覺得相關(guān)代碼沒用就拿掉了。

我還依稀記得幾年前有個北方工程師用STM32F1系列開發(fā)產(chǎn)品,項(xiàng)目開發(fā)前期芯片工主頻較低,各個功能都好好的,后來發(fā)現(xiàn)將系統(tǒng)時鐘調(diào)高到72M時出現(xiàn)很多奇怪的問題,把時鐘調(diào)低到一定數(shù)值又運(yùn)行正常。跟他一起問來問去,結(jié)果發(fā)現(xiàn)有關(guān)與指令預(yù)取及FLASH訪問等待周期的配置代碼被抹掉了【那是基于早期的固件庫代碼】。

還有,官方庫代碼里的有些代碼配置流程也不是亂來的,其先后順序可能影響最后的結(jié)果。還有就不多說了,拋磚引玉,算是對同仁的一些提醒。愿各位在開發(fā)過程中少點(diǎn)折騰之苦,多些順暢。整理:MilerShao


近日某工程師電話我說他在使用STM32F072芯片開發(fā)產(chǎn)品,發(fā)現(xiàn)USART2中斷無法從將芯片從STOP模式喚醒。他說也是折騰幾天了,翻來覆去都查不出問題所在,懷疑芯片是否真具有該功能。因?yàn)橹坝衅渌蛻粲玫皆摴δ埽腋嬷_實(shí)可行,建議他再耐心檢查

一天后我們再次網(wǎng)絡(luò)聯(lián)絡(luò),告知仍然無法實(shí)現(xiàn)USART喚醒STOP狀態(tài)。我查看其相關(guān)程序代碼,代碼是基于STM32F0系列傳統(tǒng)固件庫編寫的。將客戶代碼結(jié)合32f0系列的技術(shù)參考手冊來看了兩遍并未發(fā)現(xiàn)什么明顯問題。

因?yàn)镾TM32F0系列官方固件庫里有相關(guān)例程項(xiàng)目,打開官方例程代碼和參考手冊比對時,有個地方引起了我的注意。那就是USART是時鐘源問題。


我注意到ST官方例程里在配置USART的喚醒功能時,有條關(guān)于USART時鐘源的配置代碼,而客戶代碼里卻沒有相應(yīng)代碼。從參考手冊相關(guān)描述來看,只有USART時鐘源選為HSI或LSE時才具備將芯片從STOP模式喚醒的功能。問題很可能出在這里,讓客戶在USART的配置函數(shù)里加上如下語句后再測試,結(jié)果一切正常了。

/* Configure the HSI as USART clock */

RCC_USARTCLKConfig(RCC_USART2CLK_HSI);

顯然,問題正是出在這個USART2的時鐘的配置上。下圖是STM32F072芯片的RCC時鐘樹。可以看出,USART可以有四個時鐘源。即PCLK/SYSCLK/HSI/LSE.


現(xiàn)在客戶代碼里沒有對USART2的時鐘源做明確配置,只是做了時鐘的使能配置。不難理解MCU硬件使用了默認(rèn)值,那默認(rèn)時鐘源是哪一個呢?


從相關(guān)寄存器位可以得知,USART2的默認(rèn)時鐘源是PCLK,既不是HSI也不是LSE。難怪客戶死活沒法利用USART中斷將STOP模式下的STM32F072喚醒了。

可能很多人用過STM32F1系列芯片,相比之下,STM32F0系列在時鐘這塊跟F1存在諸多不一樣的地方,使用時要注意。


ST官方針對各系列的MCU都有較為完善參考固件庫,針對各外設(shè)的應(yīng)用多有例程供使用者學(xué)習(xí)參考和使用。那些參考庫代碼整體上講都有很高的參考和使用價值。尤其各工程項(xiàng)目里的有關(guān)配置流程值得借鑒使用。

我這里順便多聊幾句。如果你對官方例程項(xiàng)目里的部分代碼不確定是否有用或是否需要時建議不要輕易舍棄不用,先留著,哪怕注釋在那兒也好,至少是個提醒。最好借助于參考手冊和實(shí)驗(yàn)弄明白怎么回事。經(jīng)常有人在并不了解部分代碼功能的前提下,直接棄掉不用而給自己帶來不必要的麻煩。

比方前面談到的32F072 USART2喚醒STOP模式的問題,參考例程里其實(shí)就有相關(guān)USART時鐘源配置代碼,而客戶工程師在自己代碼里卻不假思索地直接拿掉了。

記得前不久有位工程師利用STM32F3系列的AD功能,訴說AD取得的結(jié)果總是不準(zhǔn),總是找不到原因。跟著他一起看了硬件線路再看他的軟件配置代碼,結(jié)果發(fā)現(xiàn)有關(guān)AD校準(zhǔn)相關(guān)代碼根本就沒有。問他為什么不參考官方例程代碼來寫,他說覺得相關(guān)代碼沒用就拿掉了。

我還依稀記得幾年前有個北方工程師用STM32F1系列開發(fā)產(chǎn)品,項(xiàng)目開發(fā)前期芯片工主頻較低,各個功能都好好的,后來發(fā)現(xiàn)將系統(tǒng)時鐘調(diào)高到72M時出現(xiàn)很多奇怪的問題,把時鐘調(diào)低到一定數(shù)值又運(yùn)行正常。跟他一起問來問去,結(jié)果發(fā)現(xiàn)有關(guān)與指令預(yù)取及FLASH訪問等待周期的配置代碼被抹掉了【那是基于早期的固件庫代碼】。

還有,官方庫代碼里的有些代碼配置流程也不是亂來的,其先后順序可能影響最后的結(jié)果。還有就不多說了,拋磚引玉,算是對同仁的一些提醒。愿各位在開發(fā)過程中少點(diǎn)折騰之苦,多些順暢。

回復(fù)

使用道具 舉報

ID:383785 發(fā)表于 2020-4-21 16:37 | 顯示全部樓層
挺不錯的調(diào)試經(jīng)驗(yàn),學(xué)習(xí)了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91欧美精品 | 一区二区视频在线 | 请别相信他免费喜剧电影在线观看 | 欧美成人专区 | 国产精品99 | 国产在线精品一区二区 | 成人欧美一区二区三区在线观看 | 青娱乐国产 | 免费一区二区三区 | 国产一卡二卡三卡 | 日韩在线观看一区 | 国产精品自在线 | 亚洲精品久久 | 国产中文在线观看 | 视频一区在线观看 | 亚洲一级毛片 | 亚洲精品毛片av | 正在播放一区二区 | 欧美aⅴ在线观看 | 91精品国产91久久久久久 | 成人国产毛片 | 日韩国产精品一区二区三区 | 国产精品我不卡 | 国产精品久久国产精品 | 日韩不卡一区二区 | 中文字幕一区在线观看视频 | 91精品国产综合久久小仙女图片 | 国产精品一区二区三区久久 | 91网在线观看 | 91亚洲国产亚洲国产 | 欧美五月婷婷 | 久久精品这里 | 久草网站| 亚洲国产欧美国产综合一区 | 日本欧美在线观看视频 | 精品乱子伦一区二区三区 | 亚洲精品美女 | 91精品国产欧美一区二区成人 | 日韩黄色av| 亚洲精品一区二区三区蜜桃久 | 国产精品中文字幕在线 |