合宙Air103|SDIO (扩展) |LuatOS-SOC接口|官方demo|学习(15-3):SDIO - 文件读写操作

该文详细介绍了如何在Air103开发板上使用SDIO接口与SD卡进行通信,通过LuatOS操作系统进行文件系统的读写操作。包括SDIO库的初始化、SD卡挂载、文件读写、长文件名支持以及示例代码的解析。此外,还提到了其他相关资源如SPI、fatfs的扩展操作和SFUD库对外置flash的操作。

基础资料

基于Air103开发板:🚗 Air103 - LuatOS 文档

上手:开发上手 - LuatOS 文档

探讨重点

对官方社区库接口SDIO库调用及示例进行复现及分析,了解SDIO模式读写SD卡的基本原理及操作方法。

扩展阅读:

合宙Air105|fatfs| io操作(扩展)|SPI|可调功放|I2C|SPI|toHex()|os.remove|LuatOS-SOC接口|官方demo|学习(15-1):fatfs文件系统_打酱油的工程师的博客-CSDN博客

合宙Air105|fs| io操作(扩展)|io.SEEK_END|io.SEEK_SET|io.SEEK_CUR|LuatOS-SOC接口|官方demo|学习(15-2):fs - 文件系统额外操作_打酱油的工程师的博客-CSDN博客

合宙Air105|SFUD库|FS|SPI FLASH|W25QXX |LuatOS-SOC接口|官方demo|学习(15-4):SFUD库操作-外置flash_打酱油的工程师的博客-CSDN博客

软件及工具版本

LuatOS@AIR103 base 22.12 bsp V0015 32bit

硬件准备

Air103开发板1块,面包板1块,SPI/SDIO双功能版本读写模块,导线若干。

接线

 需采用:SPI/SDIO双功能版本读写模块


--[[

接线要求:

SDIO             使用6线接法

Air103开发板         SDIO模块
GND                    GND

GPIO26(SDIO_02)       D02

GPIO27                D03

GPIO23(SDIO_CMD)     CMD
 
GPIO22(SDIO_CK)      CLK

GPIO24               D00

GPIO25               D01

3.3V                 VCC

Demo代码及解析:


-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "sdiodemo"
VERSION = "1.0.0"

log.info("main", PROJECT, VERSION)

-- sys库是标配
_G.sys = require("sys")

--添加硬狗防止程序卡死
if wdt then
    wdt.init(9000)--初始化watchdog设置为9s
    sys.timerLoopStart(wdt.feed, 3000)--3s喂一次狗
end

--[[接线方式:
    Air103开发板         SDIO模块

GND                    GND
GPIO26(SDIO_02)       D02
GPIO27			      D03
GPIO23(SDIO_CMD)    CMD
GPIO22(SDIO_CK)     CLK
GPIO24      		D00
GPIO25				D01
3.3V                   VCC
]]

-- 特别提醒, 由于FAT32是DOS时代的产物, 文件名超过8个字节是需要额外支持的(需要更大的ROM)
-- 例如 /sd/boottime 是合法文件名, 而/sd/boot_time就不是合法文件名, 需要启用长文件名支持.

local function fatfs_test()
    log.info("sdio", "call sdio.init")
    sdio.init(0)
    log.info("sdio", "call sdio.sd_mount")
    status=sdio.s
内容概要:本文详细介绍了一个基于蜣螂优化算法(DBO)的栅格地图机器人路径规划项目,涵盖从算法原理、模型架构、代码实现到GUI界面设计的完整流程。项目通过模拟蜣螂滚动粪球的行为机制,构建群体智能优化模型,实现复杂环境中机器人的全局路径规划与动态避障。系统采用栅格地图建模,结多目标代价函数(路径长度、平滑度、能耗、安全性)、路径编码策略与后处理平滑技术,提升路径质量。项目提供完整的Python代码实现,包括种群初始化、适应度评估、路径交叉与变异、进化更新等核心模块,并集成可视化GUI界面,支持参数配置、实时路径展示、结果导出等功能。; 适人群:具备一定Python编程基础,熟悉基本算法与数据结构,对智能优化算法、机器人路径规划或人工智能应用感兴趣的开发者、研究人员及高校学生,尤其适从事自动化、智能物流、智能制造等相关领域的技术人员。; 使用场景及目标:①应用于智能仓储、智能制造、医疗物流、安防巡检等场景中的机器人自主导航;②用于教学与科研中群体智能算法的实践与仿真;③为目标导向的多约束路径规划问题提供可扩展的技术方案,支持动态环境适应与多机器人协同扩展。; 阅读建议:建议读者结文档中的代码示例与完整项目结构逐步实现并调试系统,重点关注DBO算法在路径搜索中的演化机制与多目标优化设计,同时利用GUI界面进行交互式实验,加深对算法行为的理解。项目强调工程化部署与可视化验证,适动手实践与二次开发。
内容概要:本文系统阐述了程序员高效代码规范的重要性及实践方法,涵盖命名、格式、结构和异常处理四大核心方面。通过统一命名规则(如驼峰命名、常量全大写)、规范代码格式(缩进、换行、注释)、优化代码结构(单一职责、模块化设计)以及理异常处理(精准捕获、日志记录),提升代码可读性、可维护性和团队协作效率。同时介绍了借助自动化工具(ESLint、Prettier等)、代码审查和制定团队规范文档来推动规范落地,并强调在执行中需平衡灵活性与严谨性,避免过度教条或忽视规范。; 适人群:具备一定编程基础的初级到中级程序员,以及希望提升团队代码质量的技术负责人或开发团队;适用于参与协作开发、注重工程规范性的软件开发者。; 使用场景及目标:①帮助开发者建立标准化的编码习惯,减少沟通成本;②提升项目可维护性与稳定性,支持长期迭代;③在团队中推行统一的代码规范体系,结工具实现自动化检查与格式化;④通过代码审查促进知识共享与技术水平整体提升。; 阅读建议:此资源不仅提供具体规范条目,更强调规范背后的逻辑与实施策略,建议读者结自身技术栈配置相应工具链,并在实际项目中逐步应用文中建议,定期组织团队讨论与规范更新,确保规范持续有效落地。
在自动驾驶领域,360环视全景拼接技术是一项至关重要的功能,它为车辆提供了全方位的视觉感知,有助于提升行车安全。"360环视全景拼接demo,c++程序"是一个展示如何实现这一技术的代码示例,主要用于帮助开发者理解和实践相关算法。 我们来探讨360环视全景拼接的基本概念。这项技术通过安装在车辆四周的多个摄像头捕捉图像,然后利用图像处理和计算机视觉算法将这些图像进行校正、拼接,形成一个无缝的鸟瞰图。这样,驾驶员可以清晰地看到车辆周围的环境,包括盲区,有效减少碰撞风险。 在这个"C++程序"中,我们可以预期包含以下几个关键部分: 1. **摄像头校正**:由于摄像头安装位置、角度和畸变的影响,捕获的图像需要先进行校正。这通常涉及到鱼眼镜头校正,通过霍夫变换等方法消除镜头引起的非线性失真。 2. **图像配准**:将不同摄像头捕获的图像对齐,确保在同一个坐标系下。这一步可能涉及到特征点匹配、刚性变换估计等技术。 3. **图像拼接**:使用图像融算法,如权重平均或基于内容的融,将校正后的图像无缝拼接成全景图。这一步要求处理好图像间的过渡区域,避免出现明显的接缝。 4. **实时处理**:在自动驾驶环境中,360环视系统必须实时工作,因此代码会优化算法以满足实时性需求,可能涉及多线程、GPU加速等技术。 5. **用户界面**:展示全景图像的界面设计,包括交互方式、视角切换、显示质量等,对于用户体验至关重要。 6. **标定过程**:摄像头的内在参数(如焦距、主点坐标)和外在参数(如安装位置、角度)的标定,是确保图像拼接准确的基础。 这个"AdasSourrondView-main"可能是项目的主要源代码目录,里面可能包含了上述各个模块的实现,以及相关的配置文件和测试数据。开发者可以通过阅读源码、编译运行,理解并学习360环视全景拼接的完整流程。 在实际应用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打酱油的工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值