STM32 通过软件模拟 I2C 驱动 24Cxx 系列存储器 [toc] I2C 相关知识可以参考 IIC 通信协议详解 一、AT24CXXX 系列存储器介绍1、基本信息下表是 AT24CXXX 的容量: AT24C01,AT24C02,AT24C04,AT24C08,AT24C16,AT24C32,AT24C64,AT24C128,AT24C256… 不同的 xxx 代表不同的容量。 AT24CXXX bit容量 Byte容量 AT2 2024-09-23 嵌入式 > STM32 #嵌入式 #STM32 #I2C
STM32 通过 SPI 驱动 W25Q128 [toc] 有关 SPI 的内容在 SPI 通信协议详解,不熟悉的可以参考一下 我使用设备的是 STM32F407 + W25Q128 一、STM32 SPI 框图 1、通讯引脚这四个引脚想必大家也很熟悉了,就不过多介绍。我是用的是 SPI1,引脚如下: SPI1 是 APB2 总线上的设备,最高通信速率达 42Mbtis/s。 如下是 W25Q128 的引脚图: 所以连接方式为: 1 2024-09-21 嵌入式 > STM32 #嵌入式 #STM32 #SPI
BLE 协议之链路层 [toc] 一、前言在 BLE 协议之物理层 一文中,我简单介绍了 BLE 的物理层。接下来就是链路层(Link Layer)了,它主要的功能,就是在这些 Physical Channel 上收发数据,与此同时,不可避免的需要控制 RF 收发相关的参数。除此之外,还要做到以下几个功能: 通道共享 : Physical Layer 仅仅提供了有限的 40 个 Physical Channel 2024-09-20 通信协议 > BLE #通信协议 #BLE
STM32 芯片启动过程 @toc 一、前言下面主要讲解从上电复位到 main 函数的过程。主要有以下步骤: 初始化堆栈指针:SP = __initial_sp、PC = Reset_Handler 初始化中断向量表 配置系统时钟 调用 C 库函数 _main 初始化用户堆栈,然后进入 main 函数 二、STM32 的启动模式启动模式决定了中断向量表的位置,STM32 有三种启动模式: 主闪存存储器启动:从 ST 2024-09-18 嵌入式 > STM32 #嵌入式 #STM32
BLE 协议之物理层 @toc 一、概述 物理层(Physical Layer)是 BLE 协议栈最·底层,它规定了 BLE 通信的基础射频参数,包括信号频率、调制方案等。 BLE 工作频率是 2.4GHz,它使用 GFSK 频率调制,并使用跳频机制来解决频道拥挤问题。 BLE 5 的物理层有三种实现方案,分别是: 1M Sym/s 的无编码物理层 2M Sym/s 的无编码物理层 1M Sy 2024-09-17 通信协议 > BLE #通信协议 #BLE
结构体内存对齐 [toc] 一、什么是结构体内存对齐进入讲解前,先看一段 C 代码: 1234567891011struct Node1 { int a; char b; char c;} node1[1024];struct Node2 { char b; int a; char c;} node2[1024]; 思考一下 nod 2024-09-16 嵌入式 #嵌入式 #内存对齐
MQTT 协议概述 @toc 一、概述MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在 1999 年发布,并于 2013 年发布为开放标准。MQTT 协议专注于在低带宽、不稳定或高延迟的网络环境中,可靠地传输小型数据 2024-09-12 通信协议 #通信协议 #MQTT
Linux 下 C/C++ 程序编译的过程 [toc] 本文将介绍如何将 C/C++ 语言编写的程序转换成为处理器能够执行的二进制代码的过程,包括四个步骤:预处理(Preprocessing)编译(Compilation)汇编(Assembly)链接(Linking)。 在此之前,首先来看一下 GCC 工具链。 一、GCC 工具链GCC 是 GUN Compiler Collection 的简称,是 Linux 系统上常用的编 2024-09-08 Linux #Linux #编译
FreeRTOS 队列 Queue 源码解析 [toc] 在 FreeRTOS 快速入门(四)之队列 一文中,我简单地叙述了 FreeRTOS 中队列的工作机制和基本使用。这一节我将依据 FreeRTOS V10.4.3 的源码深入地去探究队列是如何实现的。学好队列对我们后续学习信号量等知识的时候有很大的帮助。 一、队列1、队列结构体队列结构体定义在目录 queue.c 下: 12345678910111213141516171819202 2024-09-06 嵌入式 > FreeRTOS #嵌入式 #FreeRTOS
ELF 文件格式 @toc 一、概述ELF(Executable and Linkable Format)是一种常用的可执行文件和可链接库格式。它是一种通用的二进制文件格式,用于在 Unix 和类 Unix 系统上进行可执行文件和库的存储和传输。 二、种类ELF文件主要有四种类型 可执行文件(Executable File):包含可执行的机器代码,可以直接在操作系统中运行。 可重定位文件(Relocatable 2024-09-05 Linux #Linux #ELF