ESP32-IDF 通用定时器 GPTimer @toc 一、基本介绍1、配置结构体1.1 gptimer_config_t1234567891011121314typedef struct { gptimer_clock_source_t clk_src; /*!< GPTimer clock source */ gptimer_count_direction_t direction; /*!< 2024-10-19 嵌入式 > ESP32 #嵌入式 #ESP32
ESP32-IDF USART 专题 @toc 第一节主要介绍 ESP32-IDF 相关 API,在第二节介绍如何在 ESP32 上使用 USART,第三节为实例演示。 一、基本介绍 API 参考路径 esp-idf/components/esp_driver_uart/include/driver/uart.h。 1、配置结构体1.1 uart_config_t1234567891011121314typedef struc 2024-10-18 嵌入式 > ESP32 #嵌入式 #ESP32
ESP32-IDF GPIO 专题 [toc] 一、基本介绍 API 参考路径 esp-idf/components/esp_driver_gpio/include/driver/gpio.h。 ESP-IDF 由多个组件组成,组件中包含专门为 ESP 芯片编写的代码或第三方库(即第三方组件)。对于某些第三方库,ESP-IDF 提供专用的包装器和接口,以简化对第三方库的使用,或提高其与 ESP-IDF 其他功能的兼容性。某些情况 2024-10-17 嵌入式 > ESP32 #嵌入式 #ESP32
CMake 教程(三)添加库的使用要求 @toc 一、实例——添加库的使用要求目标参数的使用要求可以更好地控制库或可执行文件的链接和包含行,同时还能在 CMake 内部更好地控制目标的传递属性。利用使用要求的主要命令有: target_compile_definitions() target_compile_options() target_include_directories() target_link_directories() 2024-10-16 工具 > CMake #CMake #工具
CMake 教程(二)添加库 @toc 在第一节 CMake 教程(一)初识 CMake 中,我们已经了解和实现了通过 CMake 来创建一个基本项目。本节我们将通过两个实例来学习如何在项目中创建和使用库。 一、实例一——创建库1、add_library要在 CMake 中添加库,就需要使用 add_library 命令来指定哪些源文件应组成库。 1add_library(<name> [<type> 2024-10-15 工具 > CMake #CMake #工具
CMake 教程(一)初识 CMake [toc] CMake 是个一个开源的跨平台自动化建构系统,用来管理软件建置的程序,并不依赖于某特定编译器,并可支持多层目录、多个应用程序与多个函数库。 CMake 通过使用简单的配置文件 CMakeLists.txt,自动生成不同平台的构建文件(如 Makefile、Ninja 构建文件、Visual Studio 工程文件等),简化了项目的编译和构建过程。 CMake 本身不是构建工具,而是 2024-10-14 工具 > CMake #CMake #工具
Cortex-M 内核的 OS 特性 @toc 一、通用堆栈知识在前面讲解 STM32 启动文件的时候就已经提到过,有关堆栈大小的设置是在启动文件中设置的: Heap 主要用于 Malloc、Free,动态内存申请和释放。 Stack 也非常重要,程序编译后所包含的大量 PUSH 和 POP 指令操作,系统根据 SP(堆栈指针) 寄存器访问当前对应栈内存,通过栈保存临时数据。大部分的栈都是向下生长的(也有向上生长的)。M 内核的栈 2024-10-13 嵌入式 > STM32 #嵌入式 #STM32
DMA 详解 [toc] 一、简介DMA(Direct Memory Access,直接存储器访问)顾名思义,就是绕开 CPU 直接访问 Memory。在计算机中,相比 CPU,Memory 和外设的速度是非常慢的,因而在 Memory 和 Memory (或者 Memory 和外设)之间搬运数据,非常浪费 CPU 的时间,造成 CPU 无法及时处理一些实时事件。因此,工程师们就设计出来一种专门用来搬运数据的 2024-10-10 嵌入式 > STM32 #嵌入式 #STM32
STM32 位带操作 [toc] 一、简介如果你学过 51,是否还记得你是如何点亮的 led?很简单,见下: 12sbit LED1 = P2^0; // 控制到 P2.0 脚LED1 = 0; // 输出一个低电平 通过简单的两句话就可以点亮一个 led 了。这就是位带(Bit-banding)操作,支持位带操作后,可以使用普通的加载/存储指令来对==单一的比特== 2024-10-08 嵌入式 > STM32 #嵌入式 #STM32
Cortex-M3/M4/M7 芯片 Fault 分析原理与实战 [toc] 一、简介1、异常类型HardFault(硬件错误)是一类在嵌入式系统开发中较为常见的系统异常,优先级仅低于复位和 NMI(不可屏蔽中断)。当系统运行过程中遇到了某些错误时程序就会跳转至 HardFault_Handler 函数中,引发程序故障进而影响程序的正常运行。 一般而言,我们遇到的错误有如下几种: HardFault(硬件故障):默认异常,由于异常处理过程中的错误或由于任何其 2024-10-07 嵌入式 > STM32 #嵌入式 #STM32