96SEO 2026-02-19 18:33 5
。

当然也可以直接使用正点原子或野火提供的实例#xff0c;但为了熟…sdio移植
st官网给的标准库有给一个用于st出的评估板的sdio外设实现但一是文件结构有点复杂二是相比于国内正点原子和野火的板子也有点不同因此还是需要移植下才能使用。
当然也可以直接使用正点原子或野火提供的实例但为了熟悉下sdio的一些知识本人还是决定从st标准库移植一次。
下面就是移植的过程。
st官方提供的10E评估板和本人使用的野火stm32f103zet6开发板可以兼容。
但在TF卡插入检测有所不同。
st官方的stm3210e评估板使用PF11用于卡插入检测而stm32f103zet6开发板没有提供此检测引脚功能。
复制STM32F10x_StdPeriph_Lib_V3.5.0/Utilities/STM32_EVAL/Common/stm32_eval_sdio_sd.c和STM32F10x_StdPeriph_Lib_V3.5.0/Utilities/STM32_EVAL/Common/stm32_eval_sdio_sd.h到自己的项目中自己项目中新建一个sdio_gpio.c和sdio_gpio.h。
复制STM32F10x_StdPeriph_Lib_V3.5.0/Utilities/STM32_EVAL/STM3210E_EVAL/stm3210e_eval.c中的几个函数实现到sdio_gpio.c文件中。
这里就列出sdio_gpio.h头文件具体函数就自己复制了。
头文件中只是这几个函数的声明函数的具体内容要复制到sd_gpio.c文件中
SD_LowLevel_DMA_TxConfig(uint32_t
SD_LowLevel_DMA_RxConfig(uint32_t
SD_DMAEndOfTransferStatus(void);
sdio_NVIC_Configuration(void)#endif复制好函数体后删除sdio_gpio.c文件中出现DETECT的地方原因就是因为官方评估板中有DETECT引脚而本人板子实际没有DETECT引脚更改一些stm32_eval_sdio_sd.c文件中的内容
SD_DMAEndOfTransferStatus(void);
*/SD_LowLevel_Init();SDIO_DeInit();//
中断初始化sdio_NVIC_Configuration();errorstatus
因为采用data3信号线作为插入检测因此此处不能使用SD_Detect()函数*
0x0F);}/*}*//*else*//*{*//*return
(GPIO_ReadInputDataBit(SD_DETECT_GPIO_PORT,
SD_WriteMultiBlocks()中加入一个命令书中说加入有用具体不清楚
SDIO_HIGH_CAPACITY_SD_CARD){BlockSize
*/SDIO_CmdInitStructure.SDIO_Argument
BlockSize;SDIO_CmdInitStructure.SDIO_CmdIndex
SD_CMD_SET_BLOCKLEN;SDIO_CmdInitStructure.SDIO_Response
SDIO_Response_Short;SDIO_CmdInitStructure.SDIO_Wait
SDIO_Wait_No;SDIO_CmdInitStructure.SDIO_CPSM
SDIO_CPSM_Enable;SDIO_SendCommand(SDIO_CmdInitStructure);errorstatus
CmdResp1Error(SD_CMD_SET_BLOCKLEN);if
SD_OK){return(errorstatus);}...
}还有一个sdio的中断函数还要忘记了放在stm32f10x_it.c或main.c都一样的。
}改好后项目中加入sdio_gpio.h和stm32_eval_sdio_sd.h头文件。
就可以试着编译下了
因为本人之前的项目中使用的freertos且已经调通uart0串口。
st官方实例是使用几个LED灯指示测试结果本人开发板上没有这么多的灯就直接使用串口的printf显示了一样的方便。
下面就是main.c文件。
Buffer_MultiBlock_Tx[MULTI_BUFFER_SIZE],
Buffer_MultiBlock_Rx[MULTI_BUFFER_SIZE];void
SD_OPERATION_END){switch(SDCardOperation){case
SD_OPERATION_ERASE:SD_EraseTest();SDCardOperation
SD_OPERATION_BLOCK:SD_SingleBlockTest();SDCardOperation
SD_OPERATION_MULTI_BLOCK;break;case
SD_OPERATION_MULTI_BLOCK:SD_MultiBlockTest();SDCardOperation
SD_OPERATION_END;break;}}while(1){}
0xffff;for(;;){DAC_SetChannel1Data(DAC_Align_12b_L,
num);DAC_SoftwareTriggerCmd(DAC_Channel_1,
*pvParameter){SystemInit();dac_init();serial_init();//single_adc_init();muiltichannel_adc_init();command_buf
*pvParameter){for(;;){printf(This
*pvParameter){muiltichannel_adc_enable();for(;;){printf(PA1
NULL);//xTaskCreate(print_test_task,
NULL);*///xTaskCreate(adc_task,
NULL);/*xTaskCreate(muiltichannel_adc_task,
NULL);*/xTaskCreate(sdio_test_task,
SD_ReadMultiBlocks(Buffer_MultiBlock_Rx,
eBuffercmp(Buffer_MultiBlock_Rx,
MULTI_BUFFER_SIZE);}if(EraseStatus
SD_WaitWriteOperation();while(SD_GetStatus()
SD_WaitReadOperation();while(SD_GetStatus()
BLOCK_SIZE);}if(TransferStatus1
*/Fill_Buffer(Buffer_MultiBlock_Tx,
SD_WriteMultiBlocks(Buffer_MultiBlock_Tx,
SD_WaitWriteOperation();while(SD_GetStatus()
SD_ReadMultiBlocks(Buffer_MultiBlock_Rx,
SD_WaitReadOperation();while(SD_GetStatus()
Buffercmp(Buffer_MultiBlock_Tx,
MULTI_BUFFER_SIZE);}if(TransferStatus2
FAILED;}pBuffer1;pBuffer2;}return
以上的大部分内容都是复制的STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/SDIO/uSDCard/main.c的内容。
只是在此基础上加入了freertos的格式将测试最后通过和出错的提示方式全部使用串口打印出来。
passed至此sdio基本驱动移植成功可以移植fatfs了。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback