嵌入式
未读
使用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)方案。
嵌入式
未读
Linux配置ARM官方交叉编译器
ARM官方交叉编译器安装指南:针对IMX6ULL开发,推荐使用持续更新的ARM GNU Toolchain替代已停更的Linaro版(最后更新于2019年)。从ARM开发者官网下载最新版arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf.tar.xz,解压后安装至/usr/local/arm/目录;配置环境变量时,BASH用户修改/etc/profile,ZSH用户编辑~/.zshrc,添加bin路径及LD_LIBRARY_PATH(ZSH专属);验证执行arm-none-linux-gnueabihf-gcc。全程适配Ubuntu虚拟机环境,含wget下载、中断处理、路径定制与shell差异说明。
嵌入式
未读
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等任务异常退出,需合理分配各任务堆栈大小。
Keil使用的各种问题
STM32F407开发板Keil配置指南:推荐使用Keil Pack Installer在线安装芯片支持包,避免手动下载;采用Keil在线CMSIS/固件库机制,按需链接文件,精简工程、提升编译速度;针对F4软件包缺失标准外设库问题,需从ST官网下载最新STM32F4xx StdPeriph Driver,并正确导入inc/src/头文件及模板文件;特别注意stm32f4xx.h宏定义重复导致的V6编译器重定义警告,需注释冗余段落,同时处理main.h引用和SysTick_Handler中TimingDelay_Decrement()未声明问题。
STM32核心板问题汇总
STM32核心板嘉立创SMT白嫖实测问题汇总:串口电路RX/TX串联10K电阻导致信号压降过大,建议移除或更换为小阻值电阻;ISP一键下载电路采用两个9013 NPN三极管设计错误,仿真验证无法通过常规改动修复,必须替换为专用对管方可正常工作。
嵌入式
未读
树莓派wiringPI库定时不精确的问题
**问题表现:**当树莓派运行其它进程导致CPU负载上升后,delay()函数延时出现问题,延时过长。 **问题原因:**由于linux是多任务的,所以实际延时时间可能会更长。delay()实际上是释放CPU,这时其它线程会占用CPU资源,导致重新唤醒CPU时出现延时。 作者在源码中指出: This
嵌入式
未读
树莓派WiringPi库使用及其注意事项
wiringPi树莓派GPIO控制库:C/C++开发,支持GPIO操作、中断、多线程;因作者停止维护,需手动编译安装(下载GitHub源码→解压→执行./build);验证用gpio -v;编译需链接-lwiringPi,运行需sudo权限;引脚映射查gpio readall;串口发送存在数据丢失问题,建议绕过serialPutchar直接用write()函数。