STM32之串口通信蓝牙(BLE)
一、串口通信的原理与应用
- 通信的方式
处理器与外部设备之间或者处理器与处理器之间通信的方式分两种:串行通信和并行通信。
串行通信
传输原理:数据按位依次顺序传输(每一位占据固定的时间长度 MSB or LSB)
优点:占用引脚资源少、成本低、传输距离远
缺点:速度慢
应用场合:常用于工控、测量设备,以及部分通信设备 如蓝牙模块、WIFI模块...
并行通信
传输原理:数据按位同时传输(按照字节或者字节的倍数去传输)
优点:速度快
缺点:占用引脚多,成本高、传输距离近、抗干扰能力弱
应用场合:一般适用数据量大、传输距离较近的场合 如计算机总线
- 串行通信分类
- 如果按照数据的传送方向,可以分为3种
单 工 :数据只能从一方传向另一方,而不能往反方向传输。这是根据应用的特点,对通信双方的软、硬件进行了简化。单向传输设备,如并行接口打印机就是通过单工的方式进行数据传输的。
半双工 :允许数据往两方传向传输,但只能交替进行,而不能同时进行的传输方式。常见应用如对讲机。
全双工 :数据支持同时在两个方向上传输,就相当于两个单工通信的结合 如移动电话
- 如果按照数据的同步方式,可以分为2种
同步通信:指的是带时钟同步信号,如IIC接口和SPI接口都属于同步通信,同步通信要求通信双方的时钟必须一致(发送数据的同时进行接收数据),同步通信是一种连续串行传输数据的通信方式,一次只传输一帧数据,相对于异步通信而言传输速率更高,但是缺点是通信双方必须使用同一个时钟。
异步通信:指的是不带时钟同步信号,如UART接口就属于异步通信,要求通信双方必须具有接收器和发送器,但是接收器和发送器可以使用各自的时钟,异步通信是以字符为单位去传输,由于异步通信工作是非同步的,所以接收器必须时刻做好接收数据的准备,所以每个字符都会使用起始位和停止位代表字符的开始和结束,相比于同步通信而言设备成本低,但是缺点是信道利用率低。
注意:使用异步通信,通信双方要约定好的字符格式和通信速率,否则会导致数据丢失等问题出现
- 串行接口意义
串行通信就是把数据按位进行顺序传输,在计算机传输的过程中是使用并行通信的,就涉及到串转并和并转串。可以利用软件实现,也可以用硬件实现。如果使用软件实现,会增大CPU的负担,通常使用硬件(串口)实现。
串口是计算机进行串行通信的物理接口,线路简单,串口是按位进行数据的收发,可以用一根线(TXD)发送数据的同时用另一根线接收(RXD)。
常用的串口接口有两种:9针串口(DB-9) 25针串口(DB-25) 每种都分为公头和母头
一般DB9串口有9个引脚,但是一般作为串口通信时只需要用到三个引脚,分别是RXD、TXD、GND,其他的线一般用于握手。
单片机如果打算和计算机进行串口通信,则需要注意串口的电平协议,单片机采用的是TTL电平,而计算机采用的RS232电平,所以单片机需要和计算机通信,则需要增加如MAX232电平转换芯片进行电气转换。
TTL电平协议 :采用正逻辑电平 +5V等价于逻辑1 0V等价于逻辑0
RS232电平协议 :采用负逻辑电平 -15V~-3V等价于逻辑1 +3V~+15V等价于逻辑0
为使通信顺利进行,由通信双方就如何交换信息所建立进来的一套规定,称为通信控制规程,网络术语中称为协议。另外,为统一接口和连接,规程中还有关于信号线功能、电气特性、机械特性等明确的规定,称之为接口标准。如RS-232、RS-485接口标准等。
现在个人计算机提供的串行端口终端的传输速度一般都可以达到115200bps甚至更高,标准串口能够提供的传输速度主要有以下波特率:1200bps、2400bps、4800bps、9600bps、19200bsp、38400bps、57600bps、115200bps等,在仪器仪表或工业控制场合,9600bps是最常见的传输速度,在传输距离较近时,使用最高传输速度也是可以的。
- 硬件接线说明
但是对于目前来说,很多设备并不会集成DB-9串口,而是直接采用4针的串口(TXD、RXD、GND、VCC),然后通过CH340芯片进行转换,就可以直接通过USB口转串口的方式达到和计算机通信的目的。
如果采用有线方式与PC机进行通信,则需要用到CH340转换芯片,数据会通过USART1串口传输,也就是说需要把UART1的跳线帽1-3短接,2-4短接。
如果采用无线方式与其他传感器进行通信,则不需要用到CH340转换芯片,则需要把UART1的跳线帽3-5短接,4-6短接,另外传感器的TX和RX需要与MCU的UART1的RX和TX进行交叉连接,就是说传感器TX需要连接在MCU的RX,传感器RX需要连接在MCU的TX。
- 串口通信参数
串口通信属于全双工异步通信,所以通信双方必须具有发送端(TXD)与接收端(RXD),由于异步通信不需要时钟来进行数据同步,但是通信双方必须提前约定好字符格式与通信速率。
- 字符格式
一般在进行串口通信的时候,需要通信双方在协议层规定好传输的数据包(字符帧)的格式,字符帧由起始位、数据位、校验位、停止位组成。这样通信双方就可以利用起始位和停止位实现同步。 关于字符格式的相关参数的说明可以参考STM32中文参考手册第26.3.1章节。
最常用的一种字符格式:1bit的起始位(固定的)+ 8bit数据位 + 无校验位 + 1bit停止位!
- 奇校验:指的是数据位+校验位里面的数字1的数量是奇数 ,一般不使用校验位
- 偶校验:指的是数据位+校验位里面的数字1的数量是偶数 ,一般不使用校验位
3D人脸识别模块的串口的参数
- 通信速率
在串口通信中,如果设置好了通信的字符格式,还需要通信双方约定好通信速率,也就是单位时间内传输的有效二进制数的个数,所以也被称为波特率(bps baud pre second)。一般串口通信常用的波特率为9600bps、38400bps、57600bps、115200bps。
- 波特率:指的是单位时间内传输的码元的数量,单位是bps
- 比特率:指的是单位时间内传输的二进制码元的数量,单位是bits/s
举个例子:大多数使用串口通信的传感器的字符格式都是8bit数据位、1bit停止位、无奇偶校验位,当然还必须有1bit起始位,所以一帧数据是10bit,如果通信速率设置为9600bps,则单位时间内能传输的数据帧为9600/10 = 960帧。这是使用频率最高的一种通信速率!!!!
- USART的使用流程
USART指的是通用同步异步收发器,是STM32中的串行通信设备,STM32F407ZET6一共提供了6个串行接口供用户使用,其中4个为USART,2个为UART。UART指的是通用异步收发器,其实就是在USART的基础上裁掉了同步通信的功能,只保留了异步通信。
平时大家一般都是使用串口的异步通信功能,区分同步还是异步其实很简单,就是看是否在通信是对外提供时钟输出。
- 程序设计
- 打开KEIL5工程,然后把ST公司提供的标准外设库的关于USART的源文件添加到工程中
- 参考并分析ST公司提供的代码例程以及提供的关于USART源文件的开头注释,进行理解
二、蓝牙模块的原理与应用
一般MCU和计算机通信是采用有线方式实现,这种方案的缺点是实用性较差,无法实现良好的人机交互,所以正常应该是采用无线通信的方式实现对MCU的控制,一般主流的无线通信方式有BLE、WIFI、Zigbee、LoRa,无线通信最常见的场景就是利用手机远程控制硬件。
特性 | BLE | Wi-Fi | Zigbee | LoRa |
输传距离 | 10-100 米(受功率影响) | 30-300 米(室内) | 10-100 米(室内) | 2-30 公里(开阔地) |
数据速率 | 2Mbp(BLE 5.3) | 9.6Gbps(Wi-Fi 6) | 250kbps(2.4GHz) | 0.3-50kbps |
功耗 | 低(μA 级待机) | 高(mA 级连续工作) | 极低(两节 AA 电池可用 2 年) | 超低(μA 级休眠) |
网络容量 | 8-200 个节点(Mesh) | 20-200 个节点 | 65,000 个节点(Mesh) | 数千个节点(星型) |
工作频段 | 2.4GHz(全球通用) | 2.4GHz/5GHz/6GHz | 2.4GHz/868MHz/915MHz | Sub-GHz(433/868/915MHz) |
不同厂商的蓝牙模块的型号可能不同,但是通信方式是一样,都是采用串口通信,但是需要需要再使用蓝牙模块之前先进行参数设置,目的是和手机可以进行配对,想要修改蓝牙的参数(名称、密码、波特率......)都需要使用厂家提供的指令集实现,一般再哪个淘宝店买的蓝牙模块就在哪个淘宝店下载蓝牙模块的资料。
- 蓝牙概述
- 硬件接线
注意:可以把蓝牙模块接入到开发板的UART2接口,UART2_TX的引脚是PA2,UART2_RX的引脚是PA3。
- 蓝牙参数
想要使用手机连接蓝牙模块,则需要配置蓝牙模块的参数,对于蓝牙模块的参数,需要使用蓝牙模块的厂商提供的AT指令集实现。
- 程序设计
- 通信测试
练习:根据蓝牙模块的资料,完成蓝牙模块的参数的设置,要求修改蓝牙模块的名称即可,自己利用手机进行搜索,进行测试。
- 远程控制
如果打算使用手机APP/微信小程序取远程控制开发板上面的外设,则需要让手机连接配置好的蓝牙模块,如果连接成功,则蓝牙会自动进入数据透传模式,在透传模式下只能进行数据的转发。
实战作业:设计串口的通信协议,要求数据以数据包的形式进行发送和接收,可以参考以下的协议格式:
相关文章:
STM32之串口通信蓝牙(BLE)
一、串口通信的原理与应用 通信的方式 处理器与外部设备之间或者处理器与处理器之间通信的方式分两种:串行通信和并行通信。 串行通信 传输原理:数据按位依次顺序传输(每一位占据固定的时间长度 MSB or LSB) 优点:…...
【Spring Boot】配置实战指南:Properties与YML的深度对比与最佳实践
目录 1.前言 2.正文 2.1配置文件的格式 2.2properties 2.2.1基础语法 2.2.2value读取配置文件 2.2.3缺点 2.3yml 2.3.1基础语法 2.3.2配置不同数据类型 2.3.3配置读取 2.3.4配置对象和集合 2.3.5优缺点 2.4综合练习:验证码案例 2.4.1分析需求 2.4.2…...
数据结构篇--优先级队列排序--实验报告
实验简介框架代码实验步骤运行结果实验总结 实验概述 优先队列排序算法的基本思想是: 将所有待排序元素依次插入到优先队列中,然后按照从大到小的顺序,通过重复删除优先队列中的最大元素,取出所有元素,从而实现排序…...
【图像大模型】基于深度对抗网络的图像超分辨率重建技术ESRGAN深度解析
基于深度对抗网络的图像超分辨率重建技术ESRGAN深度解析 一、技术背景与核心创新1.1 图像超分辨率技术演进1.2 核心技术创新对比 二、算法原理深度解析2.1 网络架构设计2.1.1 RRDB模块结构 2.2 损失函数设计2.2.1 对抗损失(Adversarial Loss)2.2.2 感知损…...
Ubuntu 20.04卸载并重装 PostgreSQL
在 Ubuntu 下彻底卸载并重新安装 PostgreSQL(包括所有版本及其数据目录)的步骤 下面是一个在 Ubuntu 下彻底卸载并重新安装 PostgreSQL(包括所有版本及其数据目录)的步骤。 文章目录 在 Ubuntu 下彻底卸载并重新安装 PostgreSQL&…...
debian系统redis-dump安装
1. Ruby 环境 Redis-dump 是一个 Ruby 工具,需先安装 Ruby 和 RubyGems。 安装命令: sudo apt update sudo apt install ruby-full build-essential[roota29d39f5fd10:/opt/redis-dump/bin# apt install ruby-full build-essential Reading pac…...
AI智能分析网关V4玩手机检测算法精准管控人员手机行为,搭建智慧化安防监管体系
一、背景 移动终端普及使随意用机成为常态,在生产车间、加油站、考场、手术室等场景,人员使用手机易引发生产事故、爆炸、作弊、仪器干扰等问题。传统人工巡查存在覆盖不足、响应慢、主观性强等局限,难以满足现代安全管理需求。AI智能分析…...
支持向量存储:PostgresSQL及pgvector扩展详细安装步骤!老工程接入RAG功能必备!
之前文章和大家分享过,将会出一篇专栏(从电脑装ubuntu系统,到安装ubuntu的常用基础软件:jdk、python、node、nginx、maven、supervisor、minio、docker、git、mysql、redis、postgresql、mq、ollama等),目前…...
小土堆pytorch--神经网络-非线性激活线性层及其他层介绍
1. 神经网络-非线性激活 1.1 relu与sigmoid 1.1.1 ReLU(Rectified Linear Unit,修正线性单元 ) 定义与数学表达:数学定义为 f ( x ) max ( 0 , x ) f(x) \max(0, x) f(x)max(0,x) ,即当输入 x > 0 x > …...
【Vue3】数据的返回和响应式处理(ref reactive)
目录 一、拉开序幕的setup 二、ref函数 2.1 访问对象的响应式处理 小结:ref函数 三、reactive函数 3.1 reactive同样也可以修改数组: 3.2 reactive小结: 四、Vue3中的响应式原理 4.1 vue2的响应式,对象属性的添加 4.2…...
【Rust智能指针】Rust智能指针原理剖析与应用指导
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
C++ - 仿 RabbitMQ 实现消息队列(3)(详解使用muduo库)
C - 仿 RabbitMQ 实现消息队列(3)(详解使用muduo库) muduo库的基层原理核心概念总结:通俗例子:餐厅模型优势体现典型场景 muduo库中的主要类EventloopMuduo 的 EventLoop 核心解析1. 核心机制:事…...
Java异常处理全解析:从基础到自定义
目录 🚀前言🤔异常的定义与分类💯运行时异常💯编译时异常💯异常的基本处理 🌟异常的作用🐧自定义异常💯自定义运行时异常💯自定义编译时异常 ✍️异常的处理方案…...
C++初阶-vector的模拟实现2
目录 1.vector已经实现的代码总结 2.vector::resize的模拟实现 3.vector::vector(const vector& v)拷贝构造函数的模拟实现 4.vector::operator(const vector& x)的模拟实现(原始写法) 5.vector::swap的模拟实现 6.vector::operator(const …...
【图数据库】--Neo4j 安装
目录 1.Neo4j --概述 2.JDK安装 3.Neo4j--下载 3.1.下载资源包 3.2.创建环境变量 3.3.运行 Neo4j 是目前最流行的图形数据库(Graph Database),它以节点(Node)、关系(Relationship)和属性(Property)的形式存储数据,专门为处理高度连接的数据而设计。…...
elementui初学1
当然可以!下面是从零开始创建一个最简单的 Element UI 程序的完整流程,基于 Vue 2 Element UI(如果你想用 Vue 3,请告诉我,我可以给你 Element Plus 的版本)。 ✅ 一、准备环境 确保你已经安装了…...
lanqiaoOJ 4185:费马小定理求逆元
【题目来源】 https://www.lanqiao.cn/problems/4185/learning/ 【题目描述】 给出 n,p,求 。其中, 指存在某个整数 0≤a<p,使得 na mod p1,此时称 a 为 n 的逆元,即 。数据保证 p 是质数且 n mod p≠0…...
计算机视觉与深度学习 | Python实现CEEMDAN-ISOS-VMD-GRU-ARIMA时间序列预测(完整源码和数据)
以下是结合CEEMDAN、ISOS-VMD、GRU和ARIMA的时间序列预测的Python完整实现方案。本方案包含完整的代码、数据生成逻辑和实现细节说明。 完整代码实现 import numpy as np import pandas as pd from PyEMD import CEEMDAN from vmdpy import VMD from scipy.optimize import di…...
前端开发遇到 Bug,怎么办?如何利用 AI 高效解决问题
前端开发遇到 Bug,怎么办?如何利用 AI 高效解决问题 作为前端开发者,遇到 Bug 几乎是日常。无论是样式错乱、功能异常,还是接口数据不对,Bug 总能让人头疼。但随着人工智能(AI)技术的发展&…...
博主总结框架
1.博主总结框架 1.1 计算机基础类(数据结构、计算机网络、操作系统等) (1)数据结构 (2)操作系统 (3)计算机网络 (4)其他 物联网入门框架 1.2 计算机图形…...
国产化Excel处理组件Spire.XLS for .NET系列教程:通过 C# 将 TXT 文本转换为 Excel 表格
在数据处理和管理场景中,将原始文本文件(TXT)高效转换为结构化的 Excel 电子表格是一项常见要求。对于那些需要自动生成报表或者处理日志文件的开发人员而言,借助 C# 实现 TXT 到 Excel 的转换工作,可以简化数据组织和…...
网络安全--PHP第一天
目标 熟悉信息传递架构 基于phpstydy-mysql-php 前置条件 需要先在数据库中创建相应的库和表名并配置表的结构 该文件为数据库配置文件 名字为config.php <?php $dbip localhost;//连接数据库的地址 远程连接需要输入ip等 $dbuser root;//连接数据库的用户 $dbpass ro…...
结构型:组合模式
目录 1、核心思想 2、实现方式 2.1 模式结构 2.2 实现案例 3、优缺点分析 4、适用场景 1、核心思想 目的:将总是在重复、迭代地显示的某种自相似性的结构(部分与整体结构特征相似),例如树形结构,以统一的方式处…...
Node.js多版本安装工具NVM详细使用教程
一、nvm 简介 nvm(Node Version Manager)是一个用于管理多个 Node.js 版本的命令行工具,允许开发者在单个系统中轻松切换、安装和卸载不同版本的 Node.js。它是前端和后端开发中处理 Node.js 版本兼容性问题的核心工具之一。 二、nvm 安装 …...
深度解析 Java 中介者模式:重构复杂交互场景的优雅方案
一、中介者模式的核心思想与设计哲学 在软件开发的历史长河中,对象间的交互管理一直是架构设计的核心难题。当多个对象形成复杂的网状交互时,系统会陷入 "牵一发而动全身" 的困境。中介者模式(Mediator Pattern)作为行…...
(八)深度学习---计算机视觉基础
分类问题回归问题聚类问题各种复杂问题决策树√线性回归√K-means√神经网络√逻辑回归√岭回归密度聚类深度学习√集成学习√Lasso回归谱聚类条件随机场贝叶斯层次聚类隐马尔可夫模型支持向量机高斯混合聚类LDA主题模型 一.图像数字化表示及建模基础 二.卷积神经网络CNN基本原…...
深入剖析原型模式:原理、实现与应用实践
在软件开发的世界里,设计模式如同建筑师手中的蓝图,为复杂系统的构建提供了行之有效的解决方案。其中,原型模式(Prototype Pattern)作为创建型设计模式的重要一员,以其独特的对象创建方式,在提高代码复用性、增强系统灵活性等方面发挥着关键作用。本文将深入剖析原型模式…...
【论文阅读 | CVPR 2024 |RSDet:去除再选择:一种用于 RGB - 红外目标检测的由粗到精融合视角】
论文阅读 | CVPR 2024 |RSDet:去除再选择:一种用于 RGB - 红外目标检测的由粗到精融合视角 1.摘要&&引言2. 方法2.1 “由粗到细”融合策略2.2 冗余光谱去除模块(RSR)2.3 动态特征选择模块(DFS)2.4 去除与选择检…...
WinForms 应用中集成 OpenCvSharp 实现基础图像处理
引言 欢迎关注dotnet研习社,今天我们要讨论的主题是WinForms 应用中集成 OpenCvSharp 实现基础图像处理。 在常规的图像处理软件开发中,图像处理功能是这些应用程序的核心组成部分。无论是简单的照片编辑工具,还是复杂的计算机视觉应用&…...
apache http client连接池实现原理
在java开发中我们经常会涉及到http 请求接口,一般有几种方式: java自带的 HttpURLConnectionokHttpClientapache http client 一般我们使用apache http client会比较多点,在代码中会进行如下调用方式: private static class Htt…...
adb抓包
目录 抓包步骤 步骤 1: 获取应用的包名 步骤 2: 查看单个应用的日志 步骤 3: 使用日志级别过滤器 步骤 4: 高级日志过滤 可能的原因: 解决方案: 额外提示: 日志保存 抓包步骤 连接设备 adb devices 步骤 1: 获取应用的包名 首先…...
C语言---结构体 、联合体、枚举
一、初识结构体 1、结构体类型 结构体和数组都是集合,但是结构体有成员,类型可以不同;数组有成员,类型相同。 int main() {struct tag{member--list //一个或者多个成员,成员变量}variable--list;//可以省略&#x…...
Web Workers 使用指南
文章目录 前言基础使用高级特性 使用 ES Modules实际应用场景图像处理大数据处理轮询任务 性能优化技巧现代开发方式使用 worker-loader (Webpack) Vite中的Worker使用 限制与注意事项DOM限制:通信限制:同源策略:最佳实践 前言 Web Workers 是浏览器提供的 JavaScript 多线程解…...
JVM 与容器化部署调优实践(Docker + K8s)
📌 文章目录 📘 前言1️⃣ 容器环境下 JVM 面临的新挑战2️⃣ JVM 的容器资源感知机制详解3️⃣ JVM 内存调优:如何正确使用堆内存4️⃣ JVM CPU 调优:GC 与编译线程控制5️⃣ Kubernetes 典型配置误区与对策6️⃣ 实战案例&#…...
Android OkHttp控制链:深入理解网络请求的流程管理
OkHttp作为Android和Java平台上广泛使用的HTTP客户端,其核心设计之一就是"控制链"(Chain)机制。本文将深入探讨OkHttp控制链的工作原理、实现细节以及如何利用这一机制进行高级定制。 一、什么是OkHttp控制链 OkHttp控制链是一种责任链模式的实现&#…...
《易经》的数学表达:初级版和高级版
《易经》的数学表达, 一、初级版,可基于以下框架构建, 涵盖符号系统、结构代数及变换规则: 此框架将《易经》抽象为离散数学结构,兼容符号逻辑、概率论与群论,为算法化占断、卦象拓扑分析及跨文化比较提供…...
卷积神经网络基础(十)
之前我们学习了SGD、Momentum和AdaGrad三种优化方法,今天我们将继续学习Adam方法。 6.1.6 Adam 我们知道Momentum参照的是小球在碗中滚动的物理规则进行移动而实现的,AdaGrad为参数的每个元素适当地调整更新步伐。那如果我们将这两种方法融合在一起会不…...
怎么把cursor(Cursor/ollama)安装到指定路径
使用PowerShell命令 打开电脑开始菜单,输入powerShell,使用管理员权限打开powerShell窗口,使用cd命令到cursor或ollama安装包的下载目录,如我的Cursor所在的目录为D:\environment\cursor\soft,输入以下 cd E:\downloa…...
第21天-pyttsx3语音播放功能
示例1:语音参数控制(语速/音量/音调) import pyttsx3def speech_demo():engine = pyttsx3.init()# 获取当前语音参数print("默认语速:", engine.getProperty(rate))print("默认音量:", engine.getProperty(volume))print("可用语音:", engin…...
Multi-Query Attention:传统自注意力( Self-Attention)优化显存和加速方案
本文导读:Multi-Query Attention(MQA)是 Google Research 2022 年提出的一项轻量化注意力技术,通过“多查询、单键值”的设计,把自注意力层的 KV 缓存从 O(hnd) 降到 O(nd),在不牺牲模型精度的前提下大幅节…...
学习路之uniapp--unipush2.0推送功能--服务端推送消息
学习路之uniapp--unipush2.0推送功能--服务端推送消息 一、二、三、 一、 二、 三、...
如何使用AI搭建WordPress网站
人工智能正迅速成为包括网页设计在内的许多行业在其功能设置中添加的一种工具。在数字设计和营销领域,许多成熟的工具都在其产品中添加了人工智能功能。WordPress 也是如此。作为目前最流行的网站建设工具之一,WordPress 的人工智能插件越来越多也就不足…...
Java 项目管理工具:Maven 与 Gradle 的深度对比与选择
Java 项目管理工具:Maven 与 Gradle 的深度对比与选择 在 Java 开发领域,项目管理工具对于项目的构建、依赖管理等起着至关重要的作用。Maven 和 Gradle 是目前最主流的两款工具,它们各自有着独特的优势和适用场景。本文将对 Maven 与 Gradl…...
Elasticsearch简单集成java框架方式。
Elasticsearch 在 Java 中最常用的客户端是什么?如何初始化一个 RestHighLevelClient?如何用 Spring Boot 快速集成 Elasticsearch?Spring Data Elasticsearch 如何定义实体类与索引的映射? 最常用的 Java 客户端 目前官方推荐使用…...
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Hidden Search Widget (交互式搜索框)
📅 我们继续 50 个小项目挑战!—— Hidden Search Widget 组件 仓库地址:https://github.com/SunACong/50-vue-projects 项目预览地址:https://50-vue-projects.vercel.app/ ✨ 组件目标 点击按钮展开隐藏的搜索框 再次点击按钮…...
python爬虫和逆向:百度翻译数据采集的几种方式
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、官方API方式(推荐)1.1 百度翻译开放平台API二、网页版逆向方式(代码可直接运行)2.1 拿到js加密方法2.2 python解密代码三、浏览器自动化方式3.1 Selenium自动化操作3.2 Playwright自动化四、移动端API逆向4.1 分…...
spring5-配外部文件-spEL-工厂bean-FactoryBean
spring配外部文件 我们先在Spring里配置一个数据源 1.导c3p0包,这里我们先学一下hibernate持久化框架,以后用mybites. <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>5.2.…...
Ubuntu部署私有Gitlab
这个东西安装其实挺简单的,但是因为我这边迁移了数据目录和使用自己安装的 nginx 代理还是踩了几个坑,所以大家可以注意下 先看下安装 # 先安装必要组件 sudo apt update sudo apt install -y curl openssh-server ca-certificates tzdata perl# 添加gi…...
Activiti 7建表语句及注释
Activiti数据库表Oracle兼容DM建表语句及字段注释。 附件下载版地址点这里 --通用属性表 create table ACT_GE_PROPERTY (NAME_ NVARCHAR2(64),VALUE_ NVARCHAR2(300),REV_ INTEGER,primary key (NAME_) );COMMENT ON TABLE ACT_GE_PROPERTY IS 通用属性表;COMMENT ON COLUMN …...
React中使用 Ant Design Charts 图表
// 引入 Ant Design Charts 的柱状图组件 Column import { Column } from ant-design/charts;// 定义函数组件 App,用于展示柱状图 function App() {// 数据源:每个对象代表一个柱子,包含类型(type)和销售额࿰…...