[已验证]基于HAL库可迁移通用gpio模拟I2C实现[已验证]基于HAL库可迁移通用gpio模拟I2C实现引言之前写过一版,但没有经过工程验证,而今年在实际工程领域确实要用到gpio模拟I2C的功能实现,我在原有的基础上调试,修复bug才有了今天这篇博客。下述源码已经过实际开发工程验证,可迁移使用。话不多说,在介绍一遍吧。。 I2C协议简介I2C是一种多主多从的串行通信协议,具有简单、灵活的优点。它使用两根信号线:SDA(数据线)和SCL(时钟线) 2024-10-23 stm32学习笔记 #gpio #i2c #gpio模拟i2c #stm32
使用 Bash 脚本绑定 IRQ 到指定 CPU使用 Bash 脚本绑定 IRQ 到指定 CPU在现代操作系统中,合理地管理中断请求(IRQ)可以显著提升系统性能。本文将介绍如何使用 Bash 脚本将特定的 IRQ 绑定到指定的 CPU,确保系统资源的高效利用。 脚本概述这个 Bash 脚本的功能是检查输入的 IRQ 号和 CPU 号,验证 IRQ 是否存在,并设置其 smp_affinity,以便将该中断分配给特定的 CPU。 脚本实现 参数 2024-10-23 Bash脚本 #中断 #irq #irq绑定cpu
使用STM32F407 GPIO模拟SMI时序对PHY设备进行读写配置使用STM32F407 GPIO模拟SMI时序对PHY设备进行读写配置在嵌入式系统中,常常需要通过SMI(Serial Management Interface)来配置PHY(Physical Layer Device)设备。SMI协议包括MDIO(Management Data Input/Output)和MDC(Management Data Clock)信号,通过这两个信号与PHY 2024-06-30 STM32 > SMI #STM32 #GPIO #SMI
使用 Rust 封装 UDP 和 TCP 套接字使用 Rust 封装 UDP 和 TCP 套接字摘要:在网络编程中,UDP 和 TCP 套接字是常用的通信方式。本文介绍了如何使用 Rust 语言封装 UDP 和 TCP 套接字,并提供了示例代码演示了如何发送和接收数据。 引言:Rust 是一种安全、并发、实用的系统编程语言,它提供了强大的网络编程能力。在网络编程中,UDP(User Datagram Protocol)和TCP(Transmis 2024-03-09 Rust语言 #UDP/TCP #Rust语言
基于Linux的GPIO工具类的实现原理基于Linux的GPIO工具类的实现原理导言:在嵌入式系统中,Linux提供了丰富的GPIO接口,用于与外部设备进行通信。为了方便在应用程序中控制GPIO,可以通过封装一个GPIO工具类来简化操作。本文将详细介绍基于Linux的GPIO工具类的实现原理,包括GPIO的导出、方向设置和值设置等基本操作。 GPIO工具类的原理在Linux系统中,GPIO被视为文件系统中的特殊文件,可以通过文件操作来控 2024-02-24 C++工具类 #gpio #C++工具类 #Linux
利用C++实现彩色打印类,助力通信协议调试利用C++实现彩色打印类,助力通信协议调试在软件开发过程中,调试是一个至关重要的环节。特别是在处理通信协议等涉及到复杂数据交互的场景下,清晰地标识特殊字段对于快速定位问题、排查错误至关重要。本文将介绍如何利用C++编程语言,实现一个彩色打印类,用于在调试过程中标识特殊字段,助力通信协议等功能的调试。 为什么需要彩色打印类?在调试通信协议等复杂软件场景中,经常会遇到需要区分不同类型信息的情况。例如, 2024-02-24 C++ #C++ #C++通用类 #调试
使用STM32的GPIO模拟I2C通信:从原理到实现使用STM32的GPIO模拟I2C通信:从原理到实现在嵌入式系统中,I2C(Inter-Integrated Circuit)是一种常用的串行通信协议,用于在芯片之间进行简单、高效的数据传输。然而,在某些情况下,由于外部设备或特定硬件限制,我们可能无法直接使用硬件I2C接口。在这种情况下,可以通过GPIO模拟I2C通信来实现相同的功能。本文将介绍GPIO模拟I2C通信的原理,并提供一个基于STM3 2024-02-23 STM32学习笔记 #STM32 #模拟I2C实现 #HAL库
嵌入式笔记:嵌入式系统中的实时操作系统(RTOS)与任务调度器嵌入式笔记:嵌入式系统中的实时操作系统(RTOS)与任务调度器一、引言 在当今高度数字化和智能化的世界中,嵌入式系统已经成为了各种电子设备的核心组成部分。从智能手机、汽车电子到工业控制系统,嵌入式系统无处不在。而在这些嵌入式系统中,实时操作系统(RTOS)扮演着至关重要的角色,它为系统提供了高效的任务管理和调度机制,确保系统能够在规定的时间内完成关键任务,满足实时性要求。本文将深入探讨嵌入式系统中 2023-09-20 嵌入式笔记 #笔记 #嵌入式
嵌入式笔记:嵌入式系统中的固件更新与版本控制嵌入式笔记:嵌入式系统中的固件更新与版本控制引言在嵌入式系统开发中,固件更新和版本控制是保证系统持续性能优化和问题修复的关键。本篇博客将介绍一些固件更新的方法和版本控制的实践原则,同时提供相应的业务代码示例。 固件更新方法1. 通过Bootloader更新使用一个独立于应用程序的Bootloader来负责固件更新的过程,确保在更新时不会影响系统正常运行。 2. 通过串口/网络更新允许通过 2023-09-20 嵌入式笔记 #笔记 #嵌入式
嵌入式笔记:嵌入式系统中的多任务管理与调度器设计嵌入式笔记:嵌入式系统中的多任务管理与调度器设计引言在嵌入式系统中,多任务管理和调度是保证系统高效运行的关键。本篇博客将介绍多任务管理的基本原则以及设计一个简单的任务调度器的方法,同时提供完善的业务代码示例。 多任务管理的基本原则1. 任务的设计与分解将复杂的任务分解成多个小任务,提高系统的响应速度。 2. 任务的优先级与调度根据任务的重要性和紧急程度设定任务的优先级,并合理调度任务的执行顺序。 2023-09-20 嵌入式笔记 #笔记 #嵌入式