avatar

松果工作室

欢迎光临

  • 首页
  • ESP
  • LVGL
  • freeRTOS
  • 个人收藏
  • 笔记
  • 瞬间
Home
松果工作室

HTTPS Server 加速

1. 证书在 ESP32 里的存在形式(新旧相同) 项目里证书是编译进固件的,不是运行时导入: 项 位置 证书/私钥文件 main/server_cert.pem、main/server_key.pem 嵌入方式 main/CMakeLists.txt 的 EMBED_TXTFILES 代码取用 a

3 days ago

煮酒论英雄

明朝 罗贯中   一日,关、张不在,玄德正在后园浇菜,许褚、张辽引数十人入园中曰:“丞相有命,请使君便行。”玄德惊问曰:“有甚紧事?”许褚曰:“不知。只教我来相请。”玄德只得随二人入府见操。 操笑曰:“在家做得好大事!”唬得玄德面如土色。操执玄德手,直至后园,曰:“玄德学圃不易!”玄德方才放心,答曰

11 days ago

nimble

下面用你这份 wls_gatts_nimble.c(乐鑫 bleprph + 自定义 GATT)当主线,把 BLE 和代码里涉及的大部分知识串起来。按「先懂概念 → 再看代码怎么走」读即可。 一、BLE 是什么:和你的代码对应关系 1.1 两种角色 角色 英文 你的设备 从机 / 外设 Periph

2026-06-14

ESP32c3 内存占用测试报告

SDK CONFIG DEFAULT # CPU CONFIG_PM_ENABLE=y CONFIG_PM_DFS_INIT_AUTO=y CONFIG_FREERTOS_USE_TICKLESS_IDLE=y CONFIG_ESPNOW_LIGHT_SLEEP=y # ESP #CONFIG_E

2026-06-07

ESP Event

#include <string.h> #include "wls_event.h" #include "esp_log.h" #include "freertos/FreeRTOS.h" #include "freertos/queue.h" #include "freertos/task.h"

2026-06-02

HTTP 快速刷新

此举将修改 ESPIDF #define HTTP_SEND_BUF_SIZE 4096 esp_err_t httpd_resp_send_all(httpd_req_t *r, const char *buf, ssize_t buf_len) { if (!r || !httpd_v

2026-06-02

[adb] 读取屏幕内容与点击,用于测试

adb 可以实现点击屏幕与抓取屏幕的 xml 结构(包括元素坐标),因此可以利用这个特性写一些 APP 测试脚本 本程序实现了adb 命令的发送,xml 数据的解析,串口的发送。以达到预期效果 #include <libxml/parser.h> #include <libxml/tree.h> #

2026-04-18

[CubeMX] SPI

在 SPI 总线协议设计上,从机不会主动向主机发送数据。SPI 是一种 严格的主机驱动(Master-driven)通信协议,所有通信都必须由主机发起。常用的 STM32CubeMX SPI 主机 + 中断方案。流程分为三部分: 1️⃣ CubeMX 配置 2️⃣ 代码实现(HAL 中断模式) 3️

2026-03-07

[CubeMX] 串口 DMA

使用 STM32CubeMX 配置 USART + DMA 并编写测试程序,一般分为三个部分: CubeMX 图形化配置 生成代码后的初始化确认 编写 DMA 收发测试代码 测试可用 一、CubeMX 配置步骤 1 配置串口 进入 Pinout & Configuration 选择一个 USART,

2026-03-05

[CubeMX] 基础工程配置

基础外设配置 Debug Wire SYS - Debug - Serial Wire 外置高/低速晶振 RCC - HSE - Crystal/Ceramic Resonator RCC - LSE - Crystal/Ceramic Resonator LED PA5 - OutPut USAR

2026-03-05

(LVGL)接口预览 样式

Style 大全 void lv_style_set_width(lv_style_t * style, int32_t value); void lv_style_set_min_width(lv_style_t * style, int32_t value); void lv_style_set

2026-02-18

(LVGL)案例预览 页面滚动吸附

页面滚动吸附 /** * Create a 2x2 tile view and allow scrolling only in an "L" shape. * Demonstrate scroll chaining with a long list that * scrolls the til

2026-02-17

(LVGL)案例预览 导航栏

水平的导航栏 void lv_example_tabview_1(void) { /*Create a Tab view object*/ lv_obj_t * tabview; tabview = lv_tabview_create(lv_screen_active());

2026-02-17

(LVGL)案例预览 表格

表格 static void draw_event_cb(lv_event_t * e) { lv_draw_task_t * draw_task = lv_event_get_draw_task(e); lv_draw_dsc_base_t * base_dsc = (lv_dra

2026-02-17

(LVGL)案例预览 开关

开关控件 static void event_handler(lv_event_t * e) { lv_event_code_t code = lv_event_get_code(e); lv_obj_t * obj = lv_event_get_target_obj(e);

2026-02-17

(LVGL)案例预览 加载中控件

用于加载中的动画控件 void lv_example_spinner_1(void) { /*Create a spinner*/ lv_obj_t * spinner = lv_spinner_create(lv_screen_active()); lv_obj_set_s

2026-02-17

(LVGL)案例预览 音量调节

用于音量调节的控件 static lv_obj_t * spinbox; static void lv_spinbox_increment_event_cb(lv_event_t * e) { lv_event_code_t code = lv_event_get_code(e);

2026-02-17

(LVGL)案例预览 滑块

滑块 /** * Show how to style a slider. */ void lv_example_slider_2(void) { /*Create a transition*/ static const lv_style_prop_t props[] = {LV_

2026-02-17

(LVGL)案例预览 刻度

类似于温度计的刻度 /** * An vertical scale with section and custom styling */ void lv_example_scale_2(void) { lv_obj_t * scale = lv_scale_create(lv_scree

2026-02-17

(LVGL)案例预览 弹窗

简单弹窗只带字 static void event_cb(lv_event_t * e) { lv_obj_t * btn = lv_event_get_target_obj(e); lv_obj_t * label = lv_obj_get_child(btn, 0); L

2026-02-17

(LVGL)案例预览 JSON 矢量动画

JSON 矢量动画 const uint8_t lv_example_lottie_approve[] = { 0x7b, 0x22, 0x76, 0x22, 0x3a, 0x22, 0x34, 0x2e, 0x38, 0x2e, 0x30, 0x22, 0x2c, 0x22, 0x6d,

2026-02-17

(LVGL)案例预览 画线

画线 void lv_example_line_1(void) { /*Create an array for the points of the line*/ static lv_point_precise_t line_points[] = { {5, 5}, {70, 70},

2026-02-17

(LVGL)案例预览 LED

LED void lv_example_led_1(void) { /*Create a LED and switch it OFF*/ lv_obj_t * led1 = lv_led_create(lv_screen_active()); lv_obj_align(le

2026-02-17

(LVGL)案例预览 文本

文本 void lv_example_label_1(void) { lv_obj_t * label1 = lv_label_create(lv_screen_active()); lv_label_set_long_mode(label1, LV_LABEL_LONG_MODE_

2026-02-17

(LVGL)案例预览 键盘

普通键盘 static void ta_event_cb(lv_event_t * e) { lv_event_code_t code = lv_event_get_code(e); lv_obj_t * ta = lv_event_get_target_obj(e); lv

2026-02-17

(LVGL)案例预览 下拉菜单

静态下拉菜单 static void event_handler(lv_event_t * e) { lv_event_code_t code = lv_event_get_code(e); lv_obj_t * obj = lv_event_get_target_obj(e);

2026-02-17

(LVGL)案例预览 图表

折线图 void lv_example_chart_1(void) { /*Create a chart*/ lv_obj_t * chart; chart = lv_chart_create(lv_screen_active()); lv_obj_set_size(

2026-02-17

(LVGL)案例预览 画布

画布 Canvas #define CANVAS_WIDTH 200 #define CANVAS_HEIGHT 150 void lv_example_canvas_1(void) { lv_draw_rect_dsc_t rect_dsc; lv_draw_rect_dsc

2026-02-17

(LVGL)案例预览 按钮

点击一次反转一次颜色的按钮 static void event_handler(lv_event_t * e) { lv_event_code_t code = lv_event_get_code(e); if(code == LV_EVENT_CLICKED) {

2026-02-17

(LVGL)案例预览 进度条

带框的进度条动画 void lv_example_bar_2(void) { static lv_style_t style_bg; static lv_style_t style_indic; lv_style_init(&style_bg); lv_style_

2026-02-17

(LVGL)案例预览 圆弧

带把手可调圆弧 static void value_changed_event_cb(lv_event_t * e); void lv_example_arc_1(void) { lv_obj_t * label = lv_label_create(lv_screen_active());

2026-02-17

(LVGL)案例预览 菜单

1、有返回按键的菜单 static void back_event_handler(lv_event_t * e) { lv_obj_t * obj = lv_event_get_target_obj(e); lv_obj_t * menu = (lv_obj_t *)lv_even

2026-02-16

(LVGL)案例预览 图片

1、导入 RGB 图片 const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMAGE_IMG_COGWHEEL_ARGB uint8_t img_cogwheel_argb_map[] = { 0xff, 0xff, 0xff, 0x00, 0xff, 0

2026-02-14

(LVGL)案例预览 布局

LVGL 9.4.0 Flex 布局案例效果预览 1、水平垂直布局 void lv_example_flex_1(void) { /*Create a container with ROW flex direction*/ lv_obj_t * cont_row = lv_obj_c

2026-02-14

(ESP-IDF)vscode配置文件

2025-12-28

(Elec)来复再生式晶体管单管收音机

原理图 原理 由于单个三极管的放大倍数过小,如果想要放大,需要两个及以上的三极管,如果想要节约材料,即可使用来复放大电路。 一般的原理过程: 选频 -> 检波 -> 低频放大 -> 输出 如果使用2个三极管: 选频 -> 高频放大 -> 检波 -> 低频放大 -> 输出 使用来复放大电路: 让低频放

2025-12-27 电子技术

(ESP-IDF)ESPNOW

传输距离(外置天线/笔直的公路) 稳定距离:100 米 极限距离:370 米 帧格式 默认比特率为1Mbps ----------------------------------------------------------------------- ··MAC 报头··|··分类代码··|··组

2025-12-07

(Linux)Arduino UNO Q 配置汇总

1. 更改时区 不知道为什么,明明 Arduino APP LAB 已经初始化过时区,但并没有生效 启用 Debian 默认 NTP: sudo timedatectl set-ntp true sudo systemctl restart systemd-timesyncd 手动设置时区(比如亚

2025-11-16

(Linux)Docker 添加代理

1. 创建 override 目录: sudo mkdir -p /etc/systemd/system/docker.service.d 2. 创建代理文件: sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf 3. 写入内

2025-11-16

(Linux)Clash arm64 安装教程

原文链接 Clash-for-RaspberryPi-4B-main.zip 树莓派4B_linux clash部署教程(2024.3.4) 写在前面:由于clash去年已经删库跑路,加上网上对于这部分部署教程并不太多,前期个人也踩了很多坑,希望这篇对大家有帮助,enjoy~ 0 使用情况介绍 硬件

2025-11-16

(LIB)一个好用的Modbus解析函数

一个好用的Modbus解析函数 包含03/10/04/06 #include <stdio.h> #include <stdint.h> #include <string.h> #

2025-09-27 坑和笔记

(ESP-IDF)OTA

双分区 # Name, Type, SubType, Offset, Size, Flags # Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap

2025-07-29

(ESP-IDF)BLE GATTS

移动设备可发现ESP的BLE并且连接通讯 首先在sdkconfig中打开BT 然后在ESPIDF的GATTS例程修改,实现了一个服务,两个特征值,一个值用于发送,一个用于接收 理解代码之前先理解蓝牙,具体参考本博客低功耗蓝牙BLE文章 #include "dh_p1_blu_task.h" #in

2025-06-14

(LVGL)案例预览 动画

本质是一个值的变化,以点击事件触发一个动画为例 // 创建动画 lv_anim_t a; lv_obj_t *lv_example_time_page(lv_obj_t *scr){ // 添加点击事件 lv_obj_add_event_cb(status_bar, status_b

2025-06-14

(ESP-IDF)LVGL 定时回调

每1秒执行一次回调内容 static void update_time(lv_timer_t *timer){ //update } v_obj_t *lv_example_time_page(lv_obj_t

2025-06-14

(Flutter)导航栏

CODE import 'package:flutter/material.dart'; import 'package:google_nav_bar/google_nav_bar.dart'; void main() { return runApp(MyApp()); } class My

2025-04-15

(Flutter)登录页面

CODE import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter_login/flutter_login.dart'; import 'package:shared_preferen

2025-04-14

(Flutter)进度列表

CODE import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:timeline_tile/timeline_tile.dart'; void main() { return runA

2025-04-13

(Flutter)消息滑块

CODE import 'package:flutter/material.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; void main() { return runApp(MyApp()); } clas

2025-04-12

(Flutter)滑条控件

CODE import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : su

2025-04-12

(Flutter)图标动画

CODE import 'package:flutter/material.dart'; void main() { return runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key

2025-04-12

(Flutter)输入文本框

CODE import 'package:flutter/material.dart'; void main() { return runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key

2025-04-12

(Flutter)Tab栏

CODE import 'package:flutter/material.dart'; void main() { return runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key

2025-04-10

(Flutter)侧浮动顶栏

CODE import 'package:flutter/material.dart'; void main() { return runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key

2025-04-10

(Flutter) 侧边导航栏的实现

跟着视频敲了几天到今天开始有了一些手感,能自己独立完成部分代码了 CODE import 'package:flutter/material.dart'; void main() { return runApp(MyApp()); } class MyApp extends Stateles

2025-04-09

(Flutter)一种简单布局

CODE import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : su

2025-04-09

(Flutter) 带阴影的图标

Code 基本的代码框架 这个代码框架是Flutter应用的标准结构,它遵循了一些最佳实践和设计模式。以下是为什么要这么写框架以及这样做的好处: 分离关注点: MyApp类专注于应用的总体配置,如主题、路由等。 MyHomePage类专注于具体页面的实现。 _MyHomePageState类管理页面

2025-04-06

(Flutter)语法

基础类型与变量声明 void main() { var name = 'Alice'; // String var age = 25; // int var height = 1.68; // double var isStud

2025-04-05

(ESP-IDF)简单的webserver

#include <esp_wifi.h> #include <nvs.h> #include <sys/param.h> #include "

2025-03-18

(ESP-IDF)NVS

基本概念 命名空间(Namespace):NVS 数据按命名空间分组,避免键名冲突。 键值对(Key-Value):支持存储整数、字符串、二进制数据等类型。 存储限制:每个键值对最大 1984KB,单个命名空间总大小取决于分区表配置(默认约 24KB)。 示例代码 #include <stdio.h

2025-03-18

(ESP-IDF)STA & AP

STA 对官方示例进行了代码精简,方便自己随时取用 # Name, Type, SubType, Offset, Size, Flags # Note: if you have increased the bootloader size, make sure to update the off

2025-03-16

(LIB)多级菜单

使用方法 以下四个函数分别放进各自按键的回调中,点击一次调用相关函数 void menu_up(); void menu_down(); void menu_confirm();

2025-02-13

(STM32)PWM DMA

CubeMX 配置 Channel2 -- PWM Generation CH2 DMA Setting -- TIM CH2 通用配置(内存到外设) 参数配置 -- Prescaler(决定占空比调节的精细度),Counter period(和前者一起,决定了周期) PWM DMA #includ

2024-12-22

(STM32) 串口

CubeMX配置 串口全局中断 DMA 普通配置(Normal Mode/TX RX DMA Request/全字节) 单字接收与buff 接收 注意事项: 单字接收每接收一个字节触发一次回调。 buff接收是等到空闲才触发回调。 理论上中断也能做buff接收。 freeRTOS的优先级只能管理 5

2024-12-21

(ESP-IDF)Simple POST/GET

最简单的POST GET用法 实现效果: 利用POST链接Wi-Fi:curl -X POST -H "Content-Type: application/json" -d '{"ssid":"ChinaNet-2xueyQ","password":"88888888"}' http://192.1

2024-12-08

(ESP-IDF)CURL 的 POST/GET/PUT 方法

GET 请求 一个简单的 Get 请求 curl -X GET http://192.168.2.35/hello 添加请求头的 Get 请求 curl -X GET -H "Host: example.com" http://192.168.2.35/hello 添加查询的 Get 请求 curl

2024-12-08 ESP-BLE

(LIB)Lora

芯片手册 SX1278-data-cn.pdf 代码 SX1278.c #include "SX1278.h" #include <string.h> [SX1278-data-cn.pdf](/upload/SX1278-data-cn.pdf) uint8_t SX1278_SPIRead(S

2024-10-18

(WCH)BLE MESH

来自沁恒低功耗蓝牙MESH软件开发参考手册.pdf WCH BLE MESH 常识 所有节点均带有中继功能 所有例程均带有app_mesh_config.h,可以修改所有 mesh 协议栈内使用的参数 MESH 节点层级结构: 设备 -> 元素 -> 模型 设备:mac 地址 + 广播UUID 元素

2024-10-04

(Elec)两种乙类放大电路

第一种乙类放大电路 略有失真,利用二极管把电压抬高0.7V以消除交流源从0~0.7V的失真,但二极管的电压不一定完全等于Vbe 第二种乙类放大电路 利用了第三章的:基级上拉加上耦合电容,可以不考虑交越失真,具体不知道什么原理。 经测试,小信号没有交越失真,大信号会有。 共同点 不放大电压信号,只提供

2024-09-16

(Elec)三极管放大电路元件数值配置

电压放大器 条件 VCC = 12V 三极管放大倍数 :100 电压源:50mV/AC 配置过程 假设集电极电流:这里假设为100mA 在集电极电流为100mA时,定Vce = 1/2Vcc,为了输出波形以6V为中心 集电极&发射极两个电阻和:6V/100mA = 60欧姆,分配应集电极远大于发射极

2024-09-16

(Elec)运算放大器

基本知识 标题的虚断虚短具有极其强的迷惑性,只需要记住本质 虚断本质:理想运放输入阻抗无穷大 虚短本质:当给运算放大器引入负反馈的时候,Un = Up 电路分析 同向比例运算 I2 = Uin/R2 I1 = (Uout-Uin)/R1 I1 = I2 综上: Uin/R2 = (Uout -Uin

2024-08-24

(Elec)运算放大器

基本知识 电源可以接双电源,也可以接单电源,一般单电源多一些 正负输入得到它应得的电压,那输出就是正,否则反之。 正负输入相近:Uout = A(Up - Un) + 2.5(A可达到几十万) 比较器 这里只用到了饱和区

2024-08-24

(Elec)负压发生电路

以MT3608为例 这个负压发生电路依附于boost升压电路 流程 MT3608在反馈的作用下输出了+15V,在+15V的开关占空比下,我们同样只能输出-15v,不能输出-12V或者其他电平 SW为高电平时: 电流依然保持原有的流向,流向为 L2 - C18 - D9 - 地 ,直到C18充满. 当

2024-08-07

(Elec)Boost 升压电路

示例 MT3608升压电路 核心元件 : 电感 做一个小实验,不停开关图中的轻触开关,电感两端在释放开关的瞬间会产生一个高压,这个高压有时候为正值,有时候是负值 以下是我的实验截图

2024-08-07

(WCH)TMOS

注意事项 每个任务包含16个事件,包括一个消息事件和15个自定义事件 事件以位的方式作ID bit0 bit1 bit2 ... bit15 0/1 0/1 0/1 ... 0/1 禁止中断中调用事件 如果使用了ble,建议不要在单个任务中执行超过连接间隔一半时长的任务,否则将影响蓝牙通讯 任务执行

2024-07-16

(WCH)Airtag Tag

使用单一公钥进行广播 此程序使用了单一公钥广播,但可以使用多个公钥进行广播 每次广播使用不同的公钥,可以减少被跟踪的风险。若某个公钥被追踪或认为不安全,可以轻松切换到另一个公钥,从而增强设备的安全性和隐私性。 以下只是C代码原理实现,具体根据不同蓝牙芯片进行程序编写 源工程链接 #include <

2024-07-16

(Linux)samba

设置root用户 smbpasswd -a root 修改配置文件 nano /etc/samba/smb.conf [myshare] comment = Public Stuff #path = /home/myshare path = /root/file/pans

2024-06-26

(Linux)Docker添加 HTTP 代理

创建或编辑 Docker 服务的 systemd 配置文件: 打开 Docker 服务的 systemd 配置文件 sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf 在文件中添加代理配置: [Service] Environ

2024-06-22

(Elec)简单的A类放大器 - 1969

翻译自链接 简单的 A 类放大器 一种 10 瓦的设计,在主观上比 B 类晶体管放大器能提供更好的效果 作者:J. L. 林赛·胡德,M.I.E.E. 日期:1969 年 4 月,发表于《无线世界》 在过去的几年里,已经发表了许多关于家用音频放大器的优秀设计。然而,由于元件可用性的变化,其中一些设计

2024-06-21 三极管

(LIB)环形滤波算法

#include <stdio.h> #include <stdlib.h> #define BUFFER_SIZE 10 // 缓冲区大小 #define THRESHOLD 180

2024-06-21 坑和笔记

(STM32)STM32 ADC采集的三种方式

采样周期 单个采集模式 ADC_Settings: 程序使用 uint16_t ADC_Read(

2024-06-17 坑和笔记

(ESP-IDF)LEDC

初始化 #define LEDC_OUTPUT_IOA (7) #define LEDC_MODE LEDC_LOW_SPEED_MODE #define LEDC_CHANNEL_A LEDC_CHANNEL_0 void led

2024-06-16 坑和笔记

(Elec)三极管面向应用的原理

三极管的等效原理 三极管中住着一个三极管人,他唯一的工作就是让: 输出电流 = β*输入电流 三极管人左边二极管的压降其实并不是恒定的,而是: I[b]增加 -> V[b]增加 回路: 可以看到图中的两条回路,这很重要 集电极(接正极收集电的那个极) 发射极(把基极电流和集电极电流发射出去的极) 以

2024-06-15 三极管

(LIB)结构体创建的 3 种方式

标准方式 #include <stdio.h> struct student //结构体类型的说明与定义分开。声明 { int age; /*年龄*/ float score; /*分数*/

2024-06-07

(WCH)代码结构

概览 #include "config.h" #include "HAL.h" #include "gattprofile.h" #include

2024-06-02

(WCH)蓝牙

低功耗蓝牙手册链接 这个手册以最基本的外围设备Peripheral讲述了程序执行的流程. 核心是 TMOS , 这个 OS 本质是一个事件驱动的其实也不算是 OS. 但是简单又牛逼, 只要一步一步看手册, 跟着手册看函数, 就能读懂整个例子. 例子文件 ├── BLE_UART ├── BLE_US

2024-05-29

(WCH)基础外设

教程来自链接 不得不吐槽一下, 沁恒的库真的很浅, 和 STM 的 HAL 库比,通过两个跳转就能看见它的寄存器操作,麻了. 好吧好处就是能让我知道原理, 坏处就是调用草率,不容易懂. (一) 点灯 #include "CH57x_common.h" int main(){

2024-05-29

(ESP-IDF)ADC

理论 ESP32c3 的 ADC 分为两个单元, 我们这里使用了单元 1 . 步骤 设置 ADC 位宽 设置 ADC 通道衰减 为使用的 ADC 单元设置 ADC 矫正 取得 ADC 数值 ADC 转化电压 代码 至于esp_adc_cal_characterize()的 3300 这个数值其实没有

2024-05-25

(ESP-IDF)GPIO

点灯方法(一) #include <stdio.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include</

2024-05-24 坑和笔记

(Linux)F1C200S Uboot

交叉编译工具链 F1C200s内核ARM9 使用 ARMv5 架构,因此支持 ARMv5 的工具链都能编译,一般使用arm-linux-gnueabi- 开发环境使用 Ubuntu16.04 解压编译器到/usr/local/arm-linux-gcc/ 添加环境变量nano /etc/profil

2024-05-13 坑和笔记

(Linux)F1C200s硬件原理图

来源:[https://widora.cn/tiny200] 原理图 外设

2024-05-12

(LIB)峰值查询算法

这是来源[https://zhuanlan.zhihu.com/p/549588865] 他用了 python, 于是我就用 ChatGPT 转换成了 C 语言, 试验了下, 还算好用 这么牛逼的代码, 我这辈子写不出来了 不求甚解, 会用就行 #include <stdio.h> #include

2024-05-10 坑和笔记

(freeRTOS)freeRTOS 高精度定时任务

vTaskDelayUntil()能精确地在每 50ms 调用这个函数 void TASKF(void *ptr) { TickType_t xLastWakeTime; xLastWakeTime = xTaskGetTickCount(); while (1) { vTask

2024-05-09 重学 freeRTOS

(freeRTOS)Ubuntu Server 上网

Netplan 是 Ubuntu 18.04 及以后版本的默认网络配置工具,用于配置网络接口的基本设置,如静态 IP 地址、DHCP、DNS 等。 在Ubuntu22.04安装时,配置网络信息会通过Subiquity 网络配置工具,写入/etc/netplan/00-installer-config

2024-05-08 坑和笔记

(LIB)用串口中断解析Modbus数据

状态机解析 Modbus 协议数据帧 原理: 中断接收到设备地址 0x01, 进入阶段 2 中断接收到寄存器地址, 进入阶段 3 中断接收到数据域长度, 进入阶段 4 往buf 存接收到的数据域字符,直到接收到应有的数据域长度加上 CRC 如果计算的 CRC 和接收到的 CRC 一致就发送信号通知任

2024-05-08 坑和笔记

(Elec)电子管

电子管内部结构 阴极: 发射电子的源泉, 利用电子的热发射发射电子 灯丝: 用来加热阴极. 直热式的灯丝就是阴极, 旁热式的灯丝只负责加热阴极 阳极: 接收阴极发射的电子,外接电源正极 栅极: 控制到达阳极的电子数量; 抑制栅极加负电压,屏栅极加正电压 芯柱: 把各个电极引出管外 云母片: 固定电机

2024-05-05 电子技术

(Elec)三极管基本放大电路

https://zhuanlan.zhihu.com/p/549377896 三极管 简单的技巧: 箭头朝内 PNP 箭头一方发射极 E(发射极)B(基极)C(集电极) 共 X 极放大电路,值得是 X 端接地 共射极放大电路

2024-05-04 三极管

(Elec)有一级低频放大的晶体管收音机

实物图 放大部分原理 R2 为可变电阻,为三极管基极提供偏置电流,由于三极管基极只有在特定电流下才在放大区间.因此要把可变电阻调整到合适的值. 当然,基极电位始终是固定的 0.7V.R2 分到的电压始终是 E-0.7V. 前端部分原理 信号经过调谐回路流向地,特定频率经过线圈耦合进第二个电感. 信号

2024-05-03 电子技术

(Linux)Makefile 文件的编写

例子 #交叉编译工具链绝对路径,去掉首个 / 为相对路径 CC = /root/OpenWrt-Toolchain-ramips-for-mipsel_24kec+dsp-gcc-4.8-linaro_uClibc-0.9.33.2/toolchain-mipsel_24kec+dsp_gcc-4.

2024-04-30 坑和笔记

(Elec)能选电台的收音机

本章实物图 本章原理图 重点 LC 调谐回路:f = 1/(2*pi*Squa(L*C))。在并联谐振电路下,[高频/低频]会通过[电容/电感]直接到达地,并联谐振两端电压小,无法给 L2 以感应电压驱动耳机发出声音,只有谐振频率下,两端阻抗最大,电压最大,感应出电压驱动耳机发声 电容阻抗Z = 1

2024-04-21 电子技术
  • 1
  • 2

Recently Updated

  • HTTPS Server 加速
  • 煮酒论英雄
  • nimble
  • ESP32c3 内存占用测试报告
  • ESP Event

Trending Tags

LVGL WCH Linux Elec ThatProject freeRTOS STM ESP Flutter Others

©2026 松果工作室. Some rights reserved.

Using the Halo theme Chirpy