- 博客(101)
- 资源 (14)
- 收藏
- 关注
原创 IAR环境下STM32+IAP方案的实现
IAP即为In Application Programming(在应用中编程),一般情况下,以STM32F10x系列芯片为主控制器的设备在出厂时就已经使用J-Link仿真器将应用代码烧录了,如果在设备使用过程中需要进行应用代码的更换、升级等操作的话,则可能需要将设备返回原厂并拆解出来再使用J-Link重新烧录代码,这就增加了很多不必要的麻烦。而IAP方案则是将代码区划分为两部分,两部分区域各存放一个程序,一个叫bootloader(引导加载程序),另一个较user application(用户应用程序)。
2024-07-21 16:38:14 954
原创 Kafka 消息丢失的原因分析
Kafka消息丢失的原因通常涉及多个方面,包括生产者、消费者和Kafka服务端(Broker)的配置和行为。下面将围绕这三个关键点,详细探讨Kafka消息丢失的常见原因,并提供相应的解决方案和最佳实践。总的来说,Kafka消息丢失是一个涉及多个环节的问题,需要从生产者、Broker和消费者三个层面综合考虑。通过合理的配置和策略,结合监控和及时的应对措施,可以大幅降低消息丢失的风险,确保数据在分布式系统中的可靠传递。
2024-07-19 07:33:20 1879
原创 Qunar容器集群监控系统架构实践
在为调整后面临到的这些难点,进行进一步调研,结合 Qunar 自身经验和需求参考各类相关文档以及各大厂商的架构分享时,我们注意到了 VictoriaMetrics ,并在其官网列出的诸多用户案例中,发现知乎使用 VictoriaMetrics 的数据分享与我们的数据规模量级几乎一致,而且性能与资源表现都相当优异,非常符合我们期望需求,便开始了 VictoriaMetrics 的尝鲜旅程,也归结出适合我们生产场景的云原生监控体系架构,并在后续工作中通过使用测试完全满足我们需求,进行了全面替换使用。
2024-07-17 06:47:36 918 1
原创 【OpenCV】OpenCV (C++) 与 OpenCvSharp (C#) 之间数据通信
在项目中,我们结合OpenCvSharp源码,使用OpenCvSharp数据指针实现了在C#与C++之间传递图像数据。与传统的数据传递方式相比,该方式通过传递指针,通过指针的方式实现对同一块图像数据进行操作,避免了图像数据的来回转换,极大的节省了程序运行时间以及内存消耗。
2024-05-09 10:04:08 636 7
原创 解析Spring中的循环依赖问题:初探三级缓存
这个情况很简单,即A对象依赖B对象,同时B对象也依赖A对象,让我们来简单看一下。// A依赖了Bclass A{public B b;// B依赖了Aclass B{public A a;这种循环依赖可能会引发问题吗?在没有考虑Spring框架的情况下,循环依赖并不会带来问题,因为对象之间相互依赖是非常普遍且正常的现象。比如a.b = b;b.a = a;这样,A,B就依赖上了。然而,在Spring框架中存在一个令人头疼的问题,即循环依赖,这一问题的根源是什么呢?
2024-05-08 11:05:41 1140
原创 SpringBoot中bean的生命周期
Bean 生命周期管理是 Spring Boot 中的关键功能之一。它负责管理应用程序中的 Java 对象,这些对象被称为 Beans。Spring Boot 通过创建、配置、初始化和销毁这些 Beans 来确保应用程序的正常运行。这个功能的目的是提供一种灵活的方式,使开发人员能够轻松地管理对象的生命周期,从而实现高效的依赖注入和组件化开发。1、实例化:在 Spring 容器启动时,Spring 会创建配置中定义的所有 Bean。这是通过 Java 类的构造函数或工厂方法来完成的。
2024-05-03 20:50:34 1290 3
原创 在Avalonia项目中使用MediatR和MS.DI库实现事件驱动通信
站长开发工具做了在线版,也做了跨平台桌面版本(AvaloniaUI),两个版本使用MediatR可以复用大部分事件代码。
2024-04-28 22:10:13 701
原创 Python实现snap:对齐多张遥感影像的空间范围
是裁剪其他栅格图像时,所用的模板栅格图像——因为我们要统一各个栅格图像的行号与列号,所以很显然,这里这个模板图像就需要找各个栅格图像中,,表明我们将以所选用的模板文件为标准,使得输出的结果文件的像元大小、图像范围等与模板文件保持一致。其中,第一个参数就是当前循环所用的栅格图像文件,第三个参数是结果文件的保存路径与文件名,第四个参数则是模板文件;运行结果后,可以发现所有输出结果文件就具有完全一致的行数与列数了,且其各自的像元位置也是完全一致的。这里需要注意,如果大家的各个栅格图像中,行数与列数最少的栅格。
2024-04-28 22:07:31 259
原创 什么是正向代理和反向代理?
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替我们完成某些任务。在技术领域,这个概念也被广泛应用,尤其是在计算机网络通信和程序设计中,代理扮演着相当重要的角色,涉及控制访问、安全保护、能力扩展等复杂而强大的方面。
2024-04-27 17:27:35 881
原创 【深度学习】无人不识又无人不迷糊的this
this实际上是在函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用。如果要判断一个运行中函数的this绑定,就需要找到这个函数的直接调用位置。找到之后就可以顺序应用下面这四条规则来判断this的绑定对象。ES6中的箭头函数并不会使用四条标准的绑定规则,而是根据当前的词法作用域来决定this,具体来说,箭头函数会继承外层函数调用的this绑定(无论this绑定到什么)。这其实和ES6之前代码中的self = this机制一样。
2024-04-27 17:26:18 692
原创 线上频繁fullgc问题-SpringActuator的坑
一个不算普通的周五中午,同事收到了大量了cpu异常的报警。根据报警表现和通过arthas查看,很明显的问题就是内存不足,疯狂无效gc。而且结合arthas和gc日志查看,老年代打满了,gc不了一点。既然问题是内存问题,那么老样子,通过jmap和heap dump 文件分析。不感兴趣的可以直接看结论通过jmap命令查看的类似下图,并没有项目中明显的自定义类,而占空间最大的又是char数组,当时线上占900M左右,整个老年代也就1.8个G;此时dump文件同事还在下载,网速较慢。
2024-04-27 17:25:05 898
翻译 合科泰推出一款经典且常用的TO-220封装高压MOS管4N60
家电应用之高压吹风机和智能高压锅等产品上,这款产品的漏极-源极击穿电压高达600V,4A的正向电流,具有高温工作能力,高效率、稳定、宽温、安全等特点使得它在这类高压应用上大有可为,在具体的。4N60在开关电源应用上,由于它能够承受较高的电压,具有较小的导通电阻,它能够在高压开关电源上起到高效开关和稳压作用。合科泰这款4N60高压MOS管具有很好的电学特性,它的漏源电压600V,栅源电压30V,连续漏极。,4N60具有更好的产品特性,如开关时间快,栅极低充电,低导通状态。储能、光伏、电瓶车、智能家用电器、
2024-04-26 21:33:46 58
翻译 近千尝试开挂的《Apex》《CSGO》玩家个人信息被盗
网络安全公司Sophos近日调查发现,自二月份以来,有相当多的菜鸡《Apex英雄》和《CS:GO》玩家尝试着下载开挂软件,而这实际上导致他们的电脑感染了盗取关键信息的病毒。而全球源源不断的想要投机取巧的玩家,则充当了传播病毒的勤劳“蜜蜂”,使得类似的恶意软件想要被完全隔绝十分困难。一旦获得数据,Baldr背后的运营团队就在灰色市场中出售这些数据,Sophos公司则惊叹于其效率高超:“引起我们注意的原因就在于,Baldr能够迅速盗取信息,并无缝的将受害者资料转移出去。它冲进电脑,席卷一切,然后再弹射离开。
2024-04-25 09:14:15 91 1
原创 php反序列化漏洞中的POPchain和POC构造实战
了解到__get()魔术方法是用于从不可访问的属性读取数据,简单说来就是当程序调用类里面不存在的对象的时候会调用__get()方法。向下寻找,发现__invoke魔术方法,这个魔术方法的触发条件是对象被当成函数一样调用,这样的话就会将var作为append的参量并触发append函数。我们可以将$str的值赋为类Test的一个实例,显然类Test中没有source对象,这样的话就能触发类中的__get方法了。,根据提示,flag存在于flag.php中,那我们需要做的是将这个文件include进来;
2024-04-25 09:10:26 461
原创 你真会判断DataGuard的延迟吗?
曾经遇到有用户在巡检ADG延迟时,只简单关注了前者,看都是0就判断没问题,可实际情况已经有很大的gap,这就是没有同时关注TIME_COMPUTED、DATUM_TIME的结果。是正常的,这一点其实可以通过反证,比如将ADG设置为SYNC同步模式,TIME_COMPUTED、DATUM_TIME二者时间依然会有1~2s的差值,而此时机制是强同步的。上面例子,TIME_COMPUTED、DATUM_TIME二者时间近似,且随系统时间变化,但是实际ADG已经有了37分钟的应用延迟,体现在apply lag值。
2024-04-25 09:07:33 1227
翻译 AI训练,为什么需要GPU?
将AI训练这种并行性自然地映射到GPU,与仅使用 CPU 的训练相比,速度明显提升,并使它们成为训练大型、复杂的基于神经网络的系统的首选平台。婴儿的大脑是一张白纸,经过后天的学习便可实现高度的。如果我们给它未知的问题,它也能很好地找出答案,就认为训练是成功的,AI的“泛化”效果很好。复杂的任务管理和调度使得它需要更复杂的控制器和更大的缓存,进行逻辑控制和调度,保存各种任务状态,以降低任务切换时的时延。CPU的核数少,单个核心有足够多的缓存和足够强的运算能力,并辅助有很多加速分支判断甚至更复杂的逻辑判断的。
2024-04-24 10:26:28 66 1
原创 MySQL 8.0从库某些情况下记录重放的CREATE TABLE、DROP TABLE语句到慢日志(slow log)
当主从复制采用 binlog 的行模式时,如果从库启用 slow_query_log、log_slow_replica_statements 且从库重放 CREATE TABLE、DROP TABLE 时因特殊情况(比如被从库其他 SQL 占用 MDL 锁)执行耗时较长,会被从库记录到慢日志(slow log),而 ALTER TABLE 却不会被记录到慢日志。按照官方的描述,在 binlog_format 是行模式的情况下,即使启用。参数,从库重放时也不该产生慢日志。
2024-04-24 10:22:54 362
原创 Python实践:基于Matplotlib实现某产品全年销量数据可视化
Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形;Matplotlib可生成绘图、直方图、功率谱、条形图、错误图、散点图、折线图等;Matplotlib是Python生态系统的一个重要组成部分,是用于可视化的绘图库;Matplotlib提供了一整套和matlab相似的命令API和可视化界面,可以生成出版质量级别的精美图形。
2024-04-24 10:21:31 449
翻译 润和Hi3861学习笔记(一)——通过查询GPIO状态控制LED灯
本文学习参照润和软件HarmonyOSIoT设备开发一书,但由于版本迭代,书中很多代码无法编译,笔者在此进行补充更改,如有错误,请各位大佬多多指正。更多细节可购买此书进一步了解。注:本文源代码版本:OpenHarmony v3.0.1LTS(2022-01-12)
2024-04-23 11:18:04 271 2
原创 Java开发者的Python快速进修指南:异常捕获
写自定义异常时,你会发现跟Java一样的思路,这就是为什么从Java转向Python的过程非常简单。你已经具备了各种能力,只需要用另一种语法重新实现一次即可。事实上,所有的编程语言都有相似之处,包括前端的Vue、React等框架也是如此。这意味着你可以在不同的语言中迅速适应和转换,因为它们之间存在共通的原理和概念。所以,只要你理解了一种编程语言,学习和掌握其他语言就会变得更加容易。try:# 可能引发自定义异常的代码块# 处理自定义异常的代码块print(e)
2024-04-23 11:10:30 910
原创 Java开发者的Python快速进修指南:函数进阶
在这篇文章中,我们介绍了函数的两种不常用的特殊用法:匿名函数和装饰器函数。匿名函数是一种没有名称的函数,通常用于定义简单的功能。我们可以使用lambda关键字来创建匿名函数,并在需要时直接调用它们。装饰器函数是一种特殊的函数,可以接受一个函数作为参数,并返回一个新的函数。装饰器函数通常用于在不改变原函数代码的情况下,对函数进行扩展或修改。通过使用装饰器,我们可以在函数调用前后执行额外的操作。这些特殊用法可以帮助我们更灵活地使用函数,并使代码更加简洁和可读。
2024-04-23 11:09:46 446
原创 Java开发者的Python快速进修指南:函数基础
本文介绍了函数的基本概念和与Java方法的区别。在Python中,函数使用"def"关键字进行声明,不需要像Java方法一样讲究修饰符等其他特性。函数的参数可以有默认值,并且可以通过传递关键字参数的方式来指定参数顺序。Python函数还具有可变参数和关键字参数的特性,可以接收不定数量的参数,并且参数的顺序可以任意。与Java不同的是,Python函数可以返回多个值,而Java需要将多个值封装成对象。此外,Python还提供了一些内置函数,如range、zip、all、any等。
2024-04-23 11:09:07 521
原创 使用Python的turtle模块绘制美丽的樱花树实例
通过本文的学习和实践,我们掌握了使用Python的turtle模块来创作樱花树图画的技巧,这个过程中,我们深入了解了turtle模块的基本命令和递归等编程概念,这些都是构建更复杂项目的重要基础。也希望读者能够将这些知识应用到自己的项目中。无论是绘制其他自然景物还是创造抽象艺术作品,都可以借助turtle模块来实现。
2024-04-22 15:15:14 318 2
原创 爬虫实战+数据分析:全国消费支出分析及未来预测+代码分享
完美收官,本文是爬虫实战的最后一章了,所以尽管本文着重呈现爬虫实战,但其中有一大部分内容专注于数据分析。爬虫只是整个过程的起点,其主要目的之一就是为后续数据分析等工作做好准备。通过对爬取的数据进行精确的清洗和分析,可以揭示其中隐藏的规律和趋势,为决策提供有力支持。因此,爬虫实战并不仅仅是技术的展示,更是对数据价值的挖掘和充分利用。还有一点需要特别强调的是,绝对不能利用这种方式从中谋取个人利益,比如搭建爬虫网站等手段,这些行为是违法的。
2024-04-22 15:13:31 841
翻译 74hc241引脚图应用电路与pdf中文资料
74hc240与74hc244,74hc241的管脚图对比 可以看出他们的功能是十分接近,其中240多一个反相 的功能,74hc。74HC240,74HC241,74HC244为同一系列的产品,他们的区别很小在引脚及其功能方面下面的中文资料中都有详细的说明.74HC241 是CMOS电路,74ls241是双极晶体管型电路,二者的特性差别很大,LS器件是淘汰型,尽量不要选用。74hc244及74hc241 74hc240功能表。dip封装的74hc241引脚图。74hc241封装图。74hc241功能表。
2024-04-22 15:11:41 625
原创 C# TreeView控件索引Arduino基本语句结构用法
灵感一到,如下产生。textBox2.Text =@"C:\Users\Mr.wang\Desktop\c#学习\"+e.Node.FullPath;PS:我用node.fullpath属性得到的路径不是绝对路径,大家可以用别的法子比如System.IO.path.GetFileName();MessageBox.Show(ex.Message+"\r\n出错的位置为:Form1.PaintTreeView()函数");//定义PaintTreeView函数得到程序所在路径下的所有文件夹和文件夹的子文件。
2024-04-21 19:43:57 911 2
原创 stm32使用内部RC晶振
define RCC_HCLK_Div4 ((u32)0x00000500) // APBx 时钟 = HCLK/4;#define RCC_SYSCLK_Div2 ((u32)0x00000080) // AHB 时钟 = 系统时钟/2;#define RCC_SYSCLK_Div4 ((u32)0x00000090) // AHB 时钟 = 系统时钟/4;//APB2时钟为2M。
2024-04-21 19:42:15 1337
原创 stm8 RTC自动唤醒
关于RTC_Config中的while语句对应手册里的一句话关于RTC->ISR1中的WUTWF位 This bit is set by hardware when the wakeup timer values can be changed, after the WUTE bit has been set to 0 in RTC_CR2 0: Wakeup timer update not allowed. 1: Wakeup timer update allowed.{ RTC_DeInit();
2024-04-21 19:41:33 365
原创 【单片机】电感的作用及分类
可见电感的作用如此之大,大家都知道,信号频率越高,越容易辐射出去,而一般的信号线都是没有屏蔽层的,这些信号线就成了很好的天线,接收周围环境中各种杂乱的高频信号,而这些信号叠加在原来传输的信号上,甚至会改变原来传输的有用信号,严重干扰电子设备的正常工作,因此降低电子设备的电磁干扰(EM)已经是必须考虑的问题。电感按电感的作用可分为振荡电感,校正电感,显像管偏转电感,阻流电感,滤波电感,隔离电感,被偿电感等.可调式电感又分为磁心可调电感,铜心可调电感,滑动接点可调电感,串联互感可调电感和多抽头可调电感.
2024-04-20 14:42:10 389 1
原创 【单片机】电阻的作用
人体的电阻一般为高电阻的 ,这样人站在地面上用测电笔接触220的电源,那么测电笔中高电阻分压约为200V,人体承受的电压就只有20V,低于36V,这样就没有触电的危险了。再如在可调光台灯的电路中,为了控制灯泡的亮度,也可在电路中接入一个限流电阻,通过调节接入电阻的大小,来控制电路中电流的大小,从而控制灯泡的亮度。再如,在缺电压表测电阻的实验设计中,可设计如图3所示的实验电路,利用分流电阻R与待测电阻并联,借助于电流表测干路电流和分流电阻R中的电流,利用并联分流公式,可求出待测电阻 的阻值。
2024-04-20 14:41:29 681
翻译 [经验] STM32实例教程,带你了解FSMC的功能和用法
模式 A 支持独立的读写时序控制, 这个对我们驱动 TFTLCD 来说非常有用,因为 TFTLCD 在读的时候,一般比较慢,而在写的时候可以比较快,如果读写用一样的时序,那么只能以读的时序为基准,从而导致写的速度变慢,或者在读数据的时候,重新配置 FSMC 的延时,在读操作完成的时候,再配置回写的时序,这样虽然也不会降低写的速度,但是频繁配置,比较麻烦。为一个地址信号,比如我们把 RS 接在 A0 上面,那么当 FSMC 控制器写地址 0的时候,会使得 A0 变为 0,对 TFTLCD 来说,就是写命令。
2024-04-20 14:40:38 927
翻译 电容的作用与分类
电容是一种我们经常使用到的电子元件,电容器是一种能储存电荷的容器.它是由两片*得较近的金属片,中间再隔以绝缘物质而组成的.按绝缘材料不同,可制成各种各样的电容器.如:云母.瓷介.纸介,电解电容器等.下图片所示的就是一中电脑主板中用到的电解电容。常用电容按介质区分有纸介电容、油浸纸介电容、金属化纸介电容、云母电容、薄膜电容、陶瓷电容、电解电容等。纸介电容 用两片金属箔做电极,夹在极薄的电容纸中,卷成圆柱形或者扁柱形芯子,然后密封在金属壳或者绝缘材料(如火漆、陶瓷、玻璃釉等)壳中制成。它的
2024-04-19 15:43:28 48
原创 单片机键盘接口程序设计
0输入为高电平,S闭合后,P1。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。以上程序功能很简单,但它演示了一个单片机键盘处理程序的基本思路,程序本身很简单,也不很实用,实际工作中还会有好多要考虑的因素,比如主循环每次都调用灯的循环程序,会造成按钮反应“迟钝”,而如果一直按着键不放,则灯不会再流动,一直要到松开手为止,等等,大家能仔细考虑一下这些问题,再想想有什么好的解决办法。
2024-04-19 15:42:04 609
原创 矩阵式键盘接口技术及程序设计
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。键盘处理程序就作这么一个简单的介绍,实际上,键盘、显示处理是很复杂的,它一般占到一个应用程序的大部份代码,可见其重要性,但说到,这种复杂并不来自于单片机的本身,而是来自于操作者的习惯等等问题,因此,在编写键盘处理程序之前,最好先把它从逻辑上理清,然后用适当的算法表示出来,最后再去写代码,这样,才能快速有效地写好代码。办法是对键盘的行线进行扫描。
2024-04-19 15:40:58 582
翻译 如何解决 Redis 数据倾斜、热点等问题
Redis 集群 总共有4台机器,假设数据分布均衡,每台机器承担 四分之一的流量,如果某一台机器突然挂了,顺时针方向下一台机器将要承担这多出来的 四分之一 流量,终要承担 二分之一 的流量,还是有点恐怖。由于业务数据特殊性,按照指定的分片规则,可能导致不同的实例上数据分布不均匀,大量的数据集中到了一台或者几台机器节点上计算,从而导致这些节点负载多大,而其他节点处于空闲等待中,导致终整体效率低下。对于每次读请求,将首先检查该数据是否存在于本地缓存中,如果存在则直接返回,如果不存在再去访问分布式缓存的服务器。
2024-04-18 21:42:49 231 1
原创 C语言里如何编写精确的微量延时
而在编写嵌入系统驱动程序时,常常需要比较精确的软件延时,这使得C语言的“劣势”暴露了出来,一般都只能通过嵌入汇编的方式实现。本文提出一种简化书写的延时方案,使用带参数的宏构来造微小时间片,可以实现完全精确的软件延时,大大方便了驱动程序及软件模拟通信协议的编写。就是说,NOP(3)展开后成为NOP_3,NOP(4)展开后成为NOP_4,等等。故NOP(N)的参数必须是具体的常量,即只能是数字,并且,与该数字相对应的宏NOP_N已必须已经定义。这是因为NOP(N)宏展开之后,不是一个语句,而是变成N个语句。
2024-04-18 21:40:26 286
原创 嵌入式C通用延时驱动的编写方法
但细心的读者会发现:延时函数的参数(比如上面的 n ),表征的是循环语句的“循环次数”,而不是“实际的延时时间”。一般来说,假令循环语句每循环一次的时间为 b(注意,单位是“步”,即一个时钟周期,下同),函数调用、传值和返回所需的固有时间为 a ,那么,给定参数 n 时,调用一次延时函数实际实现的延时时间应为 t = a + b*n , ——而不是 n!下面给出一个完整的延时驱动程序。/***************** ★○★ 配 置 信 息 ★○★ ******************/
2024-04-18 21:39:38 458
ST30自动组装压销机sw20可编辑_机械3D图可修改打包下载_机械3D图可修改打包下载.zip
2024-10-15
feilong开发工具库 v4.1.2
2024-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人