• 資料介紹
    • 引言
    • 問題
    • 問題解決
    • 小結(jié)
  • 資料預(yù)覽
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

LAT1178 關(guān)閉SPI會導(dǎo)致WRPERR錯誤的問題分析

03/26 09:25
360
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

LAT1178 關(guān)閉SPI會導(dǎo)致WRPERR錯誤的問題分析

483.01 KB

引言

在 STM32 的應(yīng)用中,SPI 算是用的比較多的外設(shè)了,也是單片機最常見外設(shè)之一??蛻粽f它執(zhí)行了關(guān)閉 SPI 的代碼,竟然會導(dǎo)致 Flash 中的 WRPERR 標志置位,致使應(yīng)用碰到一些問題。這就奇怪了,SPI 和內(nèi)部 Flash 看起來是風(fēng)馬牛不相及的事情,為什么會發(fā)生這種事呢?一起來看看吧。

問題

客戶在使用 STM32L072RBT6 的時候,使用 STM32CubeL0 庫,在程序編寫時,發(fā)現(xiàn)執(zhí)行關(guān)閉 SPI 代碼時,會導(dǎo)致 Flash 的寫保護錯誤標志 WRPERR 置位,導(dǎo)致其后面準備寫 EEPROM 的時候,就無法對 EEPROM 寫入了。

問題解決

本來客戶的代碼就沒有必要這么寫,因為 SPI 都沒初始化,對它進行關(guān)閉并沒有什么意義。

小結(jié)

在用戶代碼中,SpiHandle 只是定義了 SPI_HandleTypeDef 結(jié)構(gòu)體,其各種參數(shù)并還沒有進行實際初始化。在沒有初始化的前提下,對其進行操作是不對的,也是危險的,應(yīng)該在寫代碼的時候引起重視。

使用 HAL 庫的時候,如果要對一個外設(shè)進行任何的操作,請務(wù)必記得它是被初始化過的。否則,出了問題可能都不一定知道。

資料預(yù)覽

相關(guān)推薦