- 博客(40)
- 收藏
- 关注
原创 Keil中 L6406E: No space in execution regions with .ANY selector matching heap_4.o(.bss) 错误分析简述
当然,具体也可能由于以下原因,需要再分析。表明内存分配已超出预期范围,通常与。
2025-06-10 18:07:02
886
原创 触发DMA传输错误中断问题排查
通过检查DMA配置一致性、分析中断优先级、验证缓冲区访问、调试错误标志,并进行最小化冲突测试,可以定位并解决集成BLE模块后触发的DMA传输错误。核心原则是确保DMA传输的独立性和数据处理的同步性,避免资源竞争和配置冲突。:在访问DMA缓冲区的代码段(如原有线程和BLE回调)中添加互斥锁。结构体),确认关键参数(传输方向、缓冲区地址、中断使能)未被修改。在STM32项目中,集成BLE模块后触发DMA传输错误中断(:若使用中断嵌套,确保DMA中断的抢占优先级足够高。)的优先级高于或等于BLE模块的中断。
2025-06-09 23:58:20
497
原创 定位触发DMA2_Stream1_IRQHandler中断的具体原因简述
通过检查DMA配置、在中断服务例程中添加日志、使用调试器检查寄存器、验证外设交互代码,并进行最小化测试,可以定位触发。核心原则是结合代码逻辑和硬件状态,逐步缩小问题范围,最终定位触发中断的源头。中断的具体原因,需结合代码分析、寄存器检查和调试工具。:确认在DMA初始化代码中是否启用了非预期的中断。在STM32项目中,若需定位触发。
2025-06-09 23:30:29
438
原创 GPIO(通用输入输出)与LPUART(低功耗通用异步收发传输器)简述
LPUART支持DMA和硬件FIFO,可减轻CPU负担,适用于高速数据传输(如日志记录、传感器数据采集)。LPUART可在MCU停止模式下以极低功耗捕获数据帧,适用于电池供电设备(如智能手表、传感器节点)。通过合理配置,可实现低功耗、高可靠的串口通信,适用于物联网、可穿戴设备等场景。
2025-06-09 22:26:22
522
原创 TTL简述
高电平(逻辑1):电压范围通常为2.4V~5V(具体取决于电源电压,STM32常用3.3V系统,对应高电平为3.3V)。低电平(逻辑0):电压范围通常为0V~0.4V。
2025-06-07 12:28:16
517
原创 STM32的系统滴答定时器简述
通过合理配置SysTick,可显著提升STM32应用的实时性与任务管理效率,是嵌入式开发中的核心组件之一。STM32的系统滴答定时器(SysTick)是。,核心作用是为操作系统或应用程序提供。
2025-06-07 11:06:12
523
原创 C++11实现TCP网络通讯服务端处理逻辑简化版
该实现能够有效处理TCP粘包问题,确保完整数据包的接收和处理,适用于需要固定长度数据包传输的场景。
2025-06-05 09:01:18
341
原创 网络通讯服务端接收数据循环处理逻辑简单版
/ 如果帧头不匹配,则丢弃第一个字节,继续检查。// 这里可以调用业务层处理函数。// 从缓冲区中移除已处理的数据。// 连接关闭或出错。// 处理完整的一帧数据。// 将读取的数据追加到缓冲区。// 循环处理缓冲区中的数据。// 创建socket文件描述符。// 绑定socket到端口。// 设置socket选项。
2025-06-05 08:46:41
245
原创 C++网络通信:TCP数据包的发送与接收编程
在C++中实现TCP网络通信涉及创建客户端和服务端程序,以实现数据的发送和接收。• 协议设计:在实际应用中,可能需要设计一个简单的协议来管理数据的发送和接收,尤其是在需要处理复杂数据包时。• 多线程:如果需要同时处理多个客户端连接,可以考虑使用多线程或非阻塞I/O。• 错误处理:在实际应用中,应该增加更多的错误处理代码,以确保程序的鲁棒性。• 循环读取客户端发送的数据,并发送响应。// 读取客户端发送的数据。// 创建socket文件描述符。// 绑定socket到端口。// 创建socket。
2025-06-05 08:02:51
408
原创 GPIO(通用输入输出接口)简述
GPIO(General Purpose Input/Output)是微控制器、单片机或嵌入式系统中一类可编程配置的引脚,其核心功能是通过软件控制实现数字信号的输入或输出。
2025-06-02 21:18:36
351
原创 STM32H7上移植SEGGER的硬件异常分析简述
在STM32H7上移植SEGGER的硬件异常分析功能(如通过J-Link或SystemView捕获HardFault等异常),需结合ARM Cortex-M7内核特性和SEGGER工具链。在STM32H7上移植SEGGER的硬件异常分析功能,其核心作用是。
2025-06-01 09:44:05
931
原创 ARM架构简述
其成功源于对低功耗、高能效的极致追求,以及通过IP授权构建的开放生态。从智能手机到数据中心,ARM正重新定义计算产业的能效边界,成为AI时代无处不在的计算基石。,通过简化指令集、优化硬件复杂度,实现每瓦特性能的最大化。的处理器架构,由英国ARM公司(现属软银集团)设计。ARM(Advanced RISC Machine)是一种基于。ARM架构并非传统意义上的“操作系统”,而是一种。
2025-05-28 23:26:53
257
原创 RAM与ROM
其成功源于对低功耗、高能效的极致追求,以及通过IP授权构建的开放生态。从智能手机到数据中心,ARM正重新定义计算产业的能效边界,成为AI时代无处不在的计算基石。,通过简化指令集、优化硬件复杂度,实现每瓦特性能的最大化。的处理器架构,由英国ARM公司(现属软银集团)设计。ARM(Advanced RISC Machine)是一种基于。ARM架构并非传统意义上的“操作系统”,而是一种。
2025-05-28 23:14:54
387
原创 STM32F103C8Tx开发板简介
适用于简单控制、传感器数据处理等场景。如需运行RTOS或复杂协议栈,建议选择更大容量的型号。STM32F103C8Tx开发板配置为。
2025-05-28 23:10:29
396
原创 SPI工作原理简述
SPI(Serial Peripheral Interface,串行外设接口)是一种高速、全双工、同步的通信总线,常用于在嵌入式系统中连接微控制器(如STM32)与各种外设(如传感器、存储器等)。
2025-05-27 14:52:56
411
原创 stm32cubemx配置
通过查阅主控芯片(如MCU或SoC)的官方数据手册,SPI引脚功能会明确标注。以STM32为例,数据手册中会列出引脚定义表,标注MISO(主控输入)和MOSI(主控输出)对应的物理引脚。主控SPI的输出引脚(MOSI)通常连接从设备的输入引脚,而主控的输入引脚(MISO)连接从设备的输出引脚。注意:部分芯片的SPI引脚可能复用其他功能,需结合软件配置综合判断。判断SPI接口的主控引脚(输入/输出)通常需要结合硬件设计文档、芯片手册以及信号特性分析。输入引脚通常呈现高阻抗,输出引脚为低阻抗。
2025-05-26 23:44:03
871
原创 w5500网络模块与h743板卡的连接
从上述电路图来看,图中最下方明确直接标注出专门用于外部设备GND连接的特定引脚(通常在原理图里GND会用专门的接地符号表示,且网络名称一般为GND )。
2025-05-25 23:41:10
406
原创 DMB中断处理函数
综上所述,DMA中断处理函数需要开发者手动编写,并通过与中断向量表中的对应项关联来实现中断处理。当DMA硬件满足中断触发条件时,中断会自动触发并执行相应的中断处理函数。是开发者手写的DMA中断处理函数,当DMA2的Stream1触发中断时,该函数会被自动调用。
2025-05-25 23:29:30
293
原创 QT开发问题总结20220913
QObject::moveToThread 、std::thread的使用实例;QtCreator msvc汉字乱码问题
2022-09-13 17:34:06
166
原创 pcap、libnet编译使用、注意事项
pcap模块兼容win、linux平台。libnet模块兼容win、linux平台。安装winpcap.exe生成的WpdPack目录下保存有x86、x64不同版本的Packet.lib wpcap.lib 可引用后在MSVC2017编译器下正常使用;直接安装wireshark也会产生相应文件。此文件见附件,程序见。安装笔记本安装x86架构麒麟系统。./confiureMakeMake install中间有报错,基本就是缺的依赖库,命令行安装即可。具体动态库进度:解决-步...
2022-06-23 09:41:49
604
原创 进程、内联函数、操作系统、C++等学习
1、进程从运行状态进入就绪状态的原因可能是时间片用完。2、在可变式分区分配方案中,将空白区在空白区表中按地址递增次序排列是最先适应算法3、在MySQL中Replace在相同的主键或者唯一键的时候相当于Delete+Insert操作;4、宏定义和内联函数的区别及应用?编译器把内联函数展开,inline关键字的声明要与函数定义放在一个文件才起作用。而且声明为inline的函数编译器也不一定 将其展开。预编译器就是预处理器,进行宏展开。5、在计算机操作系统中信号量可以用来保证两个或多个关键代码
2022-04-21 10:54:14
963
原创 C++ 基础温习记录20201228
一、static作用1、隐藏A类中定义的全局变量,如果不加static,在B类中包含A类头文件,则可以通过extern调用A类中的变量2、保持变量内容的持久存储在静态数据区的变量会在程序刚开始运行时完成初始化,也是唯一的一次初始化。3、默认初始化为0二、__stdcall三、extern "C" __declspec(dllexport)...
2020-12-28 17:04:50
95
原创 C++基本语法温习1
const重载底层实现(name mangling)extern "C"操作符重载默认参数(default parameters)引用 C++中引入引用后,可以用引用解决的问题。避免用指针来解决new/delete
2020-09-22 17:19:45
114
原创 QtConcurrent、processEvents、多线程学习
1、QtConcurrent的使用异步调用其它类的方法。比如://参数1:类对象地址 参数2、类方法地址 参数3、参数QtConcurrent::run(mTest,&Test::TestData,data);2、QCoreApplication::processEvents()的使用处理等待事件时调用。当要执行的事件太耗时时,调用,把控制权交给QT处理其它当前线程待处理的事件。while(1){qDebug() << "++=0";QCo..
2020-08-31 19:46:06
753
原创 xshell新建连接Ubuntu系统
1、新建连接输入被连接主机、用户名(本次使用的root)、密码1.1 连接失败:原因Ubuntu未安装ssh服务安装参考链接:https://www.cnblogs.com/jiarenanhao/p/9938280.html1.2 密码被拒绝错误:原因应该和root用户有关,修改配置文件vim /etc/ssh/sshd_config修改为:PremitRootLogin yes...
2020-08-18 13:06:11
173
原创 项目开发 实验室测试
背景: 测试人员对软件项目开始进行测试。此过程中,我配合测试人员测试的同时,完善功能点,并进行和设备相关的自测以及各功能流程测试。 原来没有项目管理的经验,正在学习项目管理相关的理论知识,通过此项目的完成,真正提高自己的项目开发、项目管理能力。正文: BUG修复感受: 项目开始进入测试阶段,应该直面,测试人员提出的任何问题。我认
2016-05-13 18:20:05
589
原创 第一天 感悟
一、 背景: 公司午饭后,休息时间,注册了CSDN账号,开通了博客。搜索了篇开发人员写的博客(Book Book, Come In目的了解为什么写、如何写博客),引用文章作者的部分观点。目前,我写博客的原因也归结两点: ❶提升自我:包括技术提升;提高工作效率;文字归纳、抽象、概括等。 ❷展示自我:让别人了解我。二、计划
2016-05-11 12:18:12
563
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人