- 博客(88)
- 资源 (2)
- 收藏
- 关注
原创 【基础知识】QSPI代码流程
初始化QSPI接口配置GPIO、时钟和QSPI控制器参数。使能QSPI外设。进入QSPI模式(可选)若Flash支持四线模式,发送命令。执行操作(读取/写入/擦除)根据需求发送对应命令(如Read Data处理数据传输和状态检查。错误处理与状态检查读取状态寄存器,确保操作成功完成。
2025-05-20 15:38:22
390
原创 【基础知识】QSPI的命令
QSPI命令集通过灵活的单线/多线切换机制,在保持与SPI兼容性的同时,显著提升了数据传输效率。开发时需根据设备特性选择合适的命令,并严格遵循时序要求,以实现最优性能。
2025-05-20 15:24:13
778
原创 【基础知识】SPI协议的种类及异同
引脚资源若引脚紧张,优先选择单线路SPI或三线制SPI。传输速率高速场景(如Flash读写)选择QSPI或DSPI;低速场景可使用标准SPI。拓扑结构多从机系统若CS引脚不足,考虑菊花链SPI。兼容性与现有设备通信时,需确保主从设备支持相同的SPI变体。通过灵活选择SPI的不同协议种类,可在引脚数量、传输效率和系统复杂度之间取得平衡。
2025-05-20 14:02:11
912
原创 【基础知识】SPI通信如何确认从机模式
优先查阅文档:直接获取CPOL/CPHA值或支持的模式。硬件测量:使用示波器观察SCK时序,确定CPOL和CPHA。软件枚举:通过主设备逐一测试四种模式,根据响应判断。交叉验证:结合文档、测量和枚举结果,确保结论一致。通过以上方法,可准确确认SPI从机的工作模式,实现主从设备的正确通信。
2025-05-20 13:55:29
605
原创 【C++】常用设计模式
设计模式是解决软件设计问题的经验总结,合理使用可以提高代码的可维护性、可扩展性和复用性。设计模式(Design Patterns)是软件开发中针对反复出现的问题总结出的通用解决方案。定义对象间的一对多依赖,当一个对象状态改变时,所有依赖者会收到通知并自动更新。将一个类的接口转换成客户希望的另一个接口,使不兼容的类可以一起工作。允许对象在内部状态改变时改变它的行为,看起来像是改变了它的类。将请求的发送和接收解耦,使多个对象都有机会处理这个请求。:对象的创建过程,解耦对象的使用和实例化。
2025-05-13 16:59:47
585
原创 【C++】【设计模式】生产者-消费者模型
生产者-消费者模型是并发编程的基础模式,通过分离数据生产和处理逻辑,提高系统吞吐量和可维护性。合理选择缓冲区类型和同步机制是实现高效、线程安全的关键。在实际应用中,需根据场景特点(如性能需求、数据量)调整实现方式。生产者-消费者模型(Producer-Consumer Model)是一种经典的并发编程模式,用于解决多线程或多进程环境下的数据共享和任务协作问题。
2025-05-13 15:55:05
447
1
原创 【C++】多线程和多进程
进程间通信通过操作系统提供的机制实现,适合安全性要求高、需跨主机通信的场景。现代C++提供了丰富的并发工具,简化了线程和进程间的通信实现。在C++中,多线程通信(同一进程内的线程间交互)和进程间通信(IPC,不同进程间的数据交换)是构建并发系统的核心技术。不同进程间的通信需通过操作系统提供的机制,因为它们不共享内存空间。基于网络协议的进程间通信,支持本地(Unix域套接字)和网络通信。用于系统服务间的高级IPC机制,广泛用于Linux桌面环境。使用线程安全的队列实现异步通信,避免直接共享状态。
2025-05-13 15:49:05
907
原创 【C++】常用的STL
C++ 的标准模板库(STL)提供了丰富的容器、算法和工具,:对容器元素排序(平均 O(n log n)):查找第一个≥/>目标值的位置。:字符串流(用于格式化和解析):可能为空的值(C++17+):键值对映射(红黑树实现):弱引用,用于解决循环引用。:多值元组(C++11+):允许重复元素的有序集合。:队列(先进先出,基于。:用于在容器尾部插入元素。:允许重复键的有序映射。:栈(后进先出,基于。:二分查找(要求有序):共享所有权的智能指针。:哈希表实现的键值对。:优先队列(堆实现)
2025-05-12 10:49:11
857
原创 【C++】互斥锁(Mutex)
在C++中,互斥锁(Mutex)是用于线程同步的重要工具,用于保护共享资源,防止多线程同时访问导致的数据竞争(Data Race)问题。合理选择互斥锁类型能有效提升代码的安全性和性能。自动管理锁,避免手动。
2025-05-12 10:46:07
274
原创 【C++】std::list 和 std::vector的区别
扩容时会重新分配更大的内存块,并复制原有元素(性能开销较大)。内存分散,每个节点单独分配,无需预分配或扩容。但节点的指针会增加额外内存开销(每个元素需额外存储两个指针)。是两种常用的容器,它们分别基于不同的数据结构实现,适用于不同的场景。缺点:插入和删除操作(尤其是在中间或头部)效率较低(O(n)),可能需要移动大量元素。优点:支持常数时间的插入和删除操作(O(1)),无论位置如何。优点:支持高效的随机访问(时间复杂度 O(1))。缺点:随机访问效率低(O(n)),必须遍历链表。
2025-05-09 12:01:18
832
原创 【基础知识】常见的计算公式(二)
I²C 工作在快速模式,时钟频率为 400kHz,则数据传输速率为 400kbps。根据 ADC 的转换结果和分辨率,可以计算出对应的模拟输入电压。ADC 的分辨率表示它能够分辨的最小模拟电压变化量。SPI 的数据传输速率取决于时钟频率和数据位宽。DAC 根据输入的数字量输出对应的模拟电压。I²C 的数据传输速率与时钟频率相关。
2025-04-30 15:07:35
322
原创 【基础知识】存储基础
在底层,擦除是将存储单元恢复到初始高电平状态,由于擦除操作的电压较高,为避免对其他单元造成干扰,只能对较大的扇区进行整体操作;写入是改变存储单元的电平状态,其操作电压相对较低,以页为单位写入既能保证效率,又能减少数据传输量。:如果是存储少量配置信息的场景,可选择小扇区、小页的 NOR Flash,减少擦写时间和资源浪费;若用于存储大量数据,如代码固件,可选择大扇区、大页的 NOR Flash,提高存储效率和整体性能。这种操作单位的差异,是在性能和寿命之间进行权衡的结果,满足了不同应用场景的需求。
2025-04-28 09:57:08
718
原创 编译问题libgazebo_ros_moveit_planning_scene.so问题
libgazebo_ros_moveit_planning_scene.so
2022-03-24 14:34:17
588
原创 嵌入式笔记-Makefile
Makefile标题内容编者炎芯随笔发布时间2020年8月28日11:05:17版本V-1.0#######################src = $(wildcard *.c)obj = $(src:%.c=%.o)INC += -I ../lib/slog/INC += -I ../lib/obex/INC += -I ../lib/rfcomm/libs += -lpthreadlibs += -lmlibs += -lopeno
2021-12-28 11:37:57
100
原创 嵌入式笔记-Qt5方法记录
Qt5方法记录1.环境的搭建2.环境问题记录2.1.中文乱码解决方法2.2 添加文件注释格式1.环境的搭建2.环境问题记录2.1.中文乱码解决方法先设置环境如下:在含有中文的文件中添加如下代码#if _MSC_VER >= 1600#pragma execution_character_set("utf-8")#endif2.2 添加文件注释格式...
2021-12-27 15:58:28
636
原创 嵌入式笔记-字符设备驱动源码分析
字符设备驱动源码分析主要数据结构file_operationsmiscdeviceplatform_device主要数据结构file_operations结构体 file_operations 在头文件 kernel-4.9/include/linux/fs.h 中声明如下struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int);
2021-12-27 15:57:11
122
原创 Linux驱动开发面试题整合
Linux 驱动常见面试及答案八个常见的Linux驱动面试题Linux驱动面试题总结嵌入式校招面试题BSP开发工程师面试笔试题集海康面试题面试题,详细BSP开发流程讲解
2021-12-27 15:54:26
3459
原创 华为MDC300之arxml配置(真香)
MMC配置说明参照在MMC中配置类型和服务即可,剩下的在拖拽模式中配置参考链接说明经过一路上的摸索,给我在华为官网摸到了一个好东西,参考文末的链接,快上车吧。参照在MMC中配置类型和服务即可,剩下的在拖拽模式中配置参考链接这个是华为官方的MDC310教学,太香了https://education.huaweicloud.com/courses/course-v1:HuaweiX+CBUCNXS018+Self-paced/about...
2021-12-23 17:03:39
1021
原创 华为MDC310之Can通信流程梳理
说明最近调试的can通信,接收的代码是没问题的,就是发送端一直不行,通过昨天的讨论,似乎有了一些新的思路,在这里梳理一遍。#mermaid-svg-vV4VsUcmDkRwiWVa .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-vV4VsUcmDkRwiWVa .label text{fill:#333}#
2021-12-22 14:10:12
1072
原创 华为MDC310 之Can通信配置canbus_config.json
MDC310通信配置canbus_config.json配置文件的作用配置文件的下发canbus_config.json把canbus_config.json文件拷贝,使用json格式查看[ { "key": "CanBusConfigList", "value": { "object[]": [ { "key": "object", "value": { "object[]": [
2021-12-22 10:10:48
1009
原创 Can总线调试之数据结构
Can总线调试在项目中需要调试can通讯,以此文总结整理参考文档https://blog.csdn.net/zhouyy858/article/details/100935648https://www.cnblogs.com/qiche/p/10344423.htmlcan总线合集
2021-12-22 09:23:46
1136
obex_recv_file.zip
2019-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人