江协科技STM32学习- P32 MPU6050

        🚀write in front🚀  
🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 

💬本系列哔哩哔哩江科大STM32的视频为主以及自己的总结梳理📚 

🚀Projeet source code🚀   

💾工程代码放在了本人的Gitee仓库:iPickCan (iPickCan) - Gitee.com

引用:

STM32入门教程-2023版 细致讲解 中文字幕_哔哩哔哩_bilibili

Keil5 MDK版 下载与安装教程(STM32单片机编程软件)_mdk528-CSDN博客

STM32之Keil5 MDK的安装与下载_keil5下载程序到单片机stm32-CSDN博客

0. 江协科技/江科大-STM32入门教程-各章节详细笔记-查阅传送门-STM32标准库开发_江协科技stm32笔记-CSDN博客

【STM32】江科大STM32学习笔记汇总(已完结)_stm32江科大笔记-CSDN博客

江科大STM32学习笔记(上)_stm32博客-CSDN博客

STM32学习笔记一(基于标准库学习)_电平输出推免-CSDN博客

STM32 MCU学习资源-CSDN博客

stm32学习笔记-作者: Vera工程师养成记

stem32江科大自学笔记-CSDN博客

术语:

英文缩写描述
GPIO:General Purpose Input Onuput通用输入输出
AFIO:Alternate Function Input Output复用输入输出
AO:Analog Output模拟输出
DO:Digital Output数字输出
内部时钟源 CK_INT:Clock Internal内部时钟源
外部时钟源 ETR:External Trigger 时钟源 External 触发
外部时钟源 ETR:External Trigger mode 1外部时钟源 External 触发 时钟模式1
外部时钟源 ETR:External Trigger mode 2外部时钟源 External 触发 时钟模式2
外部时钟源 ITRx:Internal Trigger inputs外部时钟源,ITRx (Internal trigger inputs)内部触发输入
外部时钟源 TIx:exTernal Input pin 外部时钟源 TIx (external input pin)外部输入引脚
CCR:Capture/Comapre Register捕获/比较寄存器
OC:Output Compare输出比较
IC:Input Capture输入捕获
TI1FP1:TI1 Filter Polarity 1Extern Input 1 Filter Polarity 1,外部输入1滤波极性1
TI1FP2:TI1 Filter Polarity 2Extern Input 1 Filter Polarity 2,外部输入1滤波极性2
DMA:Direct Memory Access直接存储器存取

正文:

0. 概述

从 2024/06/12 定下计划开始学习下江协科技STM32课程,接下来将会按照哔站上江协科技STM32的教学视频来学习入门STM32 开发,本文是视频教程 P2 STM32简介一讲的笔记。

1.🚚MP6050

本节来研究一下MPU6050的芯片

2.🚚MPU6050简介

MPU6050是一个6轴姿态传感器,可以测量芯片自身X、Y、Z轴的加速度、角速度参数,要这么多轴的信息是要干啥?可以通过数据融合,可进一步得到姿态角(或者叫做欧拉角),常应用于平衡车、飞行器等需要检测自身姿态的场景。

什么是6轴姿态传感器?

什么是6轴姿态传感器?

在现实的三维空间里,只有xyz三个轴。但是这个MPU6050芯片里面有加速度计和陀螺仪两种传感器,可以分别测量xyz三个轴的加速度和角速度,加起来总共就是六个轴,所以这个芯片是六轴姿态传感器。当然,如果芯片里再集成一个三轴的磁场传感器,测量xyz轴的磁场强度,就叫做九轴姿态传感器。如果再集成一个气压传感器,测量气压大小,就叫做十轴姿态传感器。一般气压值反映的是高度信息,海拔越高,气压越低,所以气压计是单独测量垂直地面的高度信息的。这也就是姿态传感器的一些术语,之后别人再说这个传感器是六轴,九轴,十轴,你就知道六轴就是三轴加速度和三轴角速度,九轴就是三轴加速度、三轴角速度和三轴磁场强度。十轴就是三轴加速度、三轴角速度、三轴磁场强度和一个气压强度。这个大家了解一下。

欧拉角是什么

以飞机为例,欧拉角就是飞机机身相对于初始三个轴的夹角。

  • 🌿飞机机头下倾或上仰这个轴的夹角叫做俯仰Pitch
  • 🌿飞机机身左翻滚或者右翻滚,这个轴的夹角叫滚转Roll
  • 🌿飞机机身保持水平,机头向左转向,或者向右转向这个轴的夹角,叫做偏航Yaw

简单来说欧拉角就表达了飞机此时的姿态,飞机是上仰还是下倾?飞机向左倾斜还是向右倾斜?通过欧拉角都能清晰的表示出来。如果你想做一个飞控算法,为了保持飞机姿态平稳,那么得到一个精确且稳定的欧拉角就至关重要。

但是可惜的是,之前我们所说的加速度计,陀螺仪,磁力计,任何一种传感器都不能获得精确且稳定的欧拉角。要想获得精确且稳定的欧拉角就必须进行数据融合,把这几种传感器的数据结合起来,综合多种传感器的数据,取长补短,这样才能获得精确且稳定的欧拉角。常见的数据融合算法一般有互补滤波、卡尔曼滤波等。这就涉及到惯性导航领域里姿态解算的知识点。不过我们本节的侧重点是I2C通信,我们最终的程序现象就是把这些传感器的原始数据读出来,显示在OLED上就可以了。

姿态传感器解算出姿态角之后,就常应用于平衡车、飞行器等需要检测自身姿态的场景。对于平衡车来说,如果传感器检测的车身向前或者向后倾斜,程序就可以控制轮子进行调整,保持平衡车的平衡。对于飞行器来说,控制的轴就多一些,一般至少需要检测俯仰角和滚转角两个夹角,然后控制电机,保持飞机的平衡,这就是这个MPU6050姿态传感器的作用。

后我们来看一下MPU6050内部的六个轴传感器的作用:

3轴加速度计(Accelerometer一般简称Accel,或者Acc,或者A):测量X、Y、Z轴的加速度

看左上面第一张图,这个图xyz轴就是一个三维的坐标系,其中横向的这个轴定义为x轴。纵向的这个轴定义为y轴,垂直于芯片的这个轴定义为z轴,这就是这个芯片对xyz轴的定义,然后在xyz轴,这个芯片内部都分别布置了一个加速度计。

什么是加速度计

看一下上面第二张图,这就是加速度计的结构图,其中水平的这个虚线是感应轴线。中间是一个具有一定质量,可以左右滑动的小滑块,然后左右各有一个弹簧顶着它,如果把这个东西拿在手上来回晃,中间这个小滑块就由左右移动,去压缩或者拉伸两边的弹簧。当滑块移动时就会带动上面的电位器滑动。这个电位器,其实就是一个分压电阻,测量电位器输出的电压就能得到小滑块所受的加速度值了。其实可以发现这个加速度计实际上就是一个弹簧测力计,根据牛顿第二定律F=ma。我们想测量这个加速度a,就可以找一个单位质量的物体,测量它所受的力F就行了。xyz三个轴分别都有这样一个测力计。

可以想象一下,这个芯片里面有六个侧力的秤,组成一个正方体。然后正方体内部放一个大小正好的单位质量小球,这个小球压在哪个侧面上,就会产生对应一个轴的数据输出。比如小球压在下面,这个面就是z轴的正值,小球压上面,这个面就是z轴的负值。对向两个面一组,一面为正值,一面为负值。正方体六个面所测的力就是三个轴的加速度值,这就是加速度计的一个直观理解。

比如把芯片静置水平放在地球上,就只有底面测力计受到小球的压力。所以此时数据输出就是xyz轴输出为0。z轴输出一个g的加速度值,如果此时芯片正处于自由落体,就是所有面都不受力。此时,数据输出就是xyz轴都为0。如果此时芯片向左倾斜放置,就是底面和左面都受力。

这时我们求一个三角函数就能得到向左的倾角西塔了。

不过这个倾角只有芯片静止的时候才是正确的,因为加速度分为重力加速度和运动加速度。如果只是芯片运动起来了,这个三角函数求得的倾角就会受运动加速度的影响。举个例子,比如你坐在汽车里,现在汽车突然向前加速,你是不是感觉椅子底面和靠背都受力?这时如果用三角函数求角度,得到的结果就是你的车停在一个斜坡上,停在斜坡上也是椅子底面和靠背都受力,但实际上,车的状态确实水平向前加速,

所以仅使用加速度计求角度,只能在物体静止的时候使用,当物体运动起来时,这个角度就会受运动加速度的影响而变得不准确。

以上就是加速度计的测量原理和特征。总结一下就是加速度计具有静态稳定性不具有动态稳定性。

3轴陀螺仪传感器(Gyroscope):测量X、Y、Z轴的角速度

上面第三张图的那个传感器就是三轴陀螺仪传感器的机械模型,中间是一个有一定质量的旋转轮,外面是三个轴的平衡环。

当中间这个旋转轮高速旋转时,根据角动量守恒的原理,这个旋转轮具有保持它原有角动量的趋势,这个趋势可以保持旋转轴方向不变。当外部物体的方向转动时,内部的旋转轴方向并不会转动。这就会在平衡环连接处产生角度偏差。如果我们在连接处放一个旋转的电位器,测量电位器的电压就能得到旋转的角度了。从这里分析,陀螺仪应该是可以直接得到角度的。但是我们这个MPU6050的陀螺仪并不能直接测量角度,可能是结构的差异,或者是工艺的限制。我们这个芯片内部的陀螺仪测量的实际上是角速度,而不是角度。

陀螺仪测量xyz轴的角速度值分别表示了此时芯片绕x轴,绕y轴和绕z轴旋转的角速度。这里也可以用一个模型来辅助理解。

可以把这个测量角速度的陀螺仪想象成是游乐园的旋转飞椅。

中间的轴转的越快,这个椅子飞的就越远。最终我们测量一下对两个椅子飞起来的距离或者飞起来的夹角就能得到中间轴的角速度了。这就是测量角速度的陀螺仪工作原理。如果我们想通过角速度得到角度的话我们只需要对角速度进行积分即可角速度积分就是角度

和加速度计测角度一样,这个角速度积分得到的角度也有局限性。就是当物体静止时,角速度值会因为噪声无法完全归零然后经过积分的不断累积,这个小噪声就会导致计算出来的角度产生缓慢的漂移。也就是角速度积分得到的角度经不起时间的考验。不过这个角度,无论是运动还是静止,都是没问题的,它不会受物体运动的影响。所以总结下来就是陀螺仪具有动态稳定性,不具有静态稳定性
 

🌿🌿🌿这个陀螺仪是动态稳定,静态不稳定,之前加速度计是静态稳定,动态不稳定。这两种传感器的特性正好互补,所以我们取长补短,进行一下互补滤波就能融合得到静态和动态都稳定的姿态角了。这就是姿态解算的大体思路。

接下来我们来看几个MPU6050的参数。

3.🚚MPU6050参数

16位ADC采集传感器的模拟信号,量化范围:-32768~32767

之前我们也了解过,这里无论是加速度计还是陀螺仪,它们的基本原理都是设计一种装置。当传感器所感应的参数变化时,这个装置能带动电位器滑动,或者装置本身的电阻可以随感应参数变化而变化。这样在外接一个电源,通过电阻分压,就能把现实世界的各种状态用电压表示出来了。

当然传感器里面肯定不是我们上面图片这样的机械结构,芯片里面都是通过电子的技术来完成各种参数的测量的,要不然也塞不到这么小的芯片里。只是我们理解的时候可以把它想象成这种机械结构,但实际上芯片里面如何用电来完成同样的功能,这就是这个厂家的机密了。

总之,电子的传感器最终也是输出一个随姿态变化而变化的电压,要想量化这个电压信号,就离不开AD转换器,所以这个芯片内部也是自带了AD转换器,可以对各个模拟产量进行量化。这个ADC是十六位的,量化输出的数据变化范围就是2的16次方。如果作为无符号数的话,就是0~65535,这里因为传感器每个轴都有正负的数据,所以这个输出结果是一个有符号,数量化范围是-32768~32767。数据是十六位的,会分为两个字节存储,这个之后我们读取数据计时器的时候就可以看到了。

十六位有符号数的范围所对应的物理参量范围是多少?

这里就需要定义一个满量程范围。这个满量程范围就相当于我们之前学ADC的时候那个VREF参考电压一样,AD值达到最大时,对应电压是3.3V还是5V,需要有一个参考电压来指定,这里也是一样,十六位AD值达到最大时,对应的物理参量具体是多少,也是由满量程范围来决定的。在这里加速度计和陀螺仪的满量程范围都有几个选项可以选择。

🌿🌿加速度计满量程可以选择±2、±4、±8、±16(g),单位是g也就是重力加速度1个g=9.8m/(s^2)。

🌿🌿陀螺仪满量程可以选择±250、±500、±1000、±2000(°/sec),单位是度每秒,就是角速度的单位,每秒旋转了多少度。

如果所测量的物体运动非常剧烈,就可以把满量程选择大一些,防止加速度或者角速度超出了量程。如果你所测量的物体运动比较平缓,就可以选择比较小的量程,这样测量的分辨率就会更大。

举个例子,比如你选择加速度计满量程为±16(g),当读取AD值为最大值32768时,当然实际的最大值是32767,就表示此时测量的加速度为满量程±16(g),AD值为32768的一半时就表示加速度为8g。如果选择满量程为±2g的话,此时32768就对应2g的加速度,32768的一半就对应1g的加速度。因为AD值的范围是一定的,所以满量程选的越小测量就会越细腻

另外,AD值和加速度值是线性关系,一一对应的,由AD值求加速度就是乘一个系数就可以了,这跟我们之前学ADC的时候,由AD值求电压值是一样的道理。然后下面陀螺仪的满量程选择也是同样的操作,满量程选的越大,测量范围就越广,满量程选的越小,测量分辨率就越高。所以这个满量程的选择要根据实际需求来。

这个MPU6050可配置的数字低通滤波器(可以配置寄存器来选择对输出数据进行低通滤波)。如果觉得输出数据抖动太厉害,就可以加一点低通滤波,这样输出数据就会平缓一些。

可配置的时钟源和可配置的采样分频,这两个参数是配合使用的。时钟源经过这个分频器的分频,可以为AD转换和内部其他电路提供时钟,控制分频系数就会控制AD转换的快慢了。

这个芯片的I2C从机地址:1101000(AD0=0),1101001(AD0=1

AD0就是板子引出来的一个引脚,可以调节I2C从机地址的最低位。这里地址是七位的,如果像这样用二进制来表示的话,一般没啥问题。如果在程序中用十六进制表示的话,一般会有两种表示方式。

以这个1101000的地址为例,第一种就是单纯的把这七位的二进制转化为十六进制,110 1000转换十六进制就是0x68。I2C通信的时序中第一个字节的高七位是从机地址,最低位是读写位。所以如果你认为0x68是从机地址的话,在发送第一个字节时,要先把0x68左移一位,即(0x68<<1),在按位或上读写位,读0写0。这是认为从机地址是0x68的操作。

但是还有另一种常见的表示方式,就是把x68左移一位后的数据当做从机地址,0x68左移1位之后是0xD0,这时在实际发送第一个字节时,如果你要写,就直接把0xD0当做第一个字节。如果你要读,就把0xD0或上0x01,即0xD1当做第一个字节。这种表示方式就不需要进行左移的操作了,或者说这种表示方式是把读写位也融入到了从机地址里来。

一般比较喜欢融入读写位的这种表示方式。所以在本节程序中,MPU6050的从机地址是0xD0。

我们接着继续来看一下硬件电路。

4.🚚硬件电路

这里展示的就是MPU6050模块的原理图。

其中右边这个是MPU6050的芯片,左下角是一个八针的排针,左上角是一个LDO低压差线性稳压器。

右边这个MPU6050的芯片本身的引脚是非常多的,包括时钟,I2C这些通信引脚,供电、帧同步等等,不过这里有很多引脚我们都用不到。还有一些引脚是这个芯片最小系统里的固定连接,这个最小系统一般手册里都会有抄过来就行

然后看左下角八针的排针引出来的各引脚功能

在这里可以看到,SCL和SDA模块已经内置了两个4.7K的上拉电阻了。所以在我们接线的时候,直接把SCL和SDA接在GPIO口就行了,不需要再在外面另外接上来电阻了。

🌿🌿XCL、XDA这两个是芯片里面的主机I2C通信引脚,设计这两个引脚是为了扩展芯片功能。

之前我们说过MPU6050是一个六轴姿态传感器。但是只有加速度计和陀螺仪的六个轴融合出来的姿态角是有缺陷的。这个缺陷就是绕z轴的角度,也就是偏航角它的漂移无法通过加速度计进行修正。这像是让你坐在车里,不看任何窗户,然后让你辨别当前车子的行驶方向。短时间内,可以通过陀螺仪得知方向的变化,从而确定变化后的行驶方向。但是时间一长,车子到处转弯,没有稳定的参考了,就肯定会迷失方向。所以这时候你就要带个指南针在身边,提供长时间的稳定偏航角进行参考来对陀螺仪感知的方向进行纠正。这就是九轴姿态传感器多出的磁力计的作用。另外如果要制作无人机,需要定高飞行,这时候就还需要增加气压计,扩展为10轴提供一个高度信息的稳定参考。所以根据项目要求,这个六轴传感器可能不够用,需要进行扩展,这个时候这个XCL、XDA就可以起作用了。XCL和XDA通常就是用于外接磁力计或者气压计。当接上磁力计或气压计之后,MPU6050的主机接口可以直接访问这些扩展芯片的数据。把这些扩展芯片的数据读取到MPU6050里面,在MPU6050里面会有DMP单元进行数据融合和姿态解算。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/58824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原生html+js+css+php多图上传带预览可增删判断图片大小和后缀

原生htmljscssphp多图上传带预览可增删&#xff0c;前后端判断图片大小和后缀 源码来自AI&#xff0c;有改动&#xff0c;整合亲测可用 <?php // 设置允许的最大文件大小为 2MB $maxFileSize 2 * 1024 * 1024; $allowedExtensions [jpg, jpeg, png, gif];// 上传目录&am…

java设计模式之创建者模式(5种)

设计模式 软件设计模式&#xff0c;又称为设计模式&#xff0c;是一套被反复利用&#xff0c;代码设计经验的总结&#xff0c;他是在软件设计过程中的一些不断发生的问题&#xff0c;以及该问题的解决方案。 **创建者模式又分为以下五个模式&#xff1a;**用来描述怎么“将对象…

如何一键更换ppt模板?掌握这2个ppt技巧快速搞定!

每当要制作ppt&#xff0c;很多人会第一时间去搜刮各种ppt模板&#xff0c;有时我们找到了一份貌似符合需求的模板&#xff0c;等到了ppt制作环节&#xff0c;才发现离我们的预期相距甚远&#xff0c;做到一半的ppt如何换模板呢&#xff1f; 想要在中途更换ppt模板&#xff0c;…

操作系统笔记(五)信号量,经典的IPC问题(读写者问题...)

信号量 一个信号量是一个包含两部分内容的数据结构&#xff1a; (a) 一个整数计数器, COUNT (b) 一个记录阻塞进程ID的队列, Q 信号量有两个原子操作&#xff1a; UP(V操作&#xff09; 和 DOWN (P操作) DOWN(S): if (S.count > 0) S.count …

臻于智境 安全护航 亚信安全受邀出席新华三智算新品发布会

近日&#xff0c;紫光股份旗下新华三集团在北京隆重举办了主题为“乘势 进化 臻于智境”的新华三智算新品发布会。作为新华三集团的长期战略合作伙伴&#xff0c;亚信安全受邀参会&#xff0c;亚信安全CEO马红军出席发布仪式&#xff0c;并与来自各界的业界伙伴共同探讨智能化…

【解决】Ubuntu18.04 卸载python之后桌面异常且终端无法打开,重启后进入tty1,没有图形化界面

我因为python版本太过于混乱 &#xff08;都是为了学习os&#xff09; &#xff0c;3.6—3.9版本我都安装了&#xff0c;指向关系也很混乱&#xff0c;本着“重装是最不会乱”的原则&#xff0c;我把全部版本都卸载了。然后装了3.9 发现终端打不开了&#xff0c;火狐浏览器的图…

2-140 基于Solidworks和Matlab Simulink Simscape仿真的机器人手臂仿真

基于Solidworks和Matlab Simulink Simscape仿真的机器人手臂仿真&#xff0c;使用Simulink-Simscape Multibody模块&#xff0c;完成SW-Simscape-Multibody-Link-Plugin手臂仿真&#xff0c;通过调节关节实现手臂动作&#xff0c;并显示三坐标位置。程序已调通&#xff0c;可直…

流媒体协议.之(RTP,RTCP,RTSP,RTMP,HTTP)(一)

闲着没事做&#xff0c;记录一下开发项目用过的协议&#xff0c;项目中&#xff0c;大多是是实时显示播放的&#xff0c;通过私有协议&#xff0c;传输到上位机&#xff0c;实时播放&#xff0c;延时小于200ms&#xff0c;仿照这些协议&#xff0c;定义的数据格式。如果用这些协…

通过思维导图【脑图】梳理Java 开发技术栈

通过思维导图【脑图】梳理Java 开发技术栈 前言一、思维导图概述二、Java 开发技术栈1.整体脑图结构2.基础知识3.核心语法4.高级特性5.常用框架6.数据库7.算法8.设计模式9.最佳实践10.资源推荐 附思维导图原件总结我是将军我一直都在&#xff0c;。&#xff01; 前言 将军深刻…

Mac “屏幕保护程序启动或显示器关闭后需要密码“无效

屏幕保护程序启动或显示器关闭后需要密码只能选择“立即”的解决方法&#xff1a; 在 iPhone mirror中设置&#xff0c;每次询问权限。 参考&#xff1a;https://support.apple.com/en-us/120421

基于matlab的凸包(Convex Hull)算法理解与测试

基于matlab的凸包Convex Hull算法理解与测试 0 引言1 Graham扫描算法原理2 Graham扫描算法实现3 Graham扫描算法关键函数4 结语 0 引言 &#x1f4bb;&#x1f4bb;AI一下&#x1f4bb;&#x1f4bb; 凸包算法是计算给定点集的最小凸包的一种算法。凸包是包含给定点集中所有点…

Conmi的正确答案——在Kibana中搜索Elasticsearch的索引

Elasticsearch版本&#xff1a;7.17.25 Kibana版本&#xff1a;7.17.25 0、进入首页 1、点击空间名“默”&#xff08;我的默认空间名就是“默认”&#xff09;&#xff1b; 2、点击气泡弹窗的“管理空间”进入管理页面&#xff1b; 3、点击“索引模式”&#xff0c;进入索引模…

QT访问数据库:应用提示Driver not loaded

在QT中运行完全正确错误截图 解决办法1 我用的是MySQL。我把libmysql.dll复制到应用程序的目录下&#xff0c;即可正常访问数据库。 解决办法2 bool open_work_db() {QString info "support drivers:";for (int i0; i<QSqlDatabase::drivers().size(); i){inf…

用图说明 CPU、MCU、MPU、SoC 的区别

CPU CPU 负责执行构成计算机程序的指令&#xff0c;执行这些指令所指定的算术、逻辑、控制和输入/输出&#xff08;I/O&#xff09;操作。 MCU (microcontroller unit) 不同的 MCU 架构如下&#xff0c;注意这里的 MPU 表示 memory protection unit MPU (microprocessor un…

你需要了解的Android repo工具

在 Android 开发中&#xff0c;repo 是 Google 用来管理多 Git 仓库的一种工具。Android 项目代码由多个 Git 仓库组成&#xff0c;repo 提供了一个高效的机制来批量管理这些仓库&#xff0c;尤其适用于大型项目和团队协作。 1. 什么是 Repo 工具&#xff1f; repo 是一个基于…

尚硅谷-react教程-求和案例-数据共享(下篇)-完成数据共享-笔记

#1024程序员节&#xff5c;征文# public/index.html <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>redux</title></head><body><div id"root"></div></body> </html&…

Linux环境下Mongodb部署

文章目录 一、系统环境二、MongoDb安装添加MongoDB官方库安装MongoDB配置MongoDB 三、MongoDB常见操作四、MongoDB用户管理创建用户修改密码删除用户 五、启用安全控制六、备份与还原1. 备份2. 恢复 七、外部工具连接MongoDB 一、系统环境 CentOS Stream 9 64bit 二、MongoD…

LeetCode总结-链表

一、遍历链表 1290.二进制链表转整数 2058.找出临界点之间的最小和最大距离 2181.合并零之间的节点 二、删除节点 问&#xff1a;为什么没有修改 dummy&#xff0c;但 dummy.next 却是新链表的头节点&#xff1f;如果删除了 head&#xff0c;那么最后返回的是不是原链表的头…

项目模块十二:TcpServer模块

一、模块设计思路 1、目的 对所有模块整合&#xff0c;实现一个服务器模块供外部快速搭建服务器。 2、管理 监听套接字 主 Reactor&#xff0c;创建 EventLoop _baseloop 对象&#xff0c;进行对监听套接字的管理 哈希表管理所有新连接的 Channel 创建线程池进行连接的事…

保险大模型革新:全面自动化倒计时

摘 要 大模型于保险业不仅是一个技术升级的过程&#xff0c;更是一种商业模式的变革 未来将会是一切都连接着AI的世界——科技杂志《连线》创始主编凯文凯利&#xff08;KevinKelly&#xff09;曾在《5000天后的世界》中预测。 ChatGPT催生大模型热潮已将近两年&#xff0c;…