自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32_ADC框图理解_stm32中jl[1 0]什么意思 (1)

注入通道组强行插入规则通道组进行转换,例如图2,有3个规则通道和2个注入通道,当转换完成规则通道1时,若发生了事件(中断等),于是插入了注入通道组,转换完注入通道组后,才回到规则通道组进行转换。规则通道组有16个通道(1~16),每个通道按顺序(由通道1至通道16的顺序)转换ADC的外部信号源(ADC通道),例如图1,有四路需要转换的ADC1信号源,将ADC1的外部信号源IN1装入通道2、IN2装入通道3、IN5装入通道1、IN9装入通道4,则ADC1的转换顺序为IN5->IN1->IN2->IN9。

2024-05-17 09:35:44 412

原创 stm32pid算法控制电机转速_一文读懂直流电机控制算法的精髓

电机控制算法的作用是接受指令速度值,通过运算向电机提供适当的驱动电压,尽快地和尽快平稳地使电机转速达到指令速度值,并维持这个速度值。控制算法是任何闭环系统控制方案的核心,然而并非越复杂、精度越高的算法越好,因为比赛要求非常高的实时性,机器人必须在非常短的时间内作出灵敏的反应,所以现代的一些先进控制算法,比如模糊控制、神经元网络控制等就不能应用到小车控制系统里。否则,不断降低的偏差值会使输出值接近零,而且由于电机工作时需要持续的PWM信号,控制系统将会使电机稳定在低速运转状态上,从而导致控制系统策略失败。

2024-05-17 09:35:10 247

原创 STM32LCD--基于HAL库(选中高亮?一文看懂如何玩转高亮显示)_mdk5中怎么把选中的都高亮

还是这行代码,F12进去。这里面有个变量,根据上面几张图片可以知道这个变量作为参数传递,到最后会成为。ptr是字符串指针,每次循环ptr都会自增1(指向下一个字符),所以行显示函数内部其实就是一个一个字符从左到右显示出来(LCD面向自己),并且可以确定。Y轴正方向是如何确定的呢,看refcolumn值的变化,从左到右显示时,refcolumn每次自减16,所以可以得出。

2024-05-17 09:34:36 283

原创 STM32L051使用HAL库操作实例(6)-(IWDG)独立看门狗实验_stm32l051 printf范例

由图可知LSI频率为37KHZ,看门狗定义周期时间的方式和基本、通用类型可编程定时器完全一致,假设定义1秒周期的看门狗定时器,独立看门狗初始化函数,此函数初始化了在STM32CubeMX内设置的参数,系统已经处理好了,并已经添加在了main函数内;喂狗调用函数,这个需要我们自行添加到main函数的while内;提示:由于LSI振荡器精度有限,在运行过程中会存在一定的误差。②串口打印部分的配置可参看前面的文章(4)串口实验配置。本例程使用的为STM32L051C8T6型号。本例程的main.c。

2024-05-17 09:34:02 245

原创 Qt5 Widget 连接数据库mysql_qt中的widget怎么关联数据库

query.exec(“insert into student(id ,name ,age ,score) values(20153237,‘小崔’,22,100);query.exec(“insert into student(id ,name ,age ,score) values(20153237,‘小崔’,22,100);

2024-05-17 06:13:07 895

原创 QT5 quazip解压缩文件-开发环境搭建(最详细)_quazip qt5

将前面编译好的zlib的lib拷到lib目录,我这里已经把我编译好的vs2017x64的库考进去了,如果是其他版本替换即可。将前面编译好的quazip.lib放入lib中,在quazib中搜索.h,将所有的.h复制到include中。可以直接在creator里面写一个界面程序,加上编译好的qualib进行测试,这里我就不说明了。提前安装好Qt5,和QtCreator,选择安装MSVC2015和MSVC2017的编译器。我喜欢在vs中安装qt5的插件,用vs进行调试,这是个人习惯。然后构建,构建成功,如下。

2024-05-17 06:12:33 287

原创 QT-GUI应用程序设计基础_qtuigg

这其实也是很好理解的,命名空间的作用其实就是将变量和类型的作用范围给控制起来,这样可以使得在不同的作用范围内,可以使用相同的类型名或变量名。然后再该文件中,定义的Widget类中包含一个指针,该指针就是指向命名空间中的Widget的,这也可以更直观的了解这两个类不是同一个类。这里有一个容易搞混的点,那就是widget.h中的命名空间中的类Widget和在该文件中定义的类Widget不是同一个类。刚开始接触QT编程的时候,发现可以使用ui组件界面来编程,看一些教程又没有使用ui组件界面,当时是挺疑惑的。

2024-05-17 06:11:59 312

原创 QT-GUI应用程序设计基础_qtuigg(1)

这其实也是很好理解的,命名空间的作用其实就是将变量和类型的作用范围给控制起来,这样可以使得在不同的作用范围内,可以使用相同的类型名或变量名。然后再该文件中,定义的Widget类中包含一个指针,该指针就是指向命名空间中的Widget的,这也可以更直观的了解这两个类不是同一个类。这里有一个容易搞混的点,那就是widget.h中的命名空间中的类Widget和在该文件中定义的类Widget不是同一个类。刚开始接触QT编程的时候,发现可以使用ui组件界面来编程,看一些教程又没有使用ui组件界面,当时是挺疑惑的。

2024-05-17 06:11:25 313

原创 JavaScript数组去重(12种方法,史上最全)_js s去重(2)

五、利用对象的属性不能相同的特点进行去重(这种数组去重的方法有问题,不建议用,有待改进)七、利用hasOwnProperty。十、利用Map数据结构去重。六、利用includes。八、利用filter。

2024-05-17 02:34:42 161

原创 JavaScript数组去重(12种方法,史上最全)_js s去重(1)

五、利用对象的属性不能相同的特点进行去重(这种数组去重的方法有问题,不建议用,有待改进)七、利用hasOwnProperty。十、利用Map数据结构去重。六、利用includes。八、利用filter。

2024-05-17 02:34:08 136

原创 JavaScript console

console.log(“s测试: %s-%s-%s-%s”, “wuyujin”, 1997, 123.456, {name:“aaa”,age:22});console.log(“我的名字:”, name, “,生于:”, birth, “,成绩:”, score, “,其他信息”, info);console.log(“我的名字:%s,生于:%d,成绩:%f,其他信息:%o”, name, birth, score, info);

2024-05-17 02:33:34 256

原创 JavaEE进阶——FastDFS实现分布式文件系统_java 实现分布式文件系统

如果是在不同的服务器安装,需要在新的机器编译FastDFS_v5.05.tar.gz源码包,不需要配置Tracker服务而已。官方提供一个jar包:fastdfs_client_v1.20.jar。

2024-05-17 02:33:01 825

原创 C语言指向数组元素的指针变量的定义和赋值_指针数组赋值

(8) (*p)++ //表示p所指向的元素加1,如果p指向的数组首地址,那么就等价于 a[0]++,实际上就是数组元素值+1,不是指针加一。p++是先用后加,所以*(p++)整个作用是:得到p 指向的变量的值(*p),然后再使p指针自加1,指向下一个数组元素。(b) p可以指向数组元素以外的内存地址,但是不可以使用这个地址,因为不属于你,你不能操作。//先打印a[1]的值14,然后p指向了a[1]因为p是指向数组首地址,所以 p[i] 等价于 *(p+i),也就是跟 a[i]等价。

2024-05-16 21:35:06 349

原创 C语言指向数组元素的指针变量的定义和赋值_指针数组赋值(1)

假如:现在p指向数组首地址,a是数组名(代表数组首地址),那么p+i 或者 a+i 就是数组元素 a[i] 的地址,也就是说它们指向了数组a的第 i 个元素。有了上面(3)自然知道(4),这两个是 p+i 或者 a+i 所指向的数组元素,也就是a[i],比如:*(p+2) 或者 *(a+2)就是a[2].p++是先用后加,所以*(p++)整个作用是:得到p 指向的变量的值(*p),然后再使p指针自加1,指向下一个数组元素。结论:p+i 或者 a+i ,都是地址,既然是地址,就可以赋给指针变量。

2024-05-16 21:34:32 325

原创 C语言快排函数qsort()_c语言快速排序库函数

cmp函数的返回值,0(进行置换),0(不进行置换)。涵盖了95%以上物联网嵌入式知识点,真正体系化!

2024-05-16 21:33:58 308

原创 C语言开发单片机为什么大多数都采用全局变量的形式?_c语言开发单片机为什么大多数都采用全局变量的形式

相对比较简单,基本上在一个mian.c文件就能做完整个产品功能,一些数据也是通过全局变量的方式去存储,虽然使用方面,但是程序如果大了变量不注释有时候就忘记是干嘛用的了。虽然我在这个行业做了10年,但是真正代码水平有质的飞越也就在那2,3年,还是自己摸索的情况下,如果当初有人带,成为现在的水平其实只需要1年。不同的参数对应不同的设置值,比如说上图的GPIO工作模式,通过枚举来给值重命名,这样可以增强可读性。,还是那句话,可能是你接触的代码都是这样子,而更好的代码结构你或许没接触到。

2024-05-16 21:33:24 313

原创 ad+硬件每日学习十个知识点(30)23(1)

答:SDIO(Secure Digital Input Output)端口扩展器是一种用于扩展设备功能的硬件设备。它允许在SD卡插槽上连接其他外设,并通过SDIO接口与主机设备进行通信。SDIO端口扩展器通过在SD卡的接口上添加额外的引脚和电路来实现扩展功能。它可以支持各种外设,例如无线网络模块(Wi-Fi、蓝牙)、GPS模块、摄像头、音频设备等。通过连接这些外设,SDIO端口扩展器使主机设备能够使用更多的功能和服务。

2024-05-16 13:31:13 219

原创 ad+硬件每日学习十个知识点(2)23

答:“bus recessive”(总线隐性位)是指在一些串行总线通信协议中的一个状态,用于表示总线上没有数据传输时的默认逻辑状态。在一些串行总线通信协议中,如CAN(控制器局域网络)或LIN(局域网互连)等,总线上的数据传输是通过在总线线路上传递不同的电平信号来表示的。其中,总线隐性位表示总线上没有数据被传输的状态。一般而言,总线隐性位由传输线保持在某个特定电平状态(例如低电平),表示总线上没有设备在发送数据。

2024-05-16 13:30:39 278

原创 ad+硬件每日学习十个知识点(2)23(1)

在正向偏置下,当二极管的正向电压超过其阈值电压(通常为0.6-0.7伏特,具体取决于二极管材料和制造工艺),二极管会开始导通。此时,钳位电压是指二极管导通时的电压。在反向偏置下,当二极管的反向电压超过其反向击穿电压时,二极管会发生击穿,并开始导通。此时,钳位电压是指二极管发生击穿时的电压。

2024-05-16 13:30:06 353

原创 ad+硬件每日学习十个知识点(21)23

数据链路层的主要任务是将上层提供的数据包(称为帧)分割为适当大小的数据块,并为每个数据块添加必要的控制信息。它提供了一个可靠的物理连接,为上层提供了最基本的数据传输能力,为更高层的数据链路层、网络层和以上的层提供了通信的基础。当这些一个有一个小的内部网络需要通信,就需要网络层(选择传输路径)和传输层(保障数据传输的稳定性),再通过建立连接会话层,来进行发送。这五个层级共同构成了OSI模型,每一层都有各自的功能和协议,彼此之间通过定义好的接口进行交互和通信,以实现数据在网络中的传输和处理。

2024-05-16 13:29:30 335

原创 win10安装qt5(1)

因此,与之前的安装包相比,体积也是大了不少,以前是 1G 多,现在是 3G 多。,选择我们需要安装的版本,这里我想安装的是5.12大版本,小版本是6,所以我下载的就是5.12.6的windows版本。5、进入选择组件界面,在这里务必选对Qt安装所需组件,否则安装后是无法正常运行的。4、更换安装路径,尽量不要安装在C盘,我在D盘的文件夹中创建了一个Qt5.12.6文件夹,然后Next。,然后选择删除所有组件,点击卸载,5s就卸载完成,然后重启电脑,Qt就被卸载干净了。9、点击安装,等待安装完成。

2024-05-16 01:59:45 501

原创 Win10中docker的安装与使用_win10安装docker

在过去,如果你要开始编写一个Python应用程序,你的第一步就是在你的机器上安装一个Python运行库。但是,这会造成您的机器上的环境必须满足一定条件以使您的应用程序可以运行。使用Docker,你可以将一个可移植的Python运行库作为一个映像,不需要安装。然后,您的构建可以将基础Python镜像与应用程序代码一起包括在内,确保您的应用程序,依赖项和运行时都一起运行。这些可移植的镜像是由一个叫做Dockerfile的东西来定义的。

2024-05-16 01:59:11 328

原创 Win10中docker的安装与使用_win10安装docker(1)

在过去,如果你要开始编写一个Python应用程序,你的第一步就是在你的机器上安装一个Python运行库。但是,这会造成您的机器上的环境必须满足一定条件以使您的应用程序可以运行。使用Docker,你可以将一个可移植的Python运行库作为一个映像,不需要安装。然后,您的构建可以将基础Python镜像与应用程序代码一起包括在内,确保您的应用程序,依赖项和运行时都一起运行。这些可移植的镜像是由一个叫做Dockerfile的东西来定义的。

2024-05-16 01:58:37 817

原创 wifi连接过程抓包_wlan接入过程 共享密钥认证抓包

22~25包,是Block Ack机制。

2024-05-16 01:58:01 257

原创 Linux图形化界面安装_linux图形化页面怎么打开imc安装程序

(img-XSoRrJI5-1715788054127)]点击软件选择 然后选择GNOME 桌面 点击完成。默认磁盘大小 选择红色框内的(默认就是)然后点一下enter 进入这个页面等待安装。点击网络和主机名 把以太网打开 点击完成。设置root密码 点击完成 用户不用创建。点击安装位置 然后点击完成 (默认不改)这个页面翻到最下面选择中文 点击继续。选择安装到的路径还有虚拟机的名称。点击创建用户 创建好后点击完成。输入创建用户的密码就可以进去了。根据需求选择不同的网络类型。

2024-05-15 23:47:56 292

原创 Linux命令常见面试题_linux常用命令面试题

r file 为所有用户分配读权限 chmod444file同上例chmod444file同上例 chmod a-wx,a+r file同上例 $ chmod -R u+r directory 递归地给 directory 目录下所有文件和子目录的属主分配读的权限。file 的属主分配读、写、执行(7)的权限,给 file 的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限。创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件。

2024-05-15 23:47:22 715

原创 Linux命令常见面试题_linux常用命令面试题(1)

(文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。][-S …方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?kill [-s ][程序] 或 kill [-l ]

2024-05-15 23:46:48 798

原创 Linux内核模块详解_在linux内核中以下哪些模块负责处理中断

内核模块的另外一个困难,是内核失效对于整个系统或者对于当前进程常常是致命的,而在应用程序的开发过程中,缺段(segment fault)并不会造成什么危害,我们可以利用调试器轻松地跟踪到出错的地方。所以在内核模块编程的过程中,必须特别的小心。好了,下面我们可以具体地看一看内核模块机制究竟是怎么实现的。2.2 内核符号表首先,我们来了解一下内核符号表这个概念。内核符号表是一个用来存放所有模块可以访问的那些符号以及相应地址的特殊的表。模块的连接就是将模块插入到内核的过程。

2024-05-15 23:46:12 567

原创 助力工业物联网,工业大数据之服务域:AirFlow的介绍【三十一】_airflow大数据

目标了解AirFlow的功能特点及应用场景路径step1:背景step2:设计step3:功能step4:特点step5:应用实施+ **起源**- 2014年,Airbnb创造了一套工作流调度系统:Airflow,用来替他们完成业务中复杂的ETL处理。从清洗,到拼接,只用设置好一套Airflow的流程图。- 2016年开源到了Apache基金会。- 2019年成为了Apache基金会的顶级项目:http://airflow.apache.org/。

2024-05-15 02:43:24 512

原创 助力工业物联网,工业大数据之服务域:AirFlow的介绍【三十一】_airflow大数据(1)

目标了解AirFlow的功能特点及应用场景路径step1:背景step2:设计step3:功能step4:特点step5:应用实施+ **起源**- 2014年,Airbnb创造了一套工作流调度系统:Airflow,用来替他们完成业务中复杂的ETL处理。从清洗,到拼接,只用设置好一套Airflow的流程图。- 2016年开源到了Apache基金会。- 2019年成为了Apache基金会的顶级项目:http://airflow.apache.org/。

2024-05-15 02:42:46 298

原创 助力工业物联网,工业大数据之数仓维度层DWS层构建【十二】_工业数据仓库

DWD层的需求是什么?怎么获取表的Schema信息?如何使用Python构建Oracle和Hive的连接?如果实现SQL语句的执行?step1: 先构建服务端的远程连接step2:基于这个连接构建一个游标step3:通过游标来执行SQL语句:execute(String:SQL)step4:释放资源集中问题。

2024-05-15 02:42:08 537

原创 助力工业物联网,工业大数据之安装事实指标需求分析【二十一】(1)

小结。

2024-05-15 02:41:28 899

原创 gcc __attribute__((section("section_name"))) 使用方法_gcc ld attribute(1)

在自定义的.myown段依次填入mspec1/mspec2/mspec3的函数指针,并在do_initcalls中依次调用,从而达到构造并调用初始化函数列表的目的。

2024-05-14 17:10:33 265

原创 FPGA项目(5)--FPGA控制数码管动态显示的原理_为什么fpga开发板的七段数码管到9就灭了

/则依次给4位数码管赋值。//显示数码管最低位。//显示数码管第1位。//显示数码管第2位。//显示数码管第3位。//提取显示数值所对应的十进制数的各个位。

2024-05-14 17:09:53 401

原创 2024年物联网嵌入式最新现代无人机技术,2024年最新2024年物联网嵌入式开发程序员职业规划

5. 商业化和多样化应用:近年来,无人机的商业化和多样化应用迅速增长。无人机开始广泛应用于航空摄影、测绘、农业植保、物流运输等领域。同时,相关技术也不断创新,如电池技术提高飞行时间、机身结构设计提高飞行稳定性等。6. 自主飞行和智能化:最近,无人机的自主飞行和智能化水平得到了显著提升。人工智能和机器学习技术的应用使得无人机能够具备自主决策和学习能力,对复杂环境作出应对和判断。这为无人机的应用带来更多可能性,如自主巡航、无人机编队行动等。未来,无人机的发展将继续推动前进。

2024-05-14 13:39:14 524

原创 2024年物联网嵌入式最新物联网学习笔记_物联网学习教程,2024年最新已整理成文档

【代码】2024年物联网嵌入式最新物联网学习笔记_物联网学习教程,2024年最新已整理成文档。

2024-05-14 13:38:34 216

原创 2024年物联网嵌入式最新物联网-ESP8266实战(三)- 配置ESP8266 Arduino IDE开发环境(1),20天内看完这套GitHub标星18k+的物联网嵌入式开发资料

安装好Arduino IDE环境后,就得在它基础上配置Arduino Core For ESP8266。到此 Arduino IDE 环境安装完成,接下来我们来配置 ESP8266 板子的开发环境。**二、**ESP8266开发环境配置。到此,整个软件开发环境搭建完毕。下载完毕后解压文件夹,双击。重启IDE之后,打开。

2024-05-14 13:37:53 566

原创 2024年物联网嵌入式最新渗透测试之信息收集(超完整版)_渗透测试--信息搜集模版(1),2024年最新涨知识

目标的子域是一个重要的测试点,你收集到的可用的子域名越多,意味着你的机会也就越多,所以说要尽可能的收集目标的子域名。SQL server开放的默认端口:1433,MySQL开放的默认端口:3306、Oracle开放的默认端口:1521。一个网站可能会开放多个不同的端口,而我们可以通过同一网站的不同端口进行测试,扫描开放端口的方法有很多,这里我分为两种:第一种在线端口扫描,第二种利用工具扫描端口。例如:公司名称,注册人或者机构、联系方式:邮箱,手机号码,备案号,ip,域名,DNS,少量子域名等。

2024-05-14 13:37:12 633

原创 2024年最新嵌入式技术基础与实践-学习(学号32106200033),阿里程序员的物联网嵌入式开发之路

printf(“标志为G LIGHT_GREEN=%d ,LIGHT_ON = %d\n”,LIGHT_GREEN,LIGHT_ON);printf(“标志为R LIGHT_RED=%d ,LIGHT_ON = %d\n”,LIGHT_RED,LIGHT_ON);//(2.3.2)如灯状态标志mFlag为’L’,灯的闪烁次数+1并显示,改变灯状态及标志。//(2.3.2)如灯状态标志mFlag为’R’,灯的闪烁次数+1并显示,改变灯状态及标志。//主循环使用的记录主循环次数变量。

2024-05-14 08:11:21 656

原创 2024年最新嵌入式开发中的防御性C语言编程_c嵌入式编程模式 源码,物联网嵌入式开发开发必学

这是因为MDK的整数是按照补码存储的,正数的补码与原码相同,在这种情况下,原码和补码是一致的,不但起不到冗余作用,反而对可靠性有害。程序里使用了一个被妖魔化的关键字:goto。对此,我们可以将初始化显示屏的数据保存在Flash中,程序运行后,每隔一段时间从显示屏的寄存器读出当前值和Flash存储的值相比较,如果发现两者不同,则重新初始化显示屏。定义const修饰的结构体变量,存储LCD部分寄存器的初始值,这个初始值跟具体的应用初始化有关,不一定是表中的数据,通常情况下,这个结构体变量被存储到Flash中。

2024-05-14 08:10:42 1003

空空如也

空空如也

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

TA关注的人

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