历史上的今天
返回首页

历史上的今天

今天是:2025年04月22日(星期二)

正在发生

2020年04月22日 | STM32L4新版HAL库SDIO(DMA)、FatFs使用教程(四)

2020-04-22 来源:eefocus

添加FreeRtos支持。

FreeRtos中使用FATFS是强制要求使用DMA模式的SDIO驱动。步骤如下:


1、打开工程配置文件,添加FreeRtos支持

2、配置参数


发现configuration选项卡SDMMC1报错,信息如下,意思是中断优先级问题。

打开NVIC配置界面,修改中断优先级,注意,DMA优先级要比SD中断优先级低。

打开FREERTOS选项,如图所示适当配置任务堆栈大小,这里为了测试方便,放到Start Task中测试,正式使用时,不要放在这里,要新建任务。文件操作所在的任务需要适当加大堆栈。

3、生成代码,打开工程,将main函数中的Fatfs_RW_test();语句剪切,粘贴到StartDefaultTask函数(635行附近),/* USER CODE BEGIN 5 */标记后面,如图所示。

4、由于重新生成了代码,bsp_driver_sd.c文件中的BSP_SD_ReadBlocks_DMA和BSP_SD_WriteBlocks_DMA被覆盖掉,需要按照上一节的步骤,加入DMA通道配置函数。


以下段落复制于上一节内容:


然后,打开bsp_driver_sd.c文件,到BSP_SD_ReadBlocks_DMA函数中(186行附近),在


 if (HAL_SD_ReadBlocks_DMA(&hsd1, (uint8_t *)pData, ReadAddr, NumOfBlocks) != HAL_OK)


  {


    sd_state = MSD_ERROR;


  }


上方添加以下代码:


if(SD_DMAConfigRx(&hsd1) != HAL_OK)

{

return MSD_ERROR;

}

在BSP_SD_WriteBlocks_DMA(214行附近),在


if (HAL_SD_WriteBlocks_DMA(&hsd1, (uint8_t *)pData, WriteAddr, NumOfBlocks) != HAL_OK)


  {


    sd_state = MSD_ERROR;


  }


上方添加以下代码:


if(SD_DMAConfigTx(&hsd1) != HAL_OK)

{

return MSD_ERROR;

}

 

5、编译测试源码,到此全部教程结束。

推荐阅读

史海拾趣

远阳(FLYOUNG)公司的发展小趣事

国光新业深知技术创新是企业发展的核心动力。截至目前,公司已拥有授权专利78项,其中发明专利30项,实用新型专利48项,还有数十项专利正在实质审查中。这些专利的积累,不仅彰显了公司在电容器领域的深厚技术底蕴,更为公司产品的持续升级与市场竞争力的提升提供了有力保障。公司还主导起草了两项该类高分子电容器国家标准,进一步巩固了其在行业内的领先地位。

Grayhill公司的发展小趣事
使用万用表等工具测量电路的输出电压和电流,确保它们符合设计要求。
Dean Technology公司的发展小趣事

Dean Technology公司起源于上世纪80年代,当时电子行业正经历着飞速的发展。创始人凭借其深厚的电子技术背景和敏锐的市场洞察力,决定进入高压二极管领域。他带领研发团队不断攻克技术难题,成功推出了一系列性能稳定、品质可靠的高压二极管产品,奠定了公司在行业中的技术领先地位。

中科芯(CKS)公司的发展小趣事

中科芯自成立以来,一直致力于集成电路技术的研发与创新。在早期的发展阶段,公司成功研制了我国首块超大规模集成电路,这一里程碑式的突破标志着中国集成电路技术达到了国际先进水平。这一成果不仅填补了国内在该领域的空白,也为中科芯赢得了广泛的国际声誉,为后续的技术突破奠定了坚实基础。

磁联达(CND-tek)公司的发展小趣事

为了提高产品质量和客户满意度,磁联达(CND-tek)公司引入了一套严格的质量管理体系。公司从原材料采购、生产过程到成品检验等各个环节都进行了严格把关,确保每一件产品都符合高标准的质量要求。此外,公司还建立了完善的售后服务体系,为客户提供及时、专业的技术支持和解决方案。这些举措使得磁联达(CND-tek)的产品质量得到了客户的高度认可。

Blue Sky Research公司的发展小趣事

Blue Sky Research深知人才是企业发展的核心。因此,公司一直注重人才培养和团队建设。通过招聘优秀的研发人员、销售人员和管理人员,公司打造了一支高素质、专业化的团队。同时,公司还建立了完善的培训体系和晋升机制,为员工提供广阔的职业发展空间。这些措施不仅提升了员工的归属感和忠诚度,也为公司的长期发展奠定了坚实的基础。

问答坊 | AI 解惑

DIESEL时尚创意电子表

创意幽默的 DIESEL 这次将数位电子錶款带入另一个多彩境界,春夏全新推出「颜色DNA」电子錶款系列。此系列玩色十足,藉由 5 种不同的颜色DNA营造出不同的色彩活力,搭配极具前卫设计感的造型錶身,个性帅性。不论是热情生活的红色、尽情自我的蓝色 ...…

查看全部问答>

电子书

自适应滤波的书…

查看全部问答>

浅析RFID(射频识别)的信息安全及其对策

RFID(RadioFrequencyIdentification,即射频识别)技术是从20世纪80年代走向成熟的一项自动识别技术。本文针对RFID系统产生的安全隐患进行了详细分析并有针对性地总结提出了相关对策。         RFID作为无线应用领域 ...…

查看全部问答>

ADS汇编语言中出现的问题

memsetup                 mov        r1,        #MEM_CTL_BASE                 adrl     r2 ...…

查看全部问答>

关于AT89C52和AT45D041

刚接手别人N年前的一个汇编程序,用AT89C52控制对45AT45D041卡的读写.程序中每次最多只能读32字节,如果要读264字节就要分9次发送读取命令.为什么?是89C52容量有限还是41卡的特性决定的?还有就是用伟福调试时,把电路板上的晶振换大后并且程序也做了修 ...…

查看全部问答>

求助关于如何将串口接收的汉字存入txt文件

现在已将串口接收汉字转换为unicode,且可以通过messagebox或edit显示汉字,但为什么使用cfile类进行写入txt文件后,通过word打开文件显示的不是汉字,而是汉字unicode码中每个字节所对应的ascii码呢?我写入的类型是wchar呀?请高手帮助!谢谢!…

查看全部问答>

开发 - eeworld - 外包

目的: 公司有项目需外包,寻工作室或个人开发。想了解一下大家信赖哪些外包网站。 问题: 请教eeworld上的高手,你们一般会通过哪些方式接私活?eeworld的外包频道效用如何? 备注:我们公司是开发工具软件的,主要是做 PC 维护方面的工具。 项 ...…

查看全部问答>

LM3S9B96开发板,晶振不起振?

为什么LM3S9B96的开发板,就是群星的那款,16M的外部晶振用示波器测试没有波形呢?9B96不是没有内部震荡源吗?程序可以正常下载、调试、运行…

查看全部问答>

使用STM8S105S写入ADC_CSR该引脚就会有一个干扰波

                                 问题如题,这样正常吗?…

查看全部问答>