自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 MySQL的不同字符集的排序规则

注意,对于不区分大小写的排序规则(如_ci),它们是基于字典顺序来排列字符的,而不是根据语言特定的规则,因此可能会出现一些不符合某些语言的排序习惯的情况。不同字符集在MySQL中使用不同的排序规则,确定了对字符数据的排序和比较方式。可以查看MySQL官方文档获取完整的排序规则。

2025-04-01 15:10:51 279

原创 C语言中的内存管理:掌握动态分配的技巧

在C语言中,动态内存分配主要通过标准库函数malloc、calloc、realloc和free来实现。这些函数提供了在堆(heap)上分配和释放内存的能力,与栈(stack)上的自动内存分配相比,堆内存分配更加灵活,但也需要程序员手动管理,以避免内存泄漏和野指针等问题。malloc函数:用于分配指定大小的内存块,返回指向分配内存的指针。如果分配失败,返回NULL。calloc函数:与malloc类似,但会将分配的内存初始化为零,并且参数以元素个数和每个元素的大小给出。

2025-03-31 08:30:52 285

原创 如何在C语言项目中有效进行异常处理

在C语言项目中,错误处理是一个至关重要的环节。尽管C语言本身并不像一些高级编程语言(如Java或C#)那样提供内置的异常处理机制(如try-catch块),但通过一系列设计模式和最佳实践,开发者仍然可以在C语言中实现有效的错误处理。本文将探讨在C语言项目中如何设计和实现错误处理机制,以确保程序的健壮性和可靠性。

2025-03-31 08:27:52 185

原创 优化嵌入式设备的 LoRa 无线电性能

在开发可穿戴设备时,这些权衡可能尤其困难,因为可穿戴设备的尺寸和成本都受到极大限制,需要最长的电池寿命、最小的尺寸,并且还受到监管(FCC、RED)要求的进一步限制,以尽量减少用户吸收的射频能量,已知称为“比吸收率”或 SAR。请注意,频率是该方程的关键组成部分,降低频率会减少损耗。通常,在低功耗状态下,许多子电路都会关闭,但是,必须检查每条 IO 线的状态以及子电路之间的连接,以确保没有活动信号连接到断电的组件,否则会出现意外泄漏电流,可能是几毫安,并且由于漏电流部分为某些组件供电,可能会发生意外行为。

2025-03-28 10:48:11 328

原创 2种计算分形维数的算法

计算比较简单,分行维数主要是获取图像的表面粗糙度。介绍2种计算分形维数的算法,里边包含2个。

2025-03-28 10:46:20 189

原创 基于TrustZone的嵌入式系统安全隔离设计

TrustZone技术通过在ARM处理器上划分安全世界(Secure World)和非安全世界(Normal World),实现了系统资源的隔离与保护。安全世界用于运行安全代码及处理敏感数据,如加密操作、身份验证等,而非安全世界则运行普通应用程序和操作系统。这种双世界的架构不仅提高了系统的安全性,还保持了性能的高效性。TrustZone技术为嵌入式系统提供了强大的硬件安全隔离解决方案。通过划分安全世界和非安全世界,TrustZone实现了系统资源的隔离与保护,有效抵御了恶意攻击和未授权访问。

2025-03-27 16:30:52 677

原创 嵌入式Linux中的格式化I/O详解与实践

在Linux系统中,格式化I/O主要依赖于C标准库提供的系列函数,这些函数允许开发者以特定的格式读写数据。(由于篇幅限制,sscanf()函数的示例在此省略,但其用法与scanf()类似,只是从字符串缓冲区读取数据。snprintf()函数与sprintf()类似,但它限制了输出到字符串缓冲区的字符数,防止缓冲区溢出。printf()是最常用的格式化输出函数,它将格式化的字符串输出到标准输出(通常是终端)。fprintf()函数与printf()类似,但它将格式化的字符串输出到指定的文件流。

2025-03-26 15:59:11 208

原创 电路设计中串联一个二极的作用

‌二极管的作用:防反作用、整流作用、续流作用、倍压作用等。防反作用在主回路中,串联一个二极管,是利用二极管的单向导电的特性,实现了最简单可靠的低成本防反接功能电路。这种低成本方案一般在小电流的场合,类似小玩具等。因为二极管导通会有一个0.7V(硅管)的导通压降,如果实际电流很大的话,那么就会产生一个热损耗,会导致发热。整流作用整流电路的作用是将交流降压电路输出的电压较低的交流电转换成单向脉动性直流电,这就是交流电的整流过程,整流电路主要由整流二极管组成。经过整流电路之后的电压已经不是交流电压,而是一种含有直

2025-03-25 17:22:27 483

原创 C++代码脚本实现STM32启动

这个过程包括定义SRAM和堆栈地址、初始化中断向量表、编写链接器脚本、实现复位处理程序以及编写主函数。当处理器复位后,它会从存储器的特定位置读取启动向量,这些向量决定了系统的初始堆栈指针和复位处理程序的地址。第一个字是主堆栈指针(MSP)的初始值,第二个字是复位向量,即复位处理程序的起始地址。堆栈指针设置:堆栈指针通常指向SRAM的末尾,因为Cortex-M3和Cortex-M4的堆栈操作是基于完全降序堆栈(即堆栈指针在存储之前递减)。启动代码的第一个任务是在地址0x00000000处初始化中断向量表。

2025-03-25 17:15:14 436

原创 设计一个简单的圆柱形情绪灯

•小心地将每根电线焊接到相应的焊盘上:5V到5V,接地到地,数据输入到DI(或任何标签条提供的)。连接后,您可以使用默认的接入点设置,也可以进入WLED的Wi-Fi设置页面加入家庭网络。在D1 Mini的背面涂上一点胶水,并将其固定在打印的外壳内(如果提供,请参阅图片)。最后,放置扩散器(您可以将其粘在适当的位置,我选择不这样做)并探索WLED的效果。在你的智能手机(或电脑)上,打开Wi-Fi设置,找到名为WLED-AP的网络。•我的四条条带中的每一条都有5个led,每个条带的长度大约为167mm。

2025-03-23 09:05:40 663

原创 1.5MW双馈风力发电机组的matlab仿真模型

wind_turbine_module/风机_2M_直接转矩控制/d44153b7ac2c.rar , 24281。wind_turbine_module/风机_2M_直接转矩控制/DFIG_2M_DTC.mdl , 178149。wind_turbine_module/风机_2M_直接转矩控制/dfig_2MW_data.m , 740。wind_turbine_module/风机_2M_直接转矩控制/DTCTABLE.m , 8520。可以进行低电压穿越仿真。

2025-03-23 09:03:28 814

原创 如何构建一个用于3D扫描的电动转台

在设计的核心,中间板的特点是一个内部齿轮机构,隐藏在视线之外,这是由一个步进电机驱动。为了给系统供电,将使用一个9伏的适配器,以及一些电容器和一个电压调节器,为开发板提供5伏的电压。在手动模式下,每次拍摄你都需要按下快门按钮,而在自动模式下,你只需要在扫描开始和结束时按下录制按钮。手动将中间层齿轮部分转动几圈,若转动平稳,拆下顶板和齿轮部分,将步进电机放入槽内,用M3螺栓固定。此外,该项目还包括一个连接到步进电机的小齿轮,三个固定轴承的引脚和三个安装腿。在它的一侧,有一个安装点,用于连接手机座。

2025-03-22 11:19:37 529

原创 设计一种将方向盘的旋转角度转换为USB信号的装置,用于汽车驾驶模拟

该信号的解码由PIO程序(在文件encoder.pio中)执行,该程序等待通道a上的上升沿,然后检查通道B上的值:对于0,生成IRQ 0;使用直接GPIO读取编码器信号的初步实验表明,在快速旋转过程中,信号可能部分丢失,因为直接GPIO只能处理高达~10kHz的变化。通过增加三个PIO程序,可以将测量精度提高到每旋转1600个脉冲:一个等待通道A的下降沿,另一个等待通道B的上升沿,第三个等待通道B的下降沿。•通道B[绿色]<-> GP3[引脚5]+ 10 kOhm上拉电阻到3V3[引脚36]

2025-03-22 10:07:16 778

原创 将GY-68模块连接到Arduino来测量压力和温度

GY-68模块,也被称为BMP180模块,是一种流行的传感器模块,用于测量大气压力、温度和高度。在本教程中,我们将指导您完成将GY-68模块连接到Arduino的过程,使您能够为您的项目收集准确的环境数据。那么,让我们开始吧!通过遵循上面概述的步骤,您现在可以开始为您的项目收集准确的大气压力、温度和高度数据。这个库提供了一个接口,方便了与模块的通信,节省了大量的时间,并提供了一个可靠的、经过广泛测试的代码库。GY-68模块,也称为BMP180模块,是一种流行的传感器模块,用于测量压力,温度和高度。

2025-03-20 12:30:52 338

原创 使用基于BMP085传感器的GY-65进行压力和温度监测

以Arduino Nano为例,对应I2C接口的SDA (Serial Data Line)和SCL (Serial Clock Line)引脚分别被指定为A4和A5。具有测量温度、压力和高度的能力,GY-65模块为气象站、高度跟踪设备和其他需要准确环境数据的项目开辟了一个可能性的世界。在本文中,我们将深入研究该模块的功能,检查其特性,与Arduino的连接。这个库提供了一个接口,方便了与模块的通信,节省了大量的时间,并提供了一个可靠的、经过广泛测试的代码库。它将包含带有与模块交互的预定义函数的库。

2025-03-20 12:03:10 268

原创 使用BL0937 IC进行交流电源监控

在本地设备层面监控电源有其自身的优势,就像现在我们有数据,如果电流增加,出现问题,它可以关闭整个系统,可以避免设备燃烧。PCBWAY是受欢迎的,因为它的可靠的服务在电子行业的时间。PCB的设计保持了设备的电源考虑,它是一种插头板,可以在任何地方使用,像分线板一样监控电源。中国的能源监测ic没有适当的电路是不能工作的,如果有任何问题,它将永久停止工作。当SEL=1时,输出为电压均方根值,脉宽固定为38uS,频率与电压均方根值成正比。一个简单的电路来监测交流电源,接线板可以插在任何地方,显示电压,电流和功率。

2025-03-18 15:29:48 347

原创 在Ubuntu上安装2024.2版本AMD FPGA工具集的参考指南

这就意味着不缺少安装技巧和技巧。在大多数情况下,它是相当一致的(除了一些额外的东西,比如为PetaLinux内置的嵌入式Linux映像格式化SD卡的gparted),但是当有新的软件包弹出时,我发现它很有趣,因为它可以提示我关于Vivado/Vitis ide的不同之处。值得一提的是,链接在Vivado (HW Developer)选项卡和Vitis (SW Developer)选项卡下的安装程序是相同的安装程序,因为当您运行它时,它在安装程序中,您可以选择安装Vivado、Vitis或两者都安装。

2025-03-17 18:00:23 640

原创 构建一个智能房间加热器插头

我们在印度,我们使用BS 546插头插座类型,包括两极和接地针插头,插座和插座适配器,适用于交流(50-60 Hz)电路,最高250v。目前,我们的项目正在工作,并实现了我们的目标,将物联网功能添加到我们的哑房间加热器中;接下来,我们插入所有通孔组件,其中包括用于XIAO微控制器的CON7母头引脚,继电器,CON2螺钉端子和隔离电源模块。这个想法很好,但是开发一个只能在冬天使用的物联网房间加热器会是一种浪费,所以我们创造了智能插头,它可以在冬天与房间加热器一起使用,在夏天与空调一起使用。

2025-03-17 17:27:14 498

原创 使用Arduino与Hexabitz单导联EXG监测模块(H2BR0)在绘图仪上绘制模拟信号

在这个项目中,我们将使用Arduino板与Hexabitz单导联EXG监测模块(H2BR0)一起在绘图仪上绘制模拟信号,以可视化ECG(心电图)和EMG(肌电图)等生物信号。Hexabitz单导联EXG监测模块(H2BR0)是一种可以记录来自心脏(ECG),大脑(EEG),眼睛(EOG)和肌肉(EMG)的出版级生物电位信号的模块之一。’从连接到ExG监视器的引脚A0读取模拟值,并将其存储在变量‘ y ’中。•如果为true,它将‘ x ’重置为0并将‘ C ’打印到串行绘图仪。

2025-03-16 13:49:26 394

原创 使用WLAN接口将温度和相对湿度发送到家庭网络web服务器

因此,下载ZIP文件,将其解压为tony下的sh1106.py,并将其安装在Pico W的lib目录下。结论:与没有WLAN的Pico相比,您只需花费不到两欧元的额外费用,就可以获得带有Pico W的多功能微控制器,可以轻松地在家庭WLAN中注册,因此适合许多自己的智能家居项目。但是树莓派基金会有两个例子程序,已经被其他博主复制了:一个简单的web服务器,带有文本显示和通过内部网切换LED,可以在小册子“用pico-w连接到互联网”中找到。使用简单的Pico,这是通过引脚25控制的,引脚没有连接到外部。

2025-03-15 20:25:39 466

原创 如何使用粒子B系列SoM构建实时大象跟踪系统

该板包括用于nRF52840 MCU和蜂窝调制解调器的USB端口,SD卡连接器,以太网连接器,桶插孔电源连接器,按钮,RGB LED,充电状态LED和LiPo电池连接器(不包括电池)。此外,它还包括增强的组件,如SAW滤波器,LNA(低噪声放大器)和TCXO(温度补偿晶体振荡器),用于卓越的信号处理。我们特别为这个项目选择了B524 SoM,因为它具有强大的蜂窝连接,因为Wi-Fi在偏远的野生动物地区是不可行的选择。专为环保人士,研究人员和现场人员,它提供了一个无缝的融合功能和直观的设计。

2025-03-15 16:56:31 611

原创 如何使用Wled控制RGB LED

现在你会看到一个界面,它会显示你的ESP32与WiFi网络连接,也会显示它的IP地址。•现在输入您的wifi网络的SSID和密码,确保您的智能手机和Wled应用程序连接到相同的wifi网络。在这里,您可以看到安装选项。•Wifi设置现在点击Wifi设置,从这里你可以改变你的Wifi网络的SSID和密码。向下滚动一点,你会看到一列的硬件设置,从这里你可以做一些以下的改变。

2025-03-15 15:14:11 854

原创 制作一个PICO工作室灯

•接下来,我们使用ESD镊子挑选并将所有SMD组件放在PCB上,其中包括15个冷白2835 led, 15个暖白2835 led, 15个RGB led, WS2811 IC,一对2512封装电阻和WS2811 IC的去耦电容。因此,我们将LED板的WARM引脚连接到PICO驱动器的WARM引脚,COOL连接到COOL, RGB引脚连接到RGB引脚。我们使用15个LED并联连接,每个LED消耗60mA,因此15个LED将消耗约900mA电流,但我们使用单个WS2811芯片,仅支持高达18mA的。

2025-03-15 15:10:26 564

原创 C语言中的动态内存分配函数(mallocfree)详解

动态内存分配是C语言中处理内存的强大工具,malloc和free分别用于内存的分配和释放。分配内存后需要手动释放:使用malloc分配的内存需要显式地管理,当不再需要这块内存时,必须使用free函数来释放它,以避免内存泄漏。如果内存分配成功,返回指向该内存块的指针;避免内存越界:在使用通过malloc等函数动态分配的内存块时,程序员必须确保他们的操作严格限制在这块内存的边界之内。释放未分配的内存:在释放内存时,应该确保该内存已经被分配,避免释放未分配的内存,这会导致未定义行为。

2025-03-12 22:20:22 440

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除