嵌入式
未读
使用CubeMX移植FatFS到STM32
STM32CubeMX FatFS SD卡移植指南:基于CubeMX集成FatFS库,详解SDIO配置(1/4线模式)、SD检测引脚(如PC7上拉设置)、FatFS中间件启用及参数定制;解析生成代码的三层驱动结构——ff_gen_drv.c通用接口、sd_diskio.c底层适配、bsp_driver_sd.c HAL封装;阐明初始化时序关键点:MX_SDIO_SD_Init仅配置结构体,实际HAL_SD_Init与HAL_SD_ConfigWideBusOperation在f_mount触发的disk_initialize中执行,需注意BusWide默认为4B但首次CMD初始化强制1B;提供现有工程移植步骤、头文件路径配置、ffconf.h常见编译问题规避及长文件名支持(_USE_LFN=2+cc936.c)方案。
嵌入式
未读
STM32使用DMA驱动SPI显示屏,提高LVGL帧数
LVGL帧率优化DMA方案:解决SPI DMA传输中CS信号误关、传输完成中断回调失效及65535字节传输上限问题。核心在于避免DMA发送函数中立即拉高CS,改用硬件片选或在HAL_SPI_TxCpltCallback中断中调用lv_disp_flush_ready;需将disp_drv提升为全局变量,并注意Size参数限制。实测DMA显著提升显示帧数。
使用Keil包管理器创建STM32 Freertos工程时需要注意的问题
FreeRTOS移植常见坑点:HAL与SysTick冲突需改用TIM11作HAL时钟;中断优先级分组必须设为4,且configLIBRARY_LOWEST_INTERRUPT_PRIORITY须设为15(非默认7),否则高优先级HAL中断触发HardFault;任务堆栈不足会引发LVGL等任务异常退出,需合理分配各任务堆栈大小。