技术栈
嵌入式
梵刹古音
8 小时前
c语言
·
开发语言
·
嵌入式
【C语言】 浮点型(实型)变量
浮点型(Floating Point Type)是C语言中用于表示实数的数据类型。实数包括整数、小数以及科学计数法表示的数,例如:
良许Linux
11 小时前
后端
·
stm32
·
单片机
·
程序员
·
嵌入式
DSP的选型和应用
大家好,我是良许。在嵌入式开发领域,DSP(Digital Signal Processor,数字信号处理器)是一类专门用于高速数字信号处理的微处理器。
余生皆假期-
13 小时前
单片机
·
嵌入式硬件
·
嵌入式
永磁同步电机下桥三电阻采样方式的电机电流重构方法
在某些应用场景如空调,电动自行车,水泵等,因为成本的关系,通常使用基于下桥的三相电阻采样方案,此时只有下桥开通时才有电流流过检流电阻,因此只有在下桥开通时才能采样到有效电流。
切糕师学AI
1 天前
arm开发
·
单片机
·
嵌入式
·
复位
ARM 架构中的复位(Reset)与复位流程
复位(Reset)是ARM处理器从初始状态开始执行的硬件机制,确保系统从一个已知的、确定的状态启动。复位会将处理器核心、外设和系统恢复到预定义的状态。
梵刹古音
1 天前
c语言
·
开发语言
·
嵌入式
【C语言】 格式控制符与输入输出函数
格式控制符是C语言输入输出函数中的关键组成部分,用于指定数据的输入输出格式。它们与变量的存储类型密切相关,确保数据在内存与外部设备间正确转换。
嵌入小生007
2 天前
linux
·
c语言
·
数据结构
·
链表
·
嵌入式
·
小白
双向链表、双向循环链表之间的异同---嵌入式入门---Linux
在掌握单向链表之后,我们迎来了链表的进阶形态——双向链表和双向循环链表。这三种数据结构虽然血脉相连,但在实现细节和应用场景上各有千秋。本文将带你深入探索这些数据结构的精髓,通过对比分析,让你不仅知其然,更知其所以然。
CQ_YM
2 天前
arm开发
·
单片机
·
嵌入式硬件
·
嵌入式
ARM之I2C
I2C 总线摒弃了传统通信的片选线设计,仅通过两根双向信号线实现所有挂载设备的通信,硬件连接极致简化,也是其在嵌入式领域普及的核心原因:
梵刹古音
2 天前
c语言
·
开发语言
·
嵌入式
【C语言】 字符型变量
字符型(Character Type)是C语言中用于存储单个字符的基本数据类型。在C语言中,字符被视为一种特殊的整数,每个字符都对应一个特定的整数值,这种对应关系由ASCII编码(美国信息交换标准代码)或其他字符集(如扩展ASCII、Unicode等)定义。
2401_85904908
2 天前
linux
·
运维
·
arm开发
·
elasticsearch
·
嵌入式
·
ubantu
lvgl移植到Linux踩坑
按照这个https://github.com/lvgl/lv_port_linux/tree/release/v9.2#
嵌入小生007
2 天前
linux
·
开发语言
·
数据结构
·
算法
·
链表
·
嵌入式
单向链表的常用操作方法---嵌入式入门---Linux
在上一次为大家讲解了什么是数据结构,以及讲述了一些单向链表的操作,今天将把单向链表剩下的一些常见操作为大家讲述清楚。
Hello_Embed
3 天前
笔记
·
学习
·
嵌入式
·
freertos
·
modbus
libmodbus 源码分析(接收请求篇)
在上一篇笔记中,我们深入拆解了 libmodbus 主设备发送请求的完整源码流程,掌握了 Modbus 报文的构造、校验与发送逻辑。而 Modbus 通信是双向交互的,从设备的核心职责是接收主设备的请求报文、解析并执行对应操作、返回响应结果。本次笔记将聚焦 libmodbus 从设备接收请求的场景,拆解从初始化到报文接收、完整性校验的完整流程,重点解析核心接收函数与超时机制,帮助你完整掌握 libmodbus 的双向通信逻辑,为后续实现完整的 Modbus 主从通信打下基础。
Hello_Embed
4 天前
笔记
·
单片机
·
嵌入式
·
freertos
·
libmodbus
libmodbus 源码分析(发送请求篇)
在上一篇笔记中,我们完成了 libmodbus 库的介绍、源码获取与阅读工具的实操,为深入研读源码打下了基础。libmodbus 的核心价值在于封装了 Modbus 协议的底层细节,而发送请求是 Modbus 主设备的核心操作之一。本次笔记将以modbus_write_bits(写多个线圈)函数为例,拆解 libmodbus 发送请求的完整执行流程,深入解析每一步的源码逻辑与核心结构体作用,帮助你理解 libmodbus 的底层封装思路,为后续的二次开发与裸机移植提供理论支撑。
梵刹古音
4 天前
c语言
·
开发语言
·
嵌入式
【C语言】 定义变量
【理解】:C语言中,当定义变量语句被执行后,操作系统将会给变量分配空间。分配的空间大小由定义时采用的数据类型决定,每种数据类型对应的空间占用情况遵循规则: 1.如果是基本数据类型,占用固定空间,这个由C语言官方规定的。 2.如果是构造数据类型,则与构造方式有关。 3.如果是指针类型,占用4Byte(编译环境是32位) 或 8Byte(编译环境64位)。
CQ_YM
5 天前
arm开发
·
嵌入式硬件
·
嵌入式
·
arm
ARM之I2C与ADC
I2C 是由飞利浦半导体(现 NXP)开发的两线制串行通信协议,仅需 SDA(Serial Data,数据线)和 SCL(Serial Clock,时钟线)两根线即可实现多主从设备间的双向通信,配合上拉电阻(通常 4.7KΩ~10KΩ)即可完成硬件搭建,在传感器、EEPROM、LCD 显示屏等外设中应用极为广泛。
plmm烟酒僧
6 天前
嵌入式
·
lua
·
汽车电子
·
uds诊断
·
汽车诊断
·
can通信
·
诊断协议
使用 Lua 进行汽车 UDS 诊断:轻量级脚本化诊断新思路
在现代汽车电子系统中,统一诊断服务(Unified Diagnostic Services, UDS)已成为 ECU(电子控制单元)诊断与通信的标准协议。传统上,UDS 诊断多依赖于 C/C++、Python 或专用商业工具(如 CANoe、PCAN-View)。然而,随着嵌入式系统对轻量化和灵活性需求的提升,Lua——一种小巧、高效、可嵌入的脚本语言——正逐渐成为实现 UDS 诊断逻辑的新选择。
charlie114514191
6 天前
开发语言
·
c++
·
笔记
·
学习
·
嵌入式
现代嵌入式 C++——自定义删除器(Custom Deleter)
写嵌入式代码,常常遇到“资源不是 new 就是 delete”的假象世界。现实里,你可能得释放的不只是 new 出来的内存:外设句柄、MMIO 映射、DMA 缓冲、FILE*、socket、或者某个 C API 的 free()。这时候,C++ 的自定义删除器就像一个可靠的清道夫——把资源清理的细节藏到智能指针后面,让你把注意力放回功能实现。今天我们带着一点幽默(和大量实例)把这个话题讲清楚,顺带告诉你在内存受限的嵌入式环境下应该注意什么。
嵌入小生007
6 天前
linux
·
c语言
·
开发语言
·
嵌入式
·
小白
·
内存管理调试
·
程序错误调试
基于Linux系统下的C语言程序错误及常见内存问题调试方法教程(嵌入式-Linux-C语言)
学习完C语言的内容过后,我们在来学习下如何在程序运行报错的情况下怎么快速定位到代码错误的地方,之前也给大家讲过一种方法就是通过gbd进行调试,不知到各位友友还有印象没,没记住也没有关系,我们今天将在为大家温习一遍,及教各位怎么去处理常见的一些程序错误和内存错误问题,那我们开始吧!
Hello_Embed
7 天前
笔记
·
单片机
·
嵌入式
·
freertos
·
usb
USB 虚拟串口源码改造与 FreeRTOS 适配
在上一篇笔记中,我们完成了 USBX 组件的手工移植并实现了基础的 USB 虚拟串口功能,能够实现与 PC 端的简单数据收发。但原有源码的收发逻辑缺乏可靠的同步机制与数据缓存机制,在实际工程应用中容易出现数据丢失、发送超时无响应等问题。本次笔记将基于 FreeRTOS 的信号量与消息队列,对 USB 虚拟串口的源码进行改造,实现可靠的阻塞式发送与队列化接收,让 USB 串口功能更符合嵌入式工程的实战需求,同时夯实 FreeRTOS 与 USBX 结合使用的核心技巧。
LN花开富贵
8 天前
笔记
·
单片机
·
嵌入式硬件
·
学习
·
嵌入式
LM393的工作原理和引脚作用
LM393是一款双路、独立、高精度电压比较器。简单来说,它是一个“电压裁判”,专门负责比较两个输入电压的大小,并根据比较结果输出一个明确的数字信号(高电平或低电平)。
凉、介
8 天前
arm开发
·
笔记
·
学习
·
架构
·
操作系统
·
嵌入式
ARM 架构中的内存屏障
在现代 ARM 处理器中,由于乱序执行、多级缓存以及多核并发的存在,程序中“看起来按顺序执行”的内存访问,并不一定以相同顺序被系统中其他观察者看到。 内存屏障(Memory Barrier)正是用于显式约束这种重排行为,以保证程序的正确性和可预测性。