
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文是一篇面向初学者的CAN总线学习笔记,详细介绍了CAN总线的基础知识和STM32开发实践。首先解释了CAN总线的基本概念、两种国际标准(ISO-11898高速CAN和ISO-11519低速CAN)及其应用场景。重点讲解了CAN总线的6大核心特点,包括多主控制、错误处理能力和非破坏性仲裁等。文章深入解析了CAN总线的物理层电平逻辑、数据帧结构、总线仲裁机制和位时序原理。最后提供了STM32 bx
本文探讨了FreeRTOS实时操作系统中的优先级继承机制。当多个任务共享资源时,使用二值信号量可能导致优先级翻转问题,即高优先级任务因等待低优先级任务释放资源而被中优先级任务抢占。优先级继承机制通过临时提升持有互斥量的低优先级任务优先级来解决这一问题,确保高优先级任务尽快执行。文章详细分析了同步与互斥概念、信号量与互斥量的区别,并通过代码示例展示了使用二值信号量时的优先级翻转现象和使用互斥量时的优
本文系统介绍了RS485通信和Modbus协议的技术要点及STM32实现方案。主要内容包括:1)通信层级划分:物理层(RS485差分传输)、数据链路层(串口UART帧格式)和应用层(Modbus协议);2)RS485核心特性:差分传输、SP3485收发芯片控制及EN引脚切换注意事项;3)Modbus协议详解:4种数据模型、常用功能码、RTU帧格式及03功能码请求/响应流程;4)STM32主从机实现
FreeRTOS提供了事件组和任务通知两种任务通信机制。事件组采用广播模式,支持32位事件标志,通过位操作实现多任务同步,适合"与/或"条件等待场景。任务通知则是高效的点对点通信,直接利用TCB存储空间,提供五种通知方式(设置位、递增、覆写等),具有零内存分配和极低开销优势。源码分析显示,事件组通过EventGroup_t结构体管理事件位和等待链表,任务通知则通过TCB中的通知
本文摘要: Linux系统提供了多种进程间通信(IPC)机制,主要包括: 无名管道(Pipe):仅限亲缘进程间通信,半双工,使用read/write操作内核缓冲区 命名管道(FIFO):通过文件系统节点实现任意进程通信,需mkfifo创建 标准流管道:封装管道创建与进程替换,通过popen/pclose和标准IO操作 其他IPC方式:消息队列、共享内存、信号量集等 关键区别: 无名管道无文件节点,
本文摘要: 文件IO与标准IO操作指南对比了Linux系统调用级IO和C标准库IO的核心特性。文件IO(低级IO)使用文件描述符,无缓冲区,适用于所有文件类型但效率较低;标准IO(高级IO)使用流指针,具有缓冲区机制,效率更高但仅适用于普通文件。文章详细介绍了两种IO的操作流程、核心API及注意事项,包括文件打开/关闭、读写操作、光标控制等关键函数,并重点分析了缓冲区机制差异和使用场景选择建议。最
本文是一篇Git零基础入门教程,面向Linux环境开发者,详细讲解Git的核心原理和完整使用流程。文章首先介绍Git的三大核心价值:多人协作开发、版本回溯管理、多端安全存储。然后分步骤指导环境搭建,包括Gitee远程仓库创建、Git工具安装、SSH密钥配置等。核心部分系统讲解Git工作流程和常用命令:从仓库初始化(git init)、文件跟踪(git add)、版本提交(git commit),到

本文是一篇MySQL全栈入门实战教程,涵盖从基础概念到实际开发的完整流程。主要内容包括: 数据库基础概念解析,包括数据库、表、字段等核心概念 Ubuntu环境下MySQL安装配置全流程 MySQL终端操作指南,包括用户管理、数据库操作、表操作等 表的增删改查完整示例 局域网远程连接MySQL的配置方法 C语言API开发详解,包含核心函数说明和完整示例代码 教程适用于零基础学习者,所有命令和代码均经
本文详细介绍了在RK3399开发板上从零实现GT911电容触摸屏驱动的全过程。文章首先讲解了硬件连接和开发环境准备,重点强调了禁用内核自带驱动的重要性。核心部分包括GT911的上电复位时序、寄存器操作原理,以及完整的I2C通信封装实现。通过分步解析驱动框架、中断处理、坐标上报等关键代码,提供了可直接使用的完整驱动实现方案。文中还包含设备树配置、编译测试方法,以及常见问题的排查指南。该驱动支持5点触
在嵌入式 Linux 开发中,音视频播放是非常常见的需求,比如广告机、工业触摸屏、智能家居中控等场景。MPlayer 作为一款轻量级、开源、跨平台的多媒体播放器,对硬件资源要求低,支持几乎所有主流音视频格式,是嵌入式平台的首选方案。本文基于 RK3399 开发板(NanoPC-T4/SOM-RK3399 通用),从零环境搭建开始,一步步讲解 MPlayer 的基础使用、核心 Slave 模式编程控







