01 2025 档案

摘要:如上所述,Arduino 字符串是一种非常实用且安全的文本处理编程方法。然而,SafeString 库比使用字符串具有许多优势。 完全控制内存使用 SafeStrings 是 char[] 的包装器,可防止缓冲区溢出和超出范围索引。由于 SafeString 使用固定的 char[],因此创建 Sa 阅读全文
posted @ 2025-01-27 00:30 mcwhirr 阅读(73) 评论(0) 推荐(0)
摘要:这两个字符串语句可能会导致崩溃/重启 已知有两种情况,使用 Arduino 字符串可能会导致您的主板重新启动/崩溃,这是由于 Arduino 提供的当前 Wstring.cpp 中的错误造成的。它们是:-str += str; // 将字符串连接到自身和String(1.0, 32); // 或在任 阅读全文
posted @ 2025-01-27 00:29 mcwhirr 阅读(81) 评论(0) 推荐(0)
摘要:在方法中使用字符串 如上文指南所述,长寿命字符串应与reserve()一起使用以防止碎片化。通常这些长寿命字符串是全局的。如果loop()方法中有任何字符串,那么它们在所有其他代码运行时都存在。因此它们也是“长寿命的”,因此将它们移出以成为全局变量并在setup() 中为它们保留空间。 有时,方法中 阅读全文
posted @ 2025-01-27 00:22 mcwhirr 阅读(112) 评论(0) 推荐(0)
摘要:ESP32 和 ESP8266 拥有更多可用的 SRAM,因此只要您遵循使用 Arduino 字符串的指南,您的代码就不太可能出现任何内存问题。但是,这些开发板的 Web 库大量使用字符串,因此如果您正在编写 Web 项目,最终可能会因为底层 Web 库的问题而耗尽内存。在这种情况下,开发板将锁定或 阅读全文
posted @ 2025-01-27 00:18 mcwhirr 阅读(161) 评论(0) 推荐(0)
摘要:要检测何时未预留足够的空间,可以使用StringReserveCheck 类。下载StringReserveCheck.zip 文件并使用 IDE Sketch → Include Library → Add .ZIP library... 安装它。 然后,您可以添加 StringReserveCh 阅读全文
posted @ 2025-01-27 00:16 mcwhirr 阅读(82) 评论(0) 推荐(0)
摘要:两个字符串内存问题——碎片和额外内存使用 内存碎片并不是您想象中的问题。使用 String reserve() 和 StringReserveCheck 并遵循上述指南可消除内存碎片。通过将字符串参数作为 String& 传递并避免创建临时字符串,可避免额外的内存使用。 内存碎片化——并非你所认为的 阅读全文
posted @ 2025-01-27 00:10 mcwhirr 阅读(168) 评论(0) 推荐(0)
摘要:对于只有少量字符串的小草图,只要方便使用它们即可 对于包含少量字符串的小型草图,只需使用它们即可。好消息是,如果您使用的是 UNO 或 Mega2560 或其他基于 AVR 的主板,那么使用字符串非常安全,即使内存不足也不会导致主板崩溃。如果内存不足,您将无法获得期望的字符串中的所有文本。程序将继续 阅读全文
posted @ 2025-01-26 23:52 mcwhirr 阅读(225) 评论(0) 推荐(0)
摘要:同样,如果您使用 Arduino Mbed 核心类型,则可能要添加该 UART 语句。 此处;此演示草图适用于任一核心。经过测试,一切正常! 似乎要逐渐初始化? /* * Demonstration of using multiple Serial Ports on RPi Pico board. 阅读全文
posted @ 2025-01-26 23:14 mcwhirr 阅读(163) 评论(0) 推荐(0)
摘要:String类主要的就是一些字符串处理函数,比string具有更多更轻大的功能,so用起来很爽! 下面是其主要函数介绍,用例主要参考官方资料。 1、定义,这个就不多说了 1 2 3 4 5 6 7 8 9 String stringOne = "Hello String"; String strin 阅读全文
posted @ 2025-01-26 23:05 mcwhirr 阅读(132) 评论(0) 推荐(0)
摘要:#define LFS_MBED_RP2040_VERSION_MIN_TARGET "LittleFS_Mbed_RP2040 v1.1.0" #define LFS_MBED_RP2040_VERSION_MIN 1001000 #define _LFS_LOGLEVEL_ 1 #define 阅读全文
posted @ 2025-01-25 08:09 mcwhirr 阅读(85) 评论(0) 推荐(0)
摘要:// Fill out your copyright notice in the Description page of Project Settings. #pragma once #ifdef _WIN32 #include <windows.h> #define imsleep(microse 阅读全文
posted @ 2025-01-20 19:39 mcwhirr 阅读(13) 评论(0) 推荐(0)
摘要:#include "CSerialPort.h" #include "UObjectTest.h" #define LOCTEXT_NAMESPACE "FCSerialPortModule" void FCSerialPortModule::StartupModule() { // This co 阅读全文
posted @ 2025-01-20 19:36 mcwhirr 阅读(30) 评论(0) 推荐(0)
摘要:// Copyright Epic Games, Inc. All Rights Reserved. using UnrealBuildTool; public class CSerialPort : ModuleRules { public CSerialPort(ReadOnlyTargetRu 阅读全文
posted @ 2025-01-20 19:32 mcwhirr 阅读(49) 评论(0) 推荐(0)
摘要:KY-040 旋转编码器与 Pi Pico 的连接 该旋转编码器有 2 个信号来了解位置:CLK 和DT。 引脚SW 引脚连接到集成按钮 (SWitch)。 以下是有关如何将 Raspberry Pi Pico 连接到 uPesy RP2040 DevKit 板的建议: 旋转编码器 树莓派 Pico 阅读全文
posted @ 2025-01-20 10:52 mcwhirr 阅读(107) 评论(0) 推荐(0)
摘要:在这篇博客文章中,我们将探究如何把旋转编码器与树莓派 Pico 微控制器连接起来。旋转编码器是常用的输入设备,可用于测量和控制轴的位置与旋转。树莓派 Pico 凭借其通用输入输出(GPIO)引脚及相关功能,为将旋转编码器集成到你的项目中提供了一个出色的平台。在这个循序渐进的指南里,我们将详细讲解把旋 阅读全文
posted @ 2025-01-20 10:42 mcwhirr 阅读(218) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2025-01-20 10:15 mcwhirr 阅读(137) 评论(0) 推荐(0)
摘要:u8g2 类的 begin() 函数用于简化 Arduino 环境下的显示设置步骤,该函数在底层会依次调用 initDisplay()、clearDisplay()、setPowerSave() 三个函数: bool begin(void) begin() 函数还可以用于绑定按键检测事件(最高可以绑 阅读全文
posted @ 2025-01-20 10:09 mcwhirr 阅读(533) 评论(0) 推荐(0)
摘要:指令 u8g2.clearDisplay(); // 清除显示数据及屏幕 u8g2.clearBuffer(); // 清Buffer缓冲区的数据 u8g2.sendBuffer(); // 将Buffer帧缓冲区的内容发送到显示器,发送刷新消息 u8g2.sendF("c", 0x0a7); // 阅读全文
posted @ 2025-01-19 23:39 mcwhirr 阅读(689) 评论(0) 推荐(0)
摘要:构造 String 类的实例。有多个版本可以从不同的数据类型构造字符串(即,将它们格式化为字符序列),包括: 用双引号括起来的常量字符串(即字符数组) 单个常量字符(用单引号引起来) String 对象的另一个实例 常数整数或长整数 使用指定基数的常量整数或长整数 整数或长整数变量 使用指定基数的整 阅读全文
posted @ 2025-01-19 23:22 mcwhirr 阅读(41) 评论(0) 推荐(0)
摘要:C-style的数组要初始化需要有固定的长度 char FILTER_STATUS_WORD[4][8] = {"NOS","WARM","SHARP","BACK"}; display.drawStr(166,42, INPUT_STATUS_WORD[__INPUT_STATUS]); 然后A[ 阅读全文
posted @ 2025-01-19 22:41 mcwhirr 阅读(13) 评论(0) 推荐(0)
摘要:非常轻松的切换屏幕 非常简单 非常基础 非常入门 但是我确实很久不用了... int add(int nLeft,int nRight);//函数定义 int (*pf)(int,int);//声明函数指针 pf = add;//通过赋值使得函数指针指向某具体函数 pf(100,100);//使用 阅读全文
posted @ 2025-01-16 00:12 mcwhirr 阅读(43) 评论(0) 推荐(0)
摘要://需要添加的头文件 #include "PicoEncoder.h" // 声明两个实际读取相同引脚的编码器: // 我们将测量相位大小并补偿差异,而 // 另一个将像相大小完全均匀一样工作 //这样会增加测速功能,事实上这个项目用不到 PicoEncoder encoder; PicoEncod 阅读全文
posted @ 2025-01-14 18:52 mcwhirr 阅读(64) 评论(0) 推荐(0)
摘要:画图函数 [繪圖相關函式] u8g2 繪圖座標原點在左上角,向右是 X 軸,向下是 Y 軸。以下說明各繪圖函式: ⬝ u8g2.drawBox(x,y, w, h) 畫一個空心四方形 ⬝ u8g2.drawFrame(x, y, w, h) 畫一個實心四方形 說明:畫一個四方形。x,y是方框的左上角 阅读全文
posted @ 2025-01-14 12:29 mcwhirr 阅读(1074) 评论(0) 推荐(0)
摘要:常用函数 [字符顯示相關函式] ⬝ u8g2.drawStr(x, y, s) 說明:在座標 x,y 位置顯示字串,一般都配搭setFont函數設定字體使用,不能繪製 encoding 超過256的,也就是只能顯示英數字符號,超過256需要用 drawUTF8()或drawGlyph()顯示。s字串 阅读全文
posted @ 2025-01-14 12:22 mcwhirr 阅读(2093) 评论(0) 推荐(0)
摘要:Full screen buffer mode 绘制速度快 所有的绘制方法都可以使用 需要大量的ram空间 构造器需要带F U8G2_ST7920_128X64_F_SW_SPI(rotation, clock, data, cs [, reset]) usage 清除缓冲区 u8g2.clearB 阅读全文
posted @ 2025-01-14 11:41 mcwhirr 阅读(515) 评论(0) 推荐(0)
摘要:/* 采用 SSD1306 驱动芯片,分辨率为 128*X*64,通信方式为软件 I²C 总线 */ U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ 16, /* data=*/ 17, /* reset=*/ U8X8_P 阅读全文
posted @ 2025-01-14 11:26 mcwhirr 阅读(685) 评论(0) 推荐(0)
摘要:写个代码测试一下 GPIO26 ADC。笔者手头没有信号发生器,所以直接测悬空引脚的电压,测量过程中用手按压引脚。代码: #include "pico/stdlib.h" #include "hardware/adc.h" #include <cstdio> int main() { stdio_i 阅读全文
posted @ 2025-01-14 10:30 mcwhirr 阅读(88) 评论(0) 推荐(0)
摘要:得益于 pico sdk,我们可以直接使用 printf 等函数来在串口上输出,如同运行在电脑上的普通程序那样。代码如下: #include "pico/stdlib.h" #include <cstdio> int main() { stdio_init_all(); puts("Hello, w 阅读全文
posted @ 2025-01-14 10:29 mcwhirr 阅读(245) 评论(0) 推荐(0)
摘要:#include <Arduino.h> void setup() { // put your setup code here, to run once: Serial.begin(115200); } void loop() { // put your main code here, to run 阅读全文
posted @ 2025-01-14 09:54 mcwhirr 阅读(140) 评论(0) 推荐(0)
摘要:官方版本示意图 这样GPIO似乎最多可以拉到72M? 因为有两个SPI所以要注意开发时的选择(可能会有选择问题的坑 UF2拖放固件尽量有重制固件 PIO不太会玩 import machine print(machine.freq()) # 打印当前CPU频率 machine.freq(2400000 阅读全文
posted @ 2025-01-14 09:36 mcwhirr 阅读(92) 评论(0) 推荐(0)
摘要:在构造器中优先选择带HW的 class U8G2_SSD1322_NHD_256X64_F_2ND_4W_HW_SPI : public U8G2 { public: U8G2_SSD1322_NHD_256X64_F_2ND_4W_HW_SPI(const u8g2_cb_t *rotation, 阅读全文
posted @ 2025-01-13 19:07 mcwhirr 阅读(251) 评论(0) 推荐(0)
摘要:四线SPI需要连接R5 断开R6 阅读全文
posted @ 2025-01-13 10:25 mcwhirr 阅读(79) 评论(0) 推荐(0)