logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

72.嵌入式C语言进阶:结构体指针实战指南——STM32外设、传感器数据访问的高效技巧

本文介绍了C语言中结构体指针的概念、语法规则及嵌入式开发中的实战应用。结构体指针用于存储结构体变量的内存地址,通过->操作符访问成员,相比直接传递结构体能节省内存、提高访问效率。文章通过基础代码示例展示了指针使用方式,并重点解析了在STM32寄存器访问、传感器数据处理和设备参数管理等嵌入式场景中的实际应用。同时提醒了使用时的注意事项,包括必须绑定地址、避免野指针和字节对齐等问题。结构体指针是

文章图片
#c语言#开发语言#单片机 +2
69.STM32中断里printf,为什么会越调越卡?

文章摘要 本文针对STM32开发中在中断服务函数(ISR)直接调用printf导致系统卡顿的问题展开分析。printf因涉及字符串格式化、库函数锁和串口等待等耗时操作,严重破坏中断“快进快出”原则,引发实时性崩溃、重入风险及调试恶化。作者提出核心原则:中断仅置标志位或存数据,主循环处理打印,并给出标志位法和环形缓冲区+DMA的代码示例。最后强调中断应避免慢操作(如printf、malloc),优先

文章图片
#stm32#单片机#嵌入式硬件 +1
68.嵌入式 C 语言避坑指南:volatile 关键字 —— 单片机中断、寄存器访问的核心技巧

本文深入解析嵌入式开发中volatile关键字的核心作用与实战应用。volatile作为C语言类型修饰符,强制编译器每次访问变量时都从内存读取最新值,避免寄存器缓存导致的程序错误。文章通过典型场景分析其必要性:1)中断标志位处理;2)硬件寄存器访问;3)多任务共享变量。结合STM32和FreeRTOS实例,演示了volatile在中断服务函数、串口接收、任务通信等场景的具体用法,并强调使用时要避免

文章图片
#c语言#单片机#开发语言 +2
67.嵌入式C语言进阶:结构体指针实战指南——STM32外设、传感器数据访问的高效技巧

本文介绍了结构体指针在嵌入式C语言中的应用。结构体指针通过存储结构体变量的内存地址,可直接访问成员,节省内存空间并提高效率。文章详细讲解了结构体指针的语法规则(使用->访问成员)、基础示例代码,并分析了其核心优势。重点展示了三个嵌入式开发实战场景:STM32外设寄存器访问、传感器数据处理和设备参数管理。最后强调了使用注意事项,包括必须绑定地址、避免野指针和字节对齐问题。结构体指针是提升嵌入式

文章图片
#c语言#开发语言#单片机 +1
2.从洗澡调水温到工业控制:PID算法之积分控制(I)深度解析与代码实现

摘要: 积分控制通过累积历史误差消除系统余差,核心公式为$$u=K_i\times\int e,dt$$。与比例控制(P)的即时响应不同,积分(I)通过持续纠偏实现零误差,但存在积分饱和风险——误差长期存在时积分值无限累积,导致超调。解决方案是设置积分限幅(Anti-Windup)。对比纯P控制(有稳态误差)和PI控制(无误差),后者结合了快速响应与精准调节。文中提供了基于STM32的嵌入式C语言

文章图片
#算法#c语言#单片机 +2
61.嵌入式OTA远程升级:原理、流程与实战代码

摘要:OTA(空中升级)是一套完整的固件远程升级方案,包含云端固件管理、设备端接收校验、安全切换等全流程。其核心在于Bootloader引导程序、Flash分区管理和异常回滚机制,通过四步流程实现:无线接收固件→存储到备用分区→完整性校验(CRC/MD5/SHA)→重启切换。关键点包括固件分块校验、升级标志位设计、硬件/软件CRC校验方案选择,以及异常时自动回滚旧版本的防变砖机制。文中提供了STM

文章图片
#c语言#开发语言#单片机 +1
14.寄存器操作为何离不开 volatile?嵌入式开发的关键约束

摘要:volatile关键字在嵌入式开发中至关重要,用于确保编译器不优化对硬件寄存器和共享变量的访问。硬件寄存器的值可能被外部事件随时改变,若无volatile,编译器可能缓存读取结果,导致程序无法感知实时状态。典型应用场景包括内存映射寄存器、中断共享变量及多核并行访问。但需注意,volatile不保证原子性或操作顺序,需结合关中断或内存屏障。开发时应避免滥用,仅用于必要场景,同时区分其与锁/原子

文章图片
#单片机#c语言#stm32 +1
2. ROS2 安装方法

本文介绍了在虚拟机中安装Ubuntu系统及ROS2的详细步骤。首先通过VMware创建Ubuntu虚拟机并完成系统安装,然后配置语言环境为UTF-8。接着添加ROS2软件源,安装核心包(推荐ros-humble-desktop)并配置环境变量。最后安装开发工具并运行demo_nodes测试验证安装是否成功。文章还提及了Windows、macOS和Docker等其他平台的安装方式,建议参考ROS2官

文章图片
#学习#linux#物联网
47.嵌入式C内存对齐:结构体成员顺序如何省下40%内存

内存对齐是提升处理器访问效率的关键机制,要求数据按特定边界存储(如4字节数据从4的倍数地址开始)。结构体成员间会自动填充"空洞"以保证对齐,导致实际占用空间大于成员总和。优化结构体布局时,应将大成员靠前排列,小成员集中放置。实验显示,调整顺序可使示例结构体从20字节缩减到12字节,内存利用率从55%提升至91.7%。不同芯片对非对齐访问的支持差异大(如ESP32严格、STM32

文章图片
#c语言#java#前端 +4
3.揭秘C语言指针:不是玄学,只是地址与类型的游戏

本文系统讲解了指针的核心概念与应用:指针本质是存储内存地址的变量,通过&和*操作符进行地址获取与解引用。指针类型决定数据解释方式,在嵌入式开发中常用于寄存器映射、动态内存管理和协议处理。文章重点剖析了野指针和越界访问等风险及规避方法,推荐通过画内存图和调试观察来理解指针。同时解析了指针与数组的关系、多级指针及函数指针的用法,强调指针是精确控制内存的重要工具。掌握这些原则可有效提升对指针的认

文章图片
#c语言#开发语言#单片机
    共 18 条
  • 1
  • 2
  • 请选择