作者:没志青年

STM32 代码优化

编译优化选项 利用 CCM 区域提升速度 使用条件: 单片机有 CCM 区域 (1) (2)宏定义

没志青年 没志青年 发布于 2025-08-02

串口数据处理

单缓冲区 + 接收中断 单缓冲区 + 空闲中断 双缓冲区 + 空闲中断

没志青年 没志青年 发布于 2025-08-02

32单片机 - 比较器

G4 COMP_HandleTypeDef hcomp1; void COMP1_Init(void) { hcomp1.Instance = COMP1; hcomp1.Init.InputPlus = COMP_INPUT_PLUS_IO1; // 比较器[+]输入端

没志青年 没志青年 发布于 2025-08-02

PID 算法

P I D

没志青年 没志青年 发布于 2025-08-02

Linux 内核定时器

时钟中断 硬件有一个时钟装置,该装置每隔一定时间发出一个时钟中断(称为一次时钟嘀嗒(tick)),对应的中断处理程序就将全局变量jiffies_64加1 jiffies_64 是一个全局64位整型, jiffies全局变量为其低32位的全局变量,程序中一般用jiffies HZ:可配置的宏,表示1秒

没志青年 没志青年 发布于 2025-07-31
没志青年 没志青年 发布于 2025-07-29
QT

QT 串口通信

这个模块默认不安装,也不显示,需要搜索才有,【QT根目录下 MaintenanceTool.exe】->【添加或移除组件】。 添加模块: QT += serialport 就两个类:

没志青年 没志青年 发布于 2025-07-29
没志青年 没志青年 发布于 2025-07-29
QT

QT 数据类型

数据对齐 rightJustified C++ 中的数据类型 Qt 中都能使用 新增数据类型

没志青年 没志青年 发布于 2025-07-29
QT

QT 组件

常用组件、 QPushButton // 禁用的两种方式 ui->qPushButton->setDisabled(true); ui->qPushButton->setEnabled(false); // 启用的两种方式 ui->qPushButton->setEnabled(true);

没志青年 没志青年 发布于 2025-07-29
QT

QT 信号与槽

信号与槽(Signal and Slots)是Qt框架中最重要和最强大的特性之一,它提供了一种用于对象间通信的机制,允许在对象之间建立灵活而又松散的连接。 定义 信号的定义: 在头文件中定义 使用 signals 关键字指出信号定义区 信号像函数那样定义,可带参数 只需要声明,不需要实现

没志青年 没志青年 发布于 2025-07-29

RT-Thread 线程管理

线程控制块 PCB,记录线程的数据。 struct rt_thread { /* rt 对象 */ char name[RT_NAME_MAX]; /* 线程名字 */ rt_uint8_t type; /* 对象类型 */ rt_uint8_t flags; /* 标注位 */ rt

没志青年 没志青年 发布于 2025-07-28

RT-Thread 中断管理

中断管理 为了把操作系统和系统底层的异常、中断硬件隔离开来,RT-Thread 把中断和异常封装为一组抽象接口,如下图所示: rt_interrupt_enter() 和 rt_interrupt_leave():用于在中断服务程序进入和离开时通知内核中断上下文的切换。 <

没志青年 没志青年 发布于 2025-07-28

RT-Thread 线程间通信

数据传递 邮箱 特性: 每封邮件固定为 4 字节, 可以直接传输 32 位无符号数 恰好能容纳一个指针,可传递指向缓冲区的地址。但是不能显式的指定数据的长度,在使用的时候一定要注意越界的问题。 多个线程可等待同一个邮箱。

没志青年 没志青年 发布于 2025-07-28
没志青年 没志青年 发布于 2025-07-28

RT-Thread 时钟节拍与延时

时钟节拍 时钟节拍在 rtconfig.h 中设置 /* *频率是 1000HZ 周期是 1/1000 s *所以节拍是 1ms */ #define RT_TICK_PER_SECOND 1000 给 RT-Thread 提供时钟节拍: void SysTick_Handler(void) {

没志青年 没志青年 发布于 2025-07-28

RT-Thread 定时器

软件定时器,单位为时钟节拍,定时数值必须是 OS Tick 的整数倍。 定时器控制块: struct rt_timer { struct rt_object parent; rt_list_t row[RT_TIMER_SKIP_LIST_LEVEL]; /* 定时器链表节点 */

没志青年 没志青年 发布于 2025-07-28

RT-Thread 移植 MCU

Nano 版本下载:rt-thread.org/download.html STM32 GD32

没志青年 没志青年 发布于 2025-07-28

Cortex-M MCU - 内存组织

STM32 内存布局验证: #include "main.h" #include <string.h> //用于字符串处理 #include <stdio.h> //用于printf打印 #include <stdlib.h> //用于分配堆区---调用malloc和free #

没志青年 没志青年 发布于 2025-07-28
没志青年 没志青年 发布于 2025-07-28

ESP32 I2S

手册 28 章,983 I2S - ESP32 - — ESP-IDF 编程指南 v5.5 文档

没志青年 没志青年 发布于 2025-07-28

ESP32 启动配置项

启动模式 启动日志打印 ESP32-C3:

没志青年 没志青年 发布于 2025-07-28

ESP32 电机控制脉宽调制器(MCPWM)

36 章,1245 MCPWM 结构 ESP32-S3 有两个 MCPWM 外设,每个外设支持 6 路 PWM 输出。 由 PWM 定时器模块、PWM 操作器模块、故障检测模块、捕获模块组成,PWM 定时器用于生成定时参考,PWM 操作器将根据定时参考生成所需的波形。 PWM 定时器和 PWM 操作

没志青年 没志青年 发布于 2025-07-28

ESP32 红外遥控 RMT

红外遥控 (RMT) - ESP32-S3 - — ESP-IDF 编程指南 v5.5 文档 红外遥控

没志青年 没志青年 发布于 2025-07-28
没志青年 没志青年 发布于 2025-07-28

ESP32 通用宏定义

错误 typedef int esp_err_t; ESP_OK //esp_err_t value indicating success (no error) //表示执行成功 没有错误 ESP_FAIL //Generic esp_err_t code indicating failure /

没志青年 没志青年 发布于 2025-07-28

ESP32 系统时钟、复位

时钟树 - ESP32 - — ESP-IDF 编程指南 v5.5 文档 系统时钟 时钟树: 图中,黄框的为低功耗时钟,蓝框的为高性能时钟。 CPU_CLK 时钟频率最低 2 MHz,最高 240 MHz,。

没志青年 没志青年 发布于 2025-07-28

ESP32 LED PWM 控制器(LEDC)

手册第35章,1231 LED PWM 控制器 - ESP32-S3 - — ESP-IDF 编程指南 v5.5 文档 LED 控制器 (LEDC) 主要用于控制 LED,也可产生 PWM 信号用于其他设备的控制。 S3 LEDC 特点: 8 个PWM生成器,即8通道。 高速通道:四个独立的定时器,

没志青年 没志青年 发布于 2025-07-28
上一页 下一页