1. 程式人生 > >sd卡拔插或重新上電後無法繼續使用(初始化失敗)

sd卡拔插或重新上電後無法繼續使用(初始化失敗)

最近1個專案需要用到sd卡儲存採集資料,起初是stm驅動一大堆bug,浪費了好幾天的時間。接著又出現了這個問題。

描述:sd卡拔插或重新上電後無法繼續使用,表現為初始化失敗,但是,格式化一次後又可以使用了。一旦拔插或斷電,問題又出現。

分析:起初天真的認為,是不是因為拔插或斷電的時候,SD卡正好在讀寫資料所導致,於是把sd讀寫相關的程式碼全部註釋掉。可是,問題依舊存在。後來又想是不是SD卡本身的原因,於是乎換了1張卡,問題依舊。那麼,到底是什麼原因呢,是因為sd卡延時80個時鐘太短了嗎?於是加到10ms,問題依舊,最後一狠心將加到了1000ms,嘿,奇蹟出現了,問題沒了。為了確定,又把延時設回10ms,問題又出現了,於是再設回1000ms,問題又沒了,如此數遍,本人終於確定,是延時不夠所導致,本人猜測,可能是電路板上的電容造成了sd卡上電曲線比較平滑,也就是說上電被延遲了,導致初始化的時候sd還沒準備好。

解決方法:MCU上電後,先延時1000ms,然後在初始化外設。

注意事項:初始化外設的時候,有時候要有先後順序,否則,很有可能會出現一些莫名其妙的錯誤,所以,碰到初始化失敗的問題時,可以試著調整一下外設初始化的順序,換換程式碼的位置,有時候問題就真的解決了。

相關推薦

sd重新無法繼續使用初始失敗

最近1個專案需要用到sd卡儲存採集資料,起初是stm驅動一大堆bug,浪費了好幾天的時間。接著又出現了這個問題。 描述:sd卡拔插或重新上電後無法繼續使用,表現為初始化失敗,但是,格式化一次後又可以使用了。一旦拔插或斷電,問題又出現。 分析:起初天真的認為,是不是因為拔插或

智慧卡返回ATR即復位應答時間過長而無法返ATR的解決方案

關於智慧卡片上電後返回ATR時間過長的問題,是在COS開發完成後的智慧卡相容性測試過程中發現的,不同讀卡器廠商均應遵循ISO7816接觸卡協議來設計接觸型讀卡器,理論上ATR響應時間是一樣的,不過實測之後有一定的差距。這也導致了載入開發COS的智慧IC卡在某些讀

Git學習系列之DebianUbuntu安裝Git詳細步驟圖文詳解

前言   最早Git是在Linux上開發的,很長一段時間內,Git也只能在Linux和Unix系統上跑。不過,慢慢地有人把它移植到了Windows上。現在,Git可以在Linux、Unix、Mac和Windows這幾大平臺上正常運行了。   要使用Git,第一步當然是安裝Git了。   

armsd問題的解決:

首先,保證sd卡驅動是完好,但是sd卡卻無法熱插拔或者無法識別。     剛開始我的板子上,sd是能夠讀取的,但是卻不支援熱插拔,看了幾天sd驅動,找到了問題的原因,是驅動中硬體引腳相關設定的問題,具體根絕個人板子來修改,我想說的是sd卡驅動完好下如何使板子支援熱插拔,核心的相關配置我就不多說了,網上

android本地、sd儲存物件集合,以及讀取該物件

<!-- 在SDCard中建立與刪除檔案的許可權 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

計算機意外地重新啟動遇到錯誤 Windows 安裝無法繼續 若要安裝Windows,請單擊 確定 重新啟動計算機,然後

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

QT第三方串列埠類Win_QextSerialPort,串列埠工具無法繼續使用問題

if(myCom!=NULL){ myCom->close(); myCom->setParent(NULL); delete myCom; myCom=NULL; } myCom =

USB兩次reset的chirp K訊號

一、為何示波器上顯示有兩次chirp K而CATC卻只抓到了一次chirp K訊號 包1、2、3分別對應下圖示波器抓到的1、2、3處的波形,3個包傳送結束後主機再一次進行RESET,與device

ASP.Net WebAPI HttpDelete/PUT方法運行發布到生產服務器出現405Method Not Allowed錯誤的解決辦法

handle div less fonts pro cati handlers bug docs 原文:ASP.Net WebAPI HttpDelete/PUT方法運行或發布到生產服務器上後出現405(Method Not Allowed)錯誤的解決辦法

將本地專案程式碼傳到別人GitHub碼雲的遠端分支

  今天碰到了這樣一個問題,折騰了半天,就是將自己原生代碼上傳到人家的遠端分支上。  首先要做的就是先將人家的專案克隆到本地:git clone + 專案地址  然後進入專案目錄:cd + 已克隆好的專案目錄名  然後切換分支,git checkout + 分支名(必須與所要提交程式碼的遠端分支同名)  然後

點擊添加減少數量,總價隨之改變keyup的用法

開始 htm max ges 減少 cal enter ota lac <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>點擊添

php文件傳原理詳解含源碼

輸入數據 最大值 cut 產生 har 默認值 接受 上傳文件 tle 1、文件上傳原理   將客戶端的文件上傳到服務器,再將服務器的臨時文件上傳到指定目錄 2、客戶端配置 提交表單 表單的發送方式為post 添加enctype="multipart/form-data"

Nodejs學習筆記—Node.js + Express 實現傳文件功能felixge/node-formidable

blog args 一個 type屬性 ole java mod device 前端 前言   前面講了一個構建網站的示例,這次在此基礎上再說說web的常規功能----文件上傳,示例以一個上傳圖片的功能為例子   上傳功能命名用formidable實現,示例很簡單!   P

如何在VMware創建虛擬機全圖引導

VM 圖片 img 如果 wid 如何 src 點擊 csdn 打開VMware 點擊創建新的虛擬機: 如果你還滿意,請點擊下贊。謝謝如何在VMware上創建虛擬機(全圖

ubuntu的疑難雜癥不定期更新……

out fcitx 可選 driver setting 支持 可能 鍵盤 缺少 ubuntu系統英偉達顯卡驅動怎麽裝 sudo apt-get purge nvidia* #如果之前安裝過顯卡驅動,就執行這一句來卸載 sudo apt-add-repository ppa

在EOSIO平臺開發區塊鏈dapp三、webapp

rom on() 鏈接 xtend stdout tde 技術分享 start hub 這是一步步的用EOSIO開發區塊鏈DApp的第三部分,上一部分中,我為EOSIO平臺開發了一個模擬選舉的智能合約。這部分我將開發一個webapp,允許訪問者投票給候選人。 以下是weba

Jenkins用HTTP Request Plugin件進行網站的監控/加探針運維監控

pla .org 需要 技術 通知 動作 設置 特定 name 使用的插件: 【HTTP Request Plugin】 思路: 說明:只能是網站是否正常打開,而不能是這個網站業務是否正常,如果是後者,則需要寫特定的接口進行請求處理。 1、通過插件,發送GET請求指定的UR

spark跑YARN模式Client模式提交任務不成功application state: ACCEPTED

應該是yarn的記憶體資源不夠 cd $HADOOP_HOME/bin 然後檢視yarn程序 yarn application -list 然後殺死任務 yarn application -kill application_1437456051228_1725

ueditor傳到阿里雲程式碼最少改動

ueditor上傳到阿里雲(程式碼最少改動) 官網下載 ueditor1_4_2-utf8-jsp,這裡提供下載地址,裡面不包含jar包。http://download.csdn.net/detail/u013024120/9708899 把編輯器放入JavaWe

Android+Jenkins自動化打包+傳蒲公英+傳送郵件測試必會

Android+Jenkins自動化打包+上傳蒲公英+傳送郵件   各位好,由於經常要修改客戶端的伺服器地址和要區分渠道為了方便測試打包學習了一下Jenkins,期間遇到一些問題,反正就是問題比較多,網上也搜了很多東西但是比較散都講了一點,特地自己整理了一下 ,也將自己遇到的坑在這