自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32CubeMX_CAN_CAN3_FDCAN_cubemx dcan

【代码】STM32CubeMX_CAN_CAN3_FDCAN_cubemx dcan。

2024-05-17 09:09:25 398

原创 STM32CUBEIDE之SPI读写FLASH进阶串行FLASH文件系统FatFs

10:阅读支持包驱动代码 | 移植完后,不要就不管了,一定要看FLASH厂商给的驱动流程 || 9:移植验证 | 在这里插入图片描述 |

2024-05-17 09:08:52 405

原创 STM32CUBEIDE之SPI读写FLASH进阶串行FLASH文件系统FatFs(2)

10:阅读支持包驱动代码 | 移植完后,不要就不管了,一定要看FLASH厂商给的驱动流程 |

2024-05-17 09:08:18 446

原创 STM32CUBEIDE之SPI读写FLASH进阶串行FLASH文件系统FatFs(1)

【代码】STM32CUBEIDE之SPI读写FLASH进阶串行FLASH文件系统FatFs(1)

2024-05-17 09:07:43 282

原创 Qt QFileDialog实现文件选择对话框_qfiledialog选择文件夹(1)

/QMessageBox::warning(this,tr(“提示”),tr(“打开文件”),QMessageBox::Yes|QMessageBox::No);fileDialog->setWindowTitle(tr(“打开图片”));//定义文件对话框标题。//设置默认文件路径。

2024-05-17 05:46:49 627

原创 Qt pro文件详解

接下来,我们就为大家详细地讲解 pro 文件中各个配置信息的含义,以及如何手动修改 pro 文件。

2024-05-17 05:46:15 1004

原创 Qt pro文件详解(1)

除了 Core 和 GUI 模块外,Qt 还有 SQL(包含操作数据库相关的类)、Widgets(包含构建界面的所有控件类)、Multimedia(包含提供音频、视频等功能的类)等模块,Qt 项目不会自动包含这些模块。上表中,大部分配置项不需要我们手动修改,比如 SOURCES、HEADERS、FORMS 等,当我们添加或者删除项目中的源文件时,Qt 会自动修改这些配置项。每个新创建的 Qt GUI 项目中,都默认包含 Core 模块和 GUI 模块,如果项目中用不到它们,可以使用。

2024-05-17 05:45:41 945

原创 Qt Moc及信号-槽源代码解析_qt_moc_literal

/最后调用callFunction其实就是调用qt_static_metacall,还记的文章前边说的留个印象么,现在就到了调用的最后一步。//下面是对Connection* QObjectPrivate::senders双向链表的操作。//此处省略了函数参数检查,信号及槽函数索引获取,connect类型处理等代码。//最后其实调用了QMetaObjectPrivate::connect。//根据信号索引取得此信号所对应的链表,并把此连接加入链表中。//存储了信号-槽链接的信息。

2024-05-17 05:45:07 935

原创 HTML5——Canvas图表插件 chart

常规版本的Chart.js和 Chart.min.js,附带chart.js库的同时还带着颜色解析器。如果你想使用这个版本并且在你的图表中使用时间轴,你需要在安装Chart.js之前安装上Moment.js。而另一个版本Chart.bundle.js 和Chart.bundle.min.js早就包含了Moment.js。chart.js是简单而灵活的javascript图表插件,底层封装了canvas,而且是复合目前主流的响应式。以下使用的是chart.js的2.0版本。chart.js目前有两种版本。

2024-05-17 02:07:51 366

原创 hex文件、out文件、bin文件、map文件解析

1、hex文件包含地址信息而bin文件只包含数据本身,烧写或下载hex文件时,一般不需要用户指定地址,因为hex文件内部已经包含了地址信息。hex文件包括地址信息(烧写或下载hex文件,一般不需要用户指定地址),bin文件格式只包括数据本身(烧写bin文件时,用户需要指定地址信息)。(后面所有数据地址+线性地址左移16位,将该地址左移16 位后作为基地址,并且表示在下一个04类型行出现之前都要使用该地址作为基地址来使用。0000表示该行数据的起始地址(若该行数据的数据类型为00,则为偏移地址);

2024-05-17 02:07:17 435

原创 hex文件、out文件、bin文件、map文件解析(1)

hex文件包括地址信息(烧写或下载hex文件,一般不需要用户指定地址),bin文件格式只包括数据本身(烧写bin文件时,用户需要指定地址信息)。(后面所有数据地址+线性地址左移16位,将该地址左移16 位后作为基地址,并且表示在下一个04类型行出现之前都要使用该地址作为基地址来使用。例:0xBD = 0x0100 –(0x02 + 0x00 + 0x00 + 0x04 + 0x00 + 0x3D)第①行数据基地址(首行):0x0000 +(0x003D

2024-05-17 02:06:44 381

原创 CubeMX+STM32F407+FatFS+SDIO_DMA+SD FR_DISK_ERR 错误解决方法_sdio不用fatfs方式读写文件(1)

最后在ST官方的例子中找到解决方法,耗时两天时间终于解决了,如果你看到这篇博客,那么恭喜你,各种坑我都帮你踩过了,你节省了两天时间,不煽情,直接看代码。软件环境非常重要,检查下自己不是这个版本就不要照着操作了,解决方法仅供参考,如果版本一致,100%问题会解决。怀疑SDIO_BUS_WIDE_4B有问题改为SDIO_BUS_WIDE_1B,失败。怀疑SD卡格式有问题不支持,各种格式化,FAT,FAT32,各种单元大小组合,失败。怀疑FatFS设置有问题,设置各种选项测试,失败。简单介绍下遇到的问题。

2024-05-16 21:08:35 340

原创 css垂直外边距重叠问题解决_如何解决垂直外边距重叠

我们会发现他们的间距变为两百了,为什么当一个下外边距为100px,另一个上外边距也是100px,它们边距仍然是100px,这是因为它们两个发生了垂直外边距重叠问题,因此它们两个的距离将会是它们两个外边距的最大值,这也是为什么当下面的div的上外边距改为200px,它们的间距就变为200px的原因。这种情况我们会发现我们想让box2在box1中向下移动100px,但是实际效果是这个margin-top传递给了它的父元素也就是box1,这也就是垂直外边距重叠带来的问题:子元素的外边距会传递给父元素。

2024-05-16 21:08:01 413

原创 CSRF攻击理解、简单演示与预防_yxdfcsr

这就利用了web用户身份认证的一个漏洞:简单的身份验证仅仅能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。,因为浏览器之前认证过,所以被访问的站点会觉得这是真正的用户操作。登录受信任网站A,并在本地生成Cookie。CSRF即跨站请求攻击。在不登出A的情况下,访问危险网站B。没有登录不能进行转账。

2024-05-16 21:07:26 400

原创 C++ 笔记1 第一个C++程序 结构体 联合 枚举 string、bool类型_c

namespace 名字空间名{名字空间成员1;名字空间成员2;...注:名字空间成员可以是全局函数、全局变量、类型、名字空间.

2024-05-16 16:07:11 259

原创 C++ 常见崩溃问题分析_c++ bus error

对象切片很好理解,相当于32位整数转换为16位整数时会根据目标类型裁减丢弃一部分数据,对象切片亦会裁减对象数据,它的变换过程是:分配目标类对象空间 è 复制源对象等长内存 è 设置虚拟方法表指针【如果有】,类对象切片与普通数据类型唯一的不同是它会切换对应的函数视图,如果有虚方法则还会切换虚拟方法表指针以确保调用正确的虚函数;结构类型、类类型的值传递方式呢?按照摩尔定律,内存器件的成本迅速下降,但内存紧缺的问题却没有随之解决,内存分配失败的问题依然存在,保持检测内存指针或捕获内存异常的习惯依然有必要;

2024-05-16 16:06:36 276

原创 C++ 常见崩溃问题分析_c++ bus error(2)

由于 C 和 C++ 这两种语言血缘非常近,文本亦对 C 编程语言有借鉴作用;

2024-05-16 16:06:02 263

原创 C++ 常见崩溃问题分析_c++ bus error(1)

指针传递、引用传递都是传递对象的地址,传给函数时都是把这个地址压入栈,32位平台为四个字节,64位平台为八个字节,除结构实例、类实例外的标量类型,其数据长度均固定,可以精确的计算参数所需空间;由此可以看出,标量类型、指针、引用等数据类型长度都小于等于机器字长,占用的空间小,入栈、出栈速度都是非常块的,一般情况下默认栈空间足够使用,不会出现堆栈溢出的问题;哪些数据类型会潜在的降低程序效率呢?答案是结构类型、类类型,他们是程序低效率的潜在幕后黑手;

2024-05-16 16:05:27 315

原创 51单片机项目(11)——基于51单片机的多功能万年历_51单片机万年历

低成本和简单性:51单片机作为一种经济实惠和易于使用的微控制器,对于一些简单的万年历应用而言,依然是一个合适的选择。实时应用:51单片机有较强的实时处理能力,对于时间相关的任务,如时钟、定时器和闹钟功能的实现,以及日期计算和显示等方面,51单片机具备较高的准确性和稳定性,可以满足实时应用的要求。特定领域的应用:在一些特定的应用领域,如家电控制、电子游戏、自动化设备等,由于51单片机低功耗、低成本等特点,仍然可以找到其应用的机会。设置定时器计数值:根据您的需求,设置定时器的初始计数值,即定时器开始计数的值。

2024-05-16 13:04:29 364

原创 51单片机项目(11)——基于51单片机的多功能万年历_51单片机万年历(1)

低成本和简单性:51单片机作为一种经济实惠和易于使用的微控制器,对于一些简单的万年历应用而言,依然是一个合适的选择。实时应用:51单片机有较强的实时处理能力,对于时间相关的任务,如时钟、定时器和闹钟功能的实现,以及日期计算和显示等方面,51单片机具备较高的准确性和稳定性,可以满足实时应用的要求。您可以参考单片机的资料手册和开发工具的用户指南,了解详细的定时器配置和控制寄存器设置。根据您的需求,选择合适的工作模式。设置定时器计数值:根据您的需求,设置定时器的初始计数值,即定时器开始计数的值。

2024-05-16 13:03:55 336

原创 51单片机项目(10)——基于51单片机的电压计_串口发出adc0832测量电压

自动化控制系统:电压计可以作为自动化控制系统中的重要组成部分,用于监测和反馈电压信号,实现对电路、设备或系统的控制。通过学习和实践51单片机电压计,学生能够理解自动化控制系统中的电压监测和反馈原理,并应用于相关领域,如温度控制、电源管理等。他们需要了解和掌握电压测量的原理、ADC转换技术、单片机的编程等相关概念和技术,并将它们应用于电压计的设计和实现过程中。通过学习和实践51单片机电压计,学生可以了解电压测量的原理和方法,并掌握如何使用单片机测量和显示电压值,从而提高电子设备维护和调试的能力。

2024-05-16 13:03:21 386

原创 51单片机蜂鸣器演奏《我和我的祖国》_51单片机演奏蜂鸣器音乐简谱

5, 2, 2, 4, 2, 2, 3, 2, 2, 2, 2, 6, 7, 1, 2, 6, 1, 2, 5, 1, 2, 3, 2, 6,4, 2, 6, 2, 2, 4, 1, 2, 2,1, 2, 10,//你用你那母亲的脉搏和我诉说。8, 2, 2, 2, 3, 2, 3, 3, 2, 2, 3, 2, 8, 2, 2, 6, 2, 2, 7, 2, 2, 6, 2, 3, 3, 2, 1, 5, 2, 12,//我最亲爱的祖国。//超高音 1234567。

2024-05-16 13:02:45 506

原创 Ubuntu18(2)

根本原因:我以前曾经编译过JPEG库,动态库格式是ARM的。我看网上很多人都不是碰到这个问题,所以一时没有反应过来。可以看到这是ARM平台的动态库,而编译opencv时选择了x86,所以链接失败,编译出错。,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**下面直接说问题:我请教过别人,回复说这是一个很常见的问题。

2024-05-16 01:32:59 282

原创 Ubuntu18(1)

Desktop gcc 64-bit | 桌面版 GCC 64bit编译环境生成的Qt库,是Qt的核心,必须安装 || Qt Debug Information Files | 跟踪调试Qt文件 || Qt Purchasing | 使 Qt 应用程序能够支持应用内购买 || Qt Script (Deprecated) | 脚本模块,已被弃用 || Qt Quick 3D | 为Qt6开发的新的高级3D API || Qt WebEngine | Qt Web引擎 |

2024-05-16 01:32:25 672

原创 UART(一)——起始位,停止位,奇偶校验位

一般情况硬件连接比较简单,仅需要3条线,

2024-05-16 01:31:51 994

原创 UART协议详解_uarta

例如数据传送速率为120字符/秒,而每一个字符为10位(1个起始位,7个数据位,1个校验位,1个结束位),则其传送的波特率为10×120=1200字符/秒=1200波特。校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。1、当为奇数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为1才能满足1的个数为奇数(奇校验)。

2024-05-16 01:31:15 525

原创 FreeRTOS记录(六、FreeRTOS消息队列—Enocean模块串口通讯、RAM空间不足问题分析)_freertos每个现成占用ram

我们使用消息队列接收串口的数据,那么需要在。

2024-05-15 23:21:07 821

原创 FreeRTOS记录(七、FreeRTOS信号量、事件标志组、邮箱和消息队列、任务通知的关系)_freertos 信号量 邮箱

增加邮箱部分、任务通知发送消息 Demo 2021/11/28…增加事件标志组和对应的测试 Demo 2021/11/29…增加互斥量 优先级继承 Demo 2021/11/29= 0))/***/= NULL){else {#else#endifelse {else {#else#endifelse#else。

2024-05-15 23:20:33 852

原创 FreeRTOS小项目实战------基于FreeRTOS和stm32的门禁系统_freertos项目

首先指纹模块提前采取好需要识别的指纹到模块内置的芯片里面,将手指放到指纹识别模块上,系统会检测到指纹按下并且会采取当前的指纹图像与芯片内部的指纹图像进行识别,若识别成功,蜂鸣器响两下,并且LCD屏幕会显示指纹识别成功,舵机会转动180°模拟解锁成功,当指纹识别到的图像与模块存储的指纹识别不一致,则蜂鸣器会响3下,LCD屏幕会显示指纹识别失败,舵机不会转动。

2024-05-15 23:19:59 1137

原创 FPGA项目(1)--FPGA驱动16 16点阵动态显示_ 16 16 led点阵动态显示驱动电路设计 实物

如果要显示很多字符,那么字模数据量是很庞大的。我选择的方案是将字模数据存在ROM里面。要使用的时候直接去ROM里面读取即可。注意ROM的数据宽度要为16位。其他的ROM配置步骤我在这里就不多介绍了。再接着就是根据列扫描信号,提取出对应的字模数据。由于使用了ROM,提取ROM里面的数据时,只需要给出ROM的地址就行。动态显示(滚动显示)的关键在于,传入给ROM的地址,是以人眼可以识别的频率动态变化的。首先要例化ROM模块,因为字模数据全部在ROM里面。一切准备就绪以后,就是代码的编写了。

2024-05-15 23:19:24 428

原创 从零开始搭建flink流式计算项目-2小试牛刀-物联网场景下,如何实现设备采集参数监控报警功能(1)

(img-PvE2IteJ-1715710366040)]* 触发报警的采集变量名称。// 仅针对部分设备监控。##### 报警事件。* 触发报警的采集值。* 获取物联采集数据。

2024-05-15 02:13:09 428

原创 从程序员的角度,来拆解物联网系统中的开发工作_后端开发转物联网

在开发这一类产品的时候,单片机负责产品的功能部分;通信模块负责通信部分。单片机与通信模块之间,在硬件上通过 UART 口通信居多,在协议上可以通过AT指令,或者其他的一些专有协议。近几年,在传统的消费类电子产品上,添加一个通信模块,让产品达到连网的功能,还是比较流行的。这一类的产品的软件开发工作,与一般的单片机开发并无两样。无非是增加了一些通过网络来上报数据,或者从网络接收控制指令。只要熟悉所使用的通信协议即可。上面的这种产品形态,需要对硬件进行重新设计,比较适合从零开始的产品开发。

2024-05-15 02:12:31 817

原创 交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别_arm-linux-gnueabihf-gcc与arm-linux-gnueabi-gcc区别

可选类型如fpa,fpe2,fpe3,maverick,vfp,vfpv3,vfpv3-fp16,vfpv3-d16,vfpv3-d16-fp16,vfpv3xd,vfpv3xd-fp16,neon,neon-fp16,vfpv4,vfpv4-d16,fpv4-sp-d16,neon-vfpv4等。使用-mfloat-abi=softfp就能兼容带VFP的硬件以及soft-float的软件实现,运行时的连接器ld.so会在执行浮点运算时对于运算单元的选择,-mfpu=name来指定浮点协处理的类型。

2024-05-15 02:11:54 1040

原创 交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别_arm-linux-gnueabihf-gcc与arm-linux-gnueabi-gcc区别(1)

可选类型如fpa,fpe2,fpe3,maverick,vfp,vfpv3,vfpv3-fp16,vfpv3-d16,vfpv3-d16-fp16,vfpv3xd,vfpv3xd-fp16,neon,neon-fp16,vfpv4,vfpv4-d16,fpv4-sp-d16,neon-vfpv4等。使用-mfloat-abi=softfp就能兼容带VFP的硬件以及soft-float的软件实现,运行时的连接器ld.so会在执行浮点运算时对于运算单元的选择,-mfpu=name来指定浮点协处理的类型。

2024-05-15 02:11:14 613

原创 ChatGPT GPT-4 或将从根本上改变软件工程_developing apps with gpt4 and chatgpt

今年以来,相信大家都听说过 ChatGPT、New Bing 和 GPT-4。。事实上,它们的工作效果非常好,以至于我认为我们正在追踪软件构建方式的根本性转变。这将对几乎所有事情产生剧烈影响。。我们处于一个关键时刻,在资本主义替代我们之前,我们程序员需要理解和适应这些技术。我相信大型语言模型是优秀程序员的范式转变,并开始更详细地介绍了我一直在使用这些模型及其周围应用的见解。我认为我们正处于软件构建方式的巨大革命的起点。我们还不知道如何完全释放这些工具的潜力:就像刚刚发现了外星拖拉机技术。

2024-05-14 16:40:12 964

原创 ChatGPT GPT-4 或将从根本上改变软件工程_developing apps with gpt4 and chatgpt(1)

编程也可能是最容易被 AI 技术取代的工作之一,软件的构建方式将产生根本性的转变。今年以来,相信大家都听说过 ChatGPT、New Bing 和 GPT-4。如果你从事写软件相关的业务,这些东西是非常有帮助的。事实上,它们的工作效果非常好,以至于我认为我们正在追踪软件构建方式的根本性转变。这将对几乎所有事情产生剧烈影响。讽刺的是编程也可能是最容易被这些技术取代的工作之一。我们处于一个关键时刻,在资本主义替代我们之前,我们程序员需要理解和适应这些技术。

2024-05-14 16:39:35 910

原创 CCD(像素)与视觉系统的基础知识_ccd相机拍摄的激光光斑是相对强度吗

但是,在生产线上的位置不确定、工件有不同尺寸,或者不只是检查工件是否存在,而是要测量工件大小、尺寸时,则使用一个光电传感器是远远不够的。在最基本的黑白处理中,黑色(纯黑色)的数值为 “0”,白色(纯白色)的数值为 “255”,其它处于两者之间的颜色则根据光强度转换成其它数值。光到达 CCD 的某个像素时,将根据光的强度产生相应的电荷。不知道大家是否可以理解?眼睛中央部分较黑,周围较淡,因此中央部分的数值是 “30”,周围部分的数值是 “90”。CCD 的图像数据是构成 CCD 的各像素的数据的集合。

2024-05-14 16:38:54 474

原创 2024年物联网嵌入式最新作为程序员,坚持写博客对我们有什么好处 _写博客的人太多了(1),腾讯T3亲自讲解

那么问题来了,写博客有什么好处呢,能让一个人坚持这么久?下面我就给大家一一做个解释.

2024-05-14 12:59:05 810

原创 2024年物联网嵌入式最新从硬件到软件,教你从零搭建智慧农业大脑_物联网农田服务器搭建,2024年最新2024最新物联网嵌入式开发知识体系总结

产品是一个大框架,产品下的设备可以有很多,在应用层,可以通过华为云平台提供的API创建设备,删除设备,查询设备属性,在做产品时,软件端可以做一个设备注册的引导界面,完成产品下的设备注册,再将数据传递给设备端,这个过程叫“配网“,具体逻辑需要配合设备端完成。下面先介绍如何手动创建产品,创建设备,了解创建产品创建设备的过程中需要填充什么参数,理解之后,再使用API时才更加理解参数含义。当前的软件采用是采用QT设计的,实现了产品注册、设备注册、获取在线设备,获取设备属性,远程指令发送等主要功能。

2024-05-14 12:58:26 856

原创 2024年物联网嵌入式最新从MVC到前后端分离(Rest框架搭建)_mvc rest框架,2024年最新【2024物联网嵌入式开发最新学习路线

为了使数据展现过程更加直接,并且提供更好的用户体验,我们有必要对 MVC 模式进行改进。不妨这样来尝试,首先从浏览器发送 AJAX 请求,然后服务端接受该请求并返回 JSON 数据返回给浏览器,最后在浏览器中进行界面渲染。改进后的 MVC 模式如下图所示:也就是说,我们输入的是 AJAX 请求,输出的是 JSON 数据,市面上有这样的技术来实现这个功能吗?答案是 REST。

2024-05-14 12:57:45 884

空空如也

空空如也

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

TA关注的人

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