其實(shí)SD卡的初始化以及FAT文件系統(tǒng)也移植到了我的板子上面。但是我要存一張BMP的照片,不知道為啥,每次存儲150kb進(jìn)入TF卡的時候,時間不確定。有時幾百毫秒。有時要好幾秒。導(dǎo)致我完全不能夠?qū)崟r保存一些圖片。導(dǎo)致系統(tǒng)卡機(jī)。而且在FAT文件系統(tǒng)下,還不能夠使用DMA釋放CPU。
下面貼出 TF卡初始化例程,參考來自于正點(diǎn)原子源碼:
u8 SD_Init(void)
{
u8 SD_Error;
//初始化時的時鐘不能大于400KHZ
SDCARD_Handler.Instance=SDMMC1;
SDCARD_Handler.Init.ClockEdge=SDMMC_CLOCK_EDGE_RISING; //上升沿
SDCARD_Handler.Init.ClockBypass=SDMMC_CLOCK_BYPASS_DISABLE; //不使用bypass模式,直接用HCLK進(jìn)行分頻得到SDIO_CK
SDCARD_Handler.Init.ClockPowerSave=SDMMC_CLOCK_POWER_SAVE_DISABLE; //空閑時不關(guān)閉時鐘電源
SDCARD_Handler.Init.BusWide=SDMMC_BUS_WIDE_1B; //1位數(shù)據(jù)線
SDCARD_Handler.Init.HardwareFlowControl=SDMMC_HARDWARE_FLOW_CONTROL_DISABLE;//關(guān)閉硬件流控
SDCARD_Handler.Init.ClockDiv=SDMMC_TRANSFER_CLK_DIV; //SD傳輸時鐘頻率最大25MHZ
SD_Error=HAL_SD_Init(&SDCARD_Handler,&SDCardInfo);
if(SD_Error!=SD_OK) return 1;
SD_Error=HAL_SD_WideBusOperation_Config(&SDCARD_Handler,SDMMC_BUS_WIDE_4B);//使能寬總線模式
if(SD_Error!=SD_OK) return 2;
return 0;
}
//SDMMC底層驅(qū)動,時鐘使能,引腳配置,DMA配置
//此函數(shù)會被HAL_SD_Init()調(diào)用
//hsd:SD卡句柄
void HAL_SD_MspInit(SD_HandleTypeDef *hsd)
{
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_SDMMC1_CLK_ENABLE(); //使能SDMMC1時鐘
__HAL_RCC_DMA2_CLK_ENABLE(); //使能DMA2時鐘
__HAL_RCC_GPIOC_CLK_ENABLE(); //使能GPIOC時鐘
__HAL_RCC_GPIOD_CLK_ENABLE(); //使能GPIOD時鐘
//PC8,9,10,11,12
GPIO_Initure.Pin=GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12;
GPIO_Initure.Mode=GPIO_MODE_AF_PP; //推挽復(fù)用
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速
GPIO_Initure.Alternate=GPIO_AF12_SDIO; //復(fù)用為SDIO
HAL_GPIO_Init(GPIOC,&GPIO_Initure); //初始化
//PD2
GPIO_Initure.Pin=GPIO_PIN_2;
HAL_GPIO_Init(GPIOD,&GPIO_Initure); //初始化
#if (SD_DMA_MODE==1) //使用DMA模式
HAL_NVIC_SetPriority(SDMMC1_IRQn,2,0); //配置SDMMC1中斷,搶占優(yōu)先級2,子優(yōu)先級0
HAL_NVIC_EnableIRQ(SDMMC1_IRQn); //使能SDMMC1中斷
//配置發(fā)送DMA
SDRxDMAHandler.Instance=DMA2_Stream3;
SDRxDMAHandler.Init.Channel=DMA_CHANNEL_4;
SDRxDMAHandler.Init.Direction=DMA_PERIPH_TO_MEMORY;
SDRxDMAHandler.Init.PeriphInc=DMA_PINC_DISABLE;
SDRxDMAHandler.Init.MemInc=DMA_MINC_ENABLE;
SDRxDMAHandler.Init.PeriphDataAlignment=DMA_PDATAALIGN_WORD;
SDRxDMAHandler.Init.MemDataAlignment=DMA_MDATAALIGN_WORD;
SDRxDMAHandler.Init.Mode=DMA_PFCTRL;
SDRxDMAHandler.Init.Priority=DMA_PRIORITY_VERY_HIGH;
SDRxDMAHandler.Init.FIFOMode=DMA_FIFOMODE_ENABLE;
SDRxDMAHandler.Init.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL;
SDRxDMAHandler.Init.MemBurst=DMA_MBURST_INC4;
SDRxDMAHandler.Init.PeriphBurst=DMA_PBURST_INC4;
__HAL_LINKDMA(hsd, hdmarx, SDRxDMAHandler); //將接收DMA和SD卡的發(fā)送DMA連接起來
HAL_DMA_DeInit(&SDRxDMAHandler);
HAL_DMA_Init(&SDRxDMAHandler); //初始化接收DMA
//配置接收DMA
SDTxDMAHandler.Instance=DMA2_Stream6;
SDTxDMAHandler.Init.Channel=DMA_CHANNEL_4;
SDTxDMAHandler.Init.Direction=DMA_MEMORY_TO_PERIPH;
SDTxDMAHandler.Init.PeriphInc=DMA_PINC_DISABLE;
SDTxDMAHandler.Init.MemInc=DMA_MINC_ENABLE;
SDTxDMAHandler.Init.PeriphDataAlignment=DMA_PDATAALIGN_WORD;
SDTxDMAHandler.Init.MemDataAlignment=DMA_MDATAALIGN_WORD;
SDTxDMAHandler.Init.Mode=DMA_PFCTRL;
SDTxDMAHandler.Init.Priority=DMA_PRIORITY_VERY_HIGH;
SDTxDMAHandler.Init.FIFOMode=DMA_FIFOMODE_ENABLE;
SDTxDMAHandler.Init.FIFOThreshold=DMA_FIFO_THRESHOLD_FULL;
SDTxDMAHandler.Init.MemBurst=DMA_MBURST_INC4;
SDTxDMAHandler.Init.PeriphBurst=DMA_PBURST_INC4;
__HAL_LINKDMA(hsd, hdmatx, SDTxDMAHandler);//將發(fā)送DMA和SD卡的發(fā)送DMA連接起來
HAL_DMA_DeInit(&SDTxDMAHandler);
HAL_DMA_Init(&SDTxDMAHandler); //初始化發(fā)送DMA
HAL_NVIC_SetPriority(DMA2_Stream3_IRQn, 3, 0); //接收DMA中斷優(yōu)先級
HAL_NVIC_EnableIRQ(DMA2_Stream3_IRQn);
HAL_NVIC_SetPriority(DMA2_Stream6_IRQn, 3, 0); //發(fā)送DMA中斷優(yōu)先級
HAL_NVIC_EnableIRQ(DMA2_Stream6_IRQn);
#endif
}
接下來我繼續(xù)更新。希望能夠達(dá)到實(shí)時存儲。
找到問題原因了,在FAT文件系統(tǒng)當(dāng)中,如果不是一次性寫完一個文件,而是分開來寫一個文件,也就是連續(xù)調(diào)用f_write函數(shù),后面這個函數(shù)的運(yùn)行時間是不確定的。所以我把整個文件打包,直接一次寫入,速度很快。、
但是又遇到了新的問題,每次創(chuàng)建一個新的文件,它需要的時間要好幾百毫秒。這個太慢了,很大的影響我的操作。準(zhǔn)備找到新的解決辦法,并且如果要實(shí)時存視頻的話,也需要新的辦法。
上一篇:STM32CubeMx + SD Card + FatFs 讀寫SD卡死等問題
下一篇:STM32f429-SDRAM+LTDC總結(jié)
推薦閱讀
史海拾趣
FLIR公司成立于1978年,總部位于美國俄勒岡州波特蘭市。起初,公司專注于高性能、低成本機(jī)載應(yīng)用紅外熱成像系統(tǒng)的研發(fā)與生產(chǎn)。在那個時代,紅外熱成像技術(shù)主要應(yīng)用于軍事領(lǐng)域,成本高昂且難以普及。然而,F(xiàn)LIR憑借其技術(shù)創(chuàng)新,成功打破了這一局面,推出了性價比極高的機(jī)載紅外熱成像系統(tǒng)。這些系統(tǒng)能夠在完全漆黑的環(huán)境或惡劣天氣條件下,透過煙霧和陰霾等空氣污染物清晰成像,極大地提升了軍事偵察和夜間作戰(zhàn)的能力。這一突破不僅讓FLIR在軍事領(lǐng)域嶄露頭角,也為后續(xù)的商業(yè)應(yīng)用奠定了堅(jiān)實(shí)基礎(chǔ)。
在電子元件領(lǐng)域,F(xiàn)rolyt Condensers & Elements GmbH起初是一家專注于電容器研發(fā)的小型制造商。2005年,公司研發(fā)團(tuán)隊(duì)成功開發(fā)出一種新型高性能鋁電解電容器,該電容器在耐高溫、長壽命和低阻抗方面表現(xiàn)出色,迅速吸引了市場的關(guān)注。通過持續(xù)的技術(shù)創(chuàng)新和嚴(yán)格的品質(zhì)控制,F(xiàn)rolyt的電容器產(chǎn)品在汽車電子、通信設(shè)備等多個領(lǐng)域得到廣泛應(yīng)用,公司因此實(shí)現(xiàn)了市場份額的快速增長。
ECS公司成立于XXXX年,由一群熱衷于云計(jì)算技術(shù)的工程師創(chuàng)立。在創(chuàng)立初期,公司就明確了以提供高效、彈性的云服務(wù)為目標(biāo)。他們深入研究了虛擬化技術(shù)、自動化管理等關(guān)鍵技術(shù),成功推出了ECS服務(wù),為客戶提供按需分配的計(jì)算資源。這一創(chuàng)新的服務(wù)模式迅速吸引了眾多客戶的關(guān)注,ECS公司開始在云服務(wù)市場嶄露頭角。
隨著市場需求的不斷變化,達(dá)晶微不斷加大研發(fā)投入,推出了一系列具有創(chuàng)新性的產(chǎn)品。這些產(chǎn)品不僅提高了能效,降低了成本,還滿足了客戶對高質(zhì)量、高性能半導(dǎo)體器件的需求。公司憑借技術(shù)創(chuàng)新和產(chǎn)品升級,贏得了客戶的廣泛認(rèn)可。
飛翼科技(FEIYI)在多個領(lǐng)域的發(fā)展均體現(xiàn)了其創(chuàng)新驅(qū)動的發(fā)展戰(zhàn)略。無論是無人機(jī)技術(shù)的智能化應(yīng)用,還是綠色礦山技術(shù)的創(chuàng)新突破,亦或是電容式觸摸感應(yīng)芯片的市場領(lǐng)先,都離不開公司對技術(shù)創(chuàng)新的不斷追求。飛翼科技積極與高校、研究機(jī)構(gòu)及行業(yè)專家開展合作,集聚頂尖科技人才,共同推動技術(shù)進(jìn)步和產(chǎn)業(yè)升級。同時,公司還注重知識產(chǎn)權(quán)保護(hù),擁有國家專利技術(shù)300余項(xiàng),為企業(yè)的持續(xù)發(fā)展提供了有力保障。通過這些努力,飛翼科技在電子行業(yè)中不斷崛起,成為行業(yè)內(nèi)的佼佼者。
隨著全球電子產(chǎn)業(yè)的蓬勃發(fā)展,C.K TOOLS開始將目光投向國際市場。他們通過加強(qiáng)在英國、愛爾蘭、法國和德國等歐洲國家的銷售團(tuán)隊(duì)建設(shè),以及擴(kuò)大在全球其他國家的分銷商網(wǎng)絡(luò),將產(chǎn)品推向了世界各地。在國際市場上,C.K TOOLS憑借其高品質(zhì)的產(chǎn)品和專業(yè)的服務(wù),贏得了眾多電子制造企業(yè)的信賴和好評。
請問,pxa270 燒寫wince 5時不能燒寫至nand flash 請問,pxa270 燒寫wince 5時不能燒寫至nand flash: 出現(xiàn)以下錯誤: INFO: FlashErase: erasing flash A6600000 to A7C3FFFF. Please wait... ................................................................................ .... ...… 查看全部問答∨ |
|
STM32F0 M0的IAP功能,執(zhí)行APP后中斷不正常 請教,我采用的是STM32F051的片子,想加入IAP的功能,但是發(fā)現(xiàn)程序可以從IAP跳轉(zhuǎn)到APP,可是跳轉(zhuǎn)之后APP的外部中斷無法進(jìn)入,但是APP的定時器中斷是OK的,主函數(shù)的運(yùn)行也是正常的,就是無法響應(yīng)外部中斷。不使用IAP跳轉(zhuǎn)的時候APP是完全正才的。 參 ...… 查看全部問答∨ |
|
以我的OK210開發(fā)板為例,介紹如何新建和修改ce6下的gpio驅(qū)動 只要按照步驟執(zhí)行下去,即可建立一個新的GPIO驅(qū)動。并做如何修改GPIO驅(qū)動介紹。完成驅(qū)動開發(fā)的準(zhǔn)備工作。 硬件平臺:飛凌OK210 操作系統(tǒng):飛凌光盤中的BSP,Win CE6.0 編譯工具:VS2 ...… 查看全部問答∨ |
汽車安全系統(tǒng)現(xiàn)在還安全嗎,,,,,,,,,,,,,,,,,,光有g(shù)ps,wifi,車聯(lián)網(wǎng)效果,對汽車安全系統(tǒng)來說反而不安全,,,,,,,,,,,,,,,,,,,,,現(xiàn)在國內(nèi)小偷太無敵,,,,,,,,,大家該怎么防范小偷呢… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 半導(dǎo)體關(guān)稅可能會使您的下一輛汽車更加昂貴
- 潮起!人形機(jī)器人成本的20%-30%——靈巧手,國產(chǎn)3大廠商正快速產(chǎn)業(yè)化!
- AB Dynamics發(fā)布用于無人駕駛測試的物體檢測系統(tǒng)
- AI重構(gòu)出行:高階輔助駕駛的破局之路
- 廣汽即將發(fā)布全新星源增程技術(shù)
- Yole表示,到2030年,數(shù)據(jù)中心芯片市場規(guī)模將達(dá)到5000億美元
- 綠色節(jié)能趨勢下的延時繼電器發(fā)展:低功耗設(shè)計(jì)與環(huán)保材料應(yīng)用
- 國內(nèi)車企在固態(tài)電池領(lǐng)域的挑戰(zhàn)和技術(shù)方案
- 資本熱捧 + 政策護(hù)航,2025 人形機(jī)器人能否叩開 “量產(chǎn)元年” 大門?
- 耐世特推出用于智能運(yùn)動控制的 MotionIQ?軟件套件
- OnRobot不斷擴(kuò)展產(chǎn)品功能,將帶給客戶更全面廣泛的應(yīng)用體驗(yàn)
- 各行各業(yè)無時不刻探討的AI,如何才能重構(gòu)競爭壁壘?
- 傳統(tǒng)機(jī)器學(xué)習(xí)存痛點(diǎn),深度學(xué)習(xí)與遷移學(xué)習(xí)如何成就AI落地?
- 上海臨港今年集成電路總投超千億元,國內(nèi)領(lǐng)軍企業(yè)集聚
- SiFive獲得SK Hynix和沙特阿美的6100萬美元融資
- 用AT89C2051單片機(jī)制作水族箱加氧泵自控開關(guān)源程序
- 4×4矩陣鍵盤C語言程序參考
- 美國車聯(lián)網(wǎng)協(xié)會Scott McCormick:美國智能網(wǎng)聯(lián)汽車的戰(zhàn)略、規(guī)劃與發(fā)展
- 2864LCD顯示遙控鍵值解碼器
- 89S51看門狗功能的使用方法如下