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

LAT1178 關(guān)閉SPI會(huì)導(dǎo)致WRPERR錯(cuò)誤的問(wèn)題分析

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

LAT1178 關(guān)閉SPI會(huì)導(dǎo)致WRPERR錯(cuò)誤的問(wèn)題分析

483.01 KB

引言

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

問(wèn)題

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

問(wèn)題解決

本來(lái)客戶的代碼就沒(méi)有必要這么寫(xiě),因?yàn)?SPI 都沒(méi)初始化,對(duì)它進(jìn)行關(guān)閉并沒(méi)有什么意義。

小結(jié)

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

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

資料預(yù)覽

相關(guān)推薦