日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年07月19日(星期六)

2018年07月19日 | STM32F767 TF卡與FAT文件系統(tǒng)研究

發(fā)布者:baiyuguoji 來源: eefocus關(guān)鍵字:STM32F767  TF卡  FAT文件系統(tǒng) 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

其實(shí)SD卡的初始化以及FAT文件系統(tǒng)也移植到了我的板子上面。但是我要存一張BMP的照片,不知道為啥,每次存儲(chǔ)150kb進(jìn)入TF卡的時(shí)候,時(shí)間不確定。有時(shí)幾百毫秒。有時(shí)要好幾秒。導(dǎo)致我完全不能夠?qū)崟r(shí)保存一些圖片。導(dǎo)致系統(tǒng)卡機(jī)。而且在FAT文件系統(tǒng)下,還不能夠使用DMA釋放CPU。

下面貼出 TF卡初始化例程,參考來自于正點(diǎn)原子源碼:

u8 SD_Init(void)
{
    u8 SD_Error;
    
    //初始化時(shí)的時(shí)鐘不能大于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;  //空閑時(shí)不關(guān)閉時(shí)鐘電源
    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傳輸時(shí)鐘頻率最大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ū)動(dòng),時(shí)鐘使能,引腳配置,DMA配置
//此函數(shù)會(huì)被HAL_SD_Init()調(diào)用
//hsd:SD卡句柄
void HAL_SD_MspInit(SD_HandleTypeDef *hsd)
{
    GPIO_InitTypeDef GPIO_Initure;


    __HAL_RCC_SDMMC1_CLK_ENABLE();  //使能SDMMC1時(shí)鐘
    __HAL_RCC_DMA2_CLK_ENABLE();    //使能DMA2時(shí)鐘 
    __HAL_RCC_GPIOC_CLK_ENABLE();   //使能GPIOC時(shí)鐘
    __HAL_RCC_GPIOD_CLK_ENABLE();   //使能GPIOD時(shí)鐘
    
    //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)先級(jí)2,子優(yōu)先級(jí)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)先級(jí)
    HAL_NVIC_EnableIRQ(DMA2_Stream3_IRQn);
    HAL_NVIC_SetPriority(DMA2_Stream6_IRQn, 3, 0);  //發(fā)送DMA中斷優(yōu)先級(jí)
    HAL_NVIC_EnableIRQ(DMA2_Stream6_IRQn);
#endif
}


接下來我繼續(xù)更新。希望能夠達(dá)到實(shí)時(shí)存儲(chǔ)。


找到問題原因了,在FAT文件系統(tǒng)當(dāng)中,如果不是一次性寫完一個(gè)文件,而是分開來寫一個(gè)文件,也就是連續(xù)調(diào)用f_write函數(shù),后面這個(gè)函數(shù)的運(yùn)行時(shí)間是不確定的。所以我把整個(gè)文件打包,直接一次寫入,速度很快。、

但是又遇到了新的問題,每次創(chuàng)建一個(gè)新的文件,它需要的時(shí)間要好幾百毫秒。這個(gè)太慢了,很大的影響我的操作。準(zhǔn)備找到新的解決辦法,并且如果要實(shí)時(shí)存視頻的話,也需要新的辦法。


關(guān)鍵字:STM32F767  TF卡  FAT文件系統(tǒng) 引用地址:STM32F767 TF卡與FAT文件系統(tǒng)研究

上一篇:STM32CubeMx + SD Card + FatFs 讀寫SD卡死等問題
下一篇:STM32f429-SDRAM+LTDC總結(jié)

推薦閱讀

國產(chǎn)電視深入人心的往往都是三個(gè)字“性價(jià)比”,電視機(jī)領(lǐng)域國際幾大巨頭一直是國產(chǎn)電視無法撼動(dòng)的,而現(xiàn)在中國的智能崛起,在高端的家電領(lǐng)域,你能看到很多國產(chǎn)品牌,在2018年TCL春季新品發(fā)布會(huì)上,一款原色量子點(diǎn)曲面電視跟大家見面了。?什么是原色量子點(diǎn)?原色量子點(diǎn)即Quantum Dot Light Emitting Diodes,是一些肉眼無法看到的、極其微小的半導(dǎo)體納...
最近又遇到了使用Systick來產(chǎn)生精確計(jì)時(shí),然后又涉及到了Systick的中斷優(yōu)先級(jí)的問題。我們老板認(rèn)為Systick屬于內(nèi)核外設(shè),中斷優(yōu)先級(jí)應(yīng)該比普通外設(shè)高。然后我們說,在網(wǎng)上看到的是,Systick的中斷優(yōu)先級(jí)ST官方默認(rèn)設(shè)置15(1111b),然后換算為4位(M4用4位來表示優(yōu)先級(jí)分組)是3(搶占優(yōu)先級(jí)),3(響應(yīng)優(yōu)先級(jí)),其實(shí)是最低的,但老板說雖然它是最低的,但...
1、串口的模式有3種,一是查詢模式,二是中斷模式,三是DMA模式HAL_UART_Transmit();串口輪詢模式發(fā)送,使用超時(shí)管理機(jī)制HAL_UART_Receive();串口輪詢模式接收,使用超時(shí)管理機(jī)制HAL_UART_Transmit_IT();串口中斷模式發(fā)送HAL_UART_Receive_IT();串口中斷模式接收HAL_UART_Transmit_DMA();串口DMA模式發(fā)送HAL_UART_Transmit_DMA();串口DMA模式接收2、阻塞傳...
服務(wù)多重電子應(yīng)用領(lǐng)域的全球半導(dǎo)體領(lǐng)導(dǎo)者意法半導(dǎo)體(STMicroelectronics,簡稱ST) 近日宣布,與全球視覺人工智能 (AI) 軟件和車內(nèi)傳感器融合技術(shù)的領(lǐng)導(dǎo)者Eyeris達(dá)成合作,通過集成 Eyeris 的先進(jìn)深度神經(jīng)網(wǎng)絡(luò)產(chǎn)品組合,將意法半導(dǎo)體全局快門傳感器應(yīng)用延伸到車內(nèi)監(jiān)控領(lǐng)域,利用視覺空間感知功能全面了解車輛內(nèi)部情況。這個(gè)先進(jìn)的感知解決方案可支持汽...

史海拾趣

小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved