A21 STM32_HAL库函数 之 I2c通用驱动程序 -- B -- 所有函数的介绍及使用
A21 STM32_HAL库函数 之 I2c通用驱动程序 -- B -- 所有函数的介绍及使用
- 1 该驱动函数预览
- 1.12 HAL_I2C_Master_Sequential_Receive_IT
- 1.13 HAL_I2C_Slave_Transmit_IT
- 1.14 HAL_I2C_Slave_Receive_IT
- 1.15 HAL_I2C_Slave_Sequential_Transmit_IT
- 1.16 HAL_I2C_Slave_Sequential_Receive_IT
- 1.17 HAL_I2C_EnableListen_IT
- 1.18 HAL_I2C_DisableListen_IT
- 1.19 HAL_I2C_Master_Transmit_DMA
- 1.20 HAL_I2C_Master_Receive_DMA
- 1.21 HAL_I2C_Master_Abort_IT
- 1.22 HAL_I2C_Slave_Transmit_DMA
- 该文档修改记录:
- 总结
1 该驱动函数预览
序号 | 函数名 | 描述 |
---|---|---|
1 | HAL_I2C_Init() | 初始化I2C总线。 |
2 | HAL_I2C_DeInit() | 反初始化I2C总线。 |
3 | HAL_I2C_MspInit() | 初始化MCU外设相关的I2C引脚或资源。 |
4 | HAL_I2C_MspDeInit() | 反初始化MCU外设相关的I2C引脚或资源。 |
5 | HAL_I2C_Master_Transmit() | 主机发送数据到I2C设备。 |
6 | HAL_I2C_Master_Receive() | 主机从I2C设备接收数据。 |
7 | HAL_I2C_Slave_Transmit() | 从I2C设备发送数据到主机。 |
8 | HAL_I2C_Slave_Receive() | 从I2C设备接收主机发送的数据。 |
9 | HAL_I2C_Master_Transmit_IT() | 使用中断发送数据到I2C设备。 |
10 | HAL_I2C_Master_Receive_IT() | 使用中断从I2C设备接收数据。 |
11 | HAL_I2C_Master_Sequential_Transmit_IT() | 使用中断连续发送数据到I2C设备。 |
12 | HAL_I2C_Master_Sequential_Receive_IT() | 使用中断连续从I2C设备接收数据。 |
13 | HAL_I2C_Slave_Transmit_IT() | 使用中断从I2C设备发送数据到主机。 |
14 | HAL_I2C_Slave_Receive_IT() | 使用中断从I2C设备接收主机发送的数据。 |
15 | HAL_I2C_Slave_Sequential_Transmit_IT() | 使用中断连续从I2C设备发送数据到主机。 |
16 | HAL_I2C_Slave_Sequential_Receive_IT() | 使用中断连续从I2C设备接收主机发送的数据。 |
17 | HAL_I2C_EnableListen_IT() | 启用I2C设备的监听模式,并使用中断处理监听事件。 |
18 | HAL_I2C_DisableListen_IT() | 禁用I2C设备的监听模式。 |
19 | HAL_I2C_Master_Transmit_DMA() | 使用DMA发送数据到I2C设备。 |
20 | HAL_I2C_Master_Receive_DMA() | 使用DMA从I2C设备接收数据。 |
21 | HAL_I2C_Master_Abort_IT() | 使用中断终止I2C主机模式下的传输。 |
22 | HAL_I2C_Slave_Transmit_DMA() | 使用DMA从I2C设备发送数据到主机。 |
23 | HAL_I2C_Slave_Receive_DMA() | 使用DMA从I2C设备接收主机发送的数据。 |
24 | HAL_I2C_Mem_Write() | 写入I2C外设的存储器。 |
25 | HAL_I2C_Mem_Read() | 从I2C外设的存储器读取数据。 |
26 | HAL_I2C_Mem_Write_IT() | 使用中断写入I2C外设的存储器。 |
27 | HAL_I2C_Mem_Read_IT() | 使用中断从I2C外设的存储器读取数据。 |
28 | HAL_I2C_Mem_Write_DMA() | 使用DMA写入I2C外设的存储器。 |
29 | HAL_I2C_Mem_Read_DMA() | 使用DMA从I2C外设的存储器读取数据。 |
30 | HAL_I2C_IsDeviceReady() | 检测I2C设备是否准备好。 |
31 | HAL_I2C_EV_IRQHandler() | I2C事件中断处理程序。 |
32 | HAL_I2C_ER_IRQHandler() | I2C错误中断处理程序。 |
33 | HAL_I2C_MasterT |
xCpltCallback() | I2C主机发送完成回调函数。 |
| 34 | HAL_I2C_MasterRxCpltCallback() | I2C主机接收完成回调函数。 |
| 35 | HAL_I2C_SlaveTxCpltCallback() | I2C从机发送完成回调函数。 |
| 36 | HAL_I2C_SlaveRxCpltCallback() | I2C从机接收完成回调函数。 |
| 37 | HAL_I2C_AddrCallback() | I2C地址匹配回调函数。 |
| 38 | HAL_I2C_ListenCpltCallback() | I2C监听模式完成回调函数。 |
| 39 | HAL_I2C_MemTxCpltCallback() | I2C存储器发送完成回调函数。 |
| 40 | HAL_I2C_MemRxCpltCallback() | I2C存储器接收完成回调函数。 |
| 41 | HAL_I2C_ErrorCallback() | I2C错误回调函数。 |
| 42 | HAL_I2C_AbortCpltCallback() | I2C终止完成回调函数。 |
| 43 | HAL_I2C_GetState() | 获取I2C总线的状态。 |
| 44 | HAL_I2C_GetMode() | 获取I2C总线的模式。 |
| 45 | HAL_I2C_GetError() | 获取I2C总线的错误状态。 |
以下是使用模板:
#include "stm32f4xx_hal.h"int main(void) {// HAL初始化HAL_Init();// 初始化MCU外设相关的I2C引脚或资源HAL_I2C_MspInit();// 初始化I2C总线HAL_I2C_Init();// 进行其他操作...// 主机发送数据到I2C设备HAL_I2C_Master_Transmit();// 主机从I2C设备接收数据HAL_I2C_Master_Receive();// 从I2C设备发送数据到主机HAL_I2C_Slave_Transmit();// 从I2C设备接收主机发送的数据HAL_I2C_Slave_Receive();// 使用中断发送数据到I2C设备HAL_I2C_Master_Transmit_IT();// 使用中断从I2C设备接收数据HAL_I2C_Master_Receive_IT();// 使用DMA发送数据到I2C设备HAL_I2C_Master_Transmit_DMA();// 使用DMA从I2C设备接收数据HAL_I2C_Master_Receive_DMA();// I2C事件中断处理程序HAL_I2C_EV_IRQHandler();// I2C错误中断处理程序HAL_I2C_ER_IRQHandler();// 获取I2C总线的状态uint32_t i2cState = HAL_I2C_GetState();// 获取I2C总线的模式uint32_t i2cMode = HAL_I2C_GetMode();// 获取I2C总线的错误状态uint32_t i2cError = HAL_I2C_GetError();// 反初始化I2C总线HAL_I2C_DeInit();// 反初始化MCU外设相关的I2C引脚或资源HAL_I2C_MspDeInit();return 0;
}
1.12 HAL_I2C_Master_Sequential_Receive_IT
函数名 | HAL_I2C_Master_Sequential_Receive_IT |
---|---|
函数原形 | HAL_StatusTypeDef HAL_I2C_Master_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions) |
功能描述 | 通过中断以顺序传输方式从 I2C 从机接收数据 |
输入参数 1 | hi2c:I2C 句柄,指向一个 I2C_HandleTypeDef 结构体 |
输入参数 2 | DevAddress:从机地址 |
输入参数 3 | pData:指向存储接收数据的缓冲区 |
输入参数 4 | Size:要接收的数据长度 |
输入参数 5 | XferOptions:传输选项 |
输出参数 | 无 |
返回值 | HAL_StatusTypeDef:接收状态,可以是 HAL_OK 或 HAL_ERROR |
先决条件 | 无 |
被调用函数 | 无 |
1.13 HAL_I2C_Slave_Transmit_IT
函数名 | HAL_I2C_Slave_Transmit_IT |
---|---|
函数原形 | HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) |
功能描述 | 通过中断发送数据到 I2C 主机 |
输入参数 1 | hi2c:I2C 句柄,指向一个 I2C_HandleTypeDef 结构体 |
| 输入参数 2 | pData:指向要发送的数据缓冲区 |
| 输入参数 3 | Size:要发送的数据长度 |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:传输状态,可以是 HAL_OK 或 HAL_ERROR |
| 先决条件 | 无 |
| 被调用函数 | 无 |
1.14 HAL_I2C_Slave_Receive_IT
函数名 | HAL_I2C_Slave_Receive_IT |
---|---|
函数原形 | HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) |
功能描述 | 通过中断从 I2C 主机接收数据 |
输入参数 1 | hi2c:I2C 句柄,指向一个 I2C_HandleTypeDef 结构体 |
输入参数 2 | pData:指向存储接收数据的缓冲区 |
输入参数 3 | Size:要接收的数据长度 |
输出参数 | 无 |
返回值 | HAL_StatusTypeDef:接收状态,可以是 HAL_OK 或 HAL_ERROR |
先决条件 | 无 |
被调用函数 | 无 |
1.15 HAL_I2C_Slave_Sequential_Transmit_IT
函数名 | HAL_I2C_Slave_Sequential_Transmit_IT |
---|---|
函数原形 | HAL_StatusTypeDef HAL_I2C_Slave_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions) |
功能描述 | 通过中断以顺序传输方式发送数据到 I2C 主机 |
输入参数 1 | hi2c:I2C 句柄,指向一个 I2C_HandleTypeDef 结构体 |
输入参数 2 | pData:指向要发送的数据缓冲区 |
输入参数 3 | Size:要发送的数据长度 |
输入参数 4 | XferOptions:传输选项 |
输出参数 | 无 |
返回值 | HAL_StatusTypeDef:传输状态,可以是 HAL_OK 或 HAL_ERROR |
先决条件 | 无 |
被调用函数 | 无 |
1.16 HAL_I2C_Slave_Sequential_Receive_IT
函数名 | HAL_I2C_Slave_Sequential_Receive_IT |
---|---|
函数原形 | HAL_StatusTypeDef HAL_I2C_Slave_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t XferOptions) |
功能描述 | 通过中断以顺序传输方式从 I2C 主机接收数据 |
输入参数 1 | hi2c:I2C 句柄,指向一个 I2C_HandleTypeDef 结构体 |
输入参数 2 | pData:指向存储接收数据的缓冲区 |
输入参数 3 | Size:要接收的数据长度 |
输入参数 4 | XferOptions:传输选项 |
输出参数 | 无 |
返回值 | HAL_StatusTypeDef:接收状态,可以是 HAL_OK 或 HAL_ERROR |
先决条件 | 无 |
被调用函数 | 无 |
1.17 HAL_I2C_EnableListen_IT
函数名 | HAL_I2C_EnableListen_IT |
---|---|
函数原形 | HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) |
功能描述 | 使能 I2C 的监听模式 |
输入参数 | hi2c:I2C 句柄,指向一个 I2C_HandleTypeDef 结构体 |
输出参数 | 无 |
返回值 | HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR |
先决条件 | 无 |
被调用函数 | 无 |
1.18 HAL_I2C_DisableListen_IT
函数名 | HAL_I2C_DisableListen_IT |
---|---|
函数原形 | HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) |
功能描述 | 禁用 I2C 的监听模式 |
输入参数 | hi2c:I2C 句柄,指向一个 I2C_HandleTypeDef 结构体 |
输出参数 | 无 |
返回值 | HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR |
先决条件 | 无 |
被调用函数 | 无 |
1.19 HAL_I2C_Master_Transmit_DMA
函数名 | HAL_I2C_Master_Transmit_DMA |
---|---|
函数原形 | HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size) |
功能描述 | 通过 DMA 发送数据到 I2C 从机 |
输入参数 1 | hi2c:I2C 句柄,指向一个 I2C_HandleTypeDef 结构体 |
输入参数 2 | DevAddress:从机地址 |
输入参数 3 | pData:指向要发送的数据缓冲区 |
输入参数 4 | Size:要发送的数据长度 |
输出参数 | 无 |
返回值 | HAL_StatusTypeDef:传输状态,可以是 HAL_OK 或 HAL_ERROR |
先决条件 | 无 |
被调用函数 | 无 |
1.20 HAL_I2C_Master_Receive_DMA
函数名 | HAL_I2C_Master_Receive_DMA |
---|---|
函数原形 | HAL_Status |
TypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size) |
| 功能描述 | 通过 DMA 从 I2C 从机接收数据 |
| 输入参数 1 | hi2c:I2C 句柄,指向一个 I2C_HandleTypeDef 结构体 |
| 输入参数 2 | DevAddress:从机地址 |
| 输入参数 3 | pData:指向存储接收数据的缓冲区 |
| 输入参数 4 | Size:要接收的数据长度 |
| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:接收状态,可以是 HAL_OK 或 HAL_ERROR |
| 先决条件 | 无 |
| 被调用函数 | 无 |
1.21 HAL_I2C_Master_Abort_IT
函数名 | HAL_I2C_Master_Abort_IT |
---|---|
函数原形 | HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c) |
功能描述 | 通过中断终止 I2C 主机的传输 |
输入参数 | hi2c:I2C 句柄,指向一个 I2C_HandleTypeDef 结构体 |
输出参数 | 无 |
返回值 | HAL_StatusTypeDef:操作状态,可以是 HAL_OK 或 HAL_ERROR |
先决条件 | 无 |
被调用函数 | 无 |
1.22 HAL_I2C_Slave_Transmit_DMA
函数名 | HAL_I2C_Slave_Transmit_DMA |
---|---|
函数原形 | HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) |
功能描述 | 通过 DMA 发送数据到 I2C 主机 |
输入参数 1 | hi2c:I2C 句柄,指向一个 I2C_HandleTypeDef 结构体 |
输入参数 2 | pData:指向要发送的数据缓冲区 |
输入参数 3 | Size:要发送的数据长度 |
输出参数 | 无 |
返回值 | HAL_StatusTypeDef:传输状态,可以是 HAL_OK 或 HAL_ERROR |
先决条件 | 无 |
被调用函数 | 无 |
该文档修改记录:
修改时间 | 修改说明 |
---|---|
2024年4月30日 | 第一次发布,介绍了该博客驱动所有函数的介绍及使用 |
总结
以上就是该博客驱动所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。
相关文章:
A21 STM32_HAL库函数 之 I2c通用驱动程序 -- B -- 所有函数的介绍及使用
A21 STM32_HAL库函数 之 I2c通用驱动程序 -- B -- 所有函数的介绍及使用 1 该驱动函数预览1.12 HAL_I2C_Master_Sequential_Receive_IT1.13 HAL_I2C_Slave_Transmit_IT1.14 HAL_I2C_Slave_Receive_IT1.15 HAL_I2C_Slave_Sequential_Transmit_IT1.16 HAL_I2C_Slave_Sequential_R…...
简介:Asp.Net Core进阶高级编程教程
课程简介目录 🚀前言一、课程背景二、课程目的三、课程特点四、课程适合人员六、最后 🚀前言 本文是《.Net Core进阶编程课程》教程专栏的导航站(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)…...

Linux系统中LVM与磁盘配额
目录 一、LVM逻辑卷管理 二、LVM的管理命令 物理卷管理 卷组管理 逻辑卷管理 *创建并使用LVM步骤 三、磁盘配额概述 实现磁盘限额的条件 Linux 磁盘限额的特点 四、磁盘配额管理 磁盘限额 一、LVM逻辑卷管理 能够在保持现有数据不变的情况下动态调整磁盘容量&#…...
手机重启手app没了
发现公司有些Android球机设备,安装了一些app,重启后app没了,还有公司的一些Android手机,原来是没问题的,不知道哪天起,只要重启,新安装的软件就会没了,很神奇。后来发现,…...
github上传代码
偷一下懒,把链接贴一下,后续再补充。 1.下载Git 【学习笔记】上传代码到GitHub(保姆级教程) 2.如何创建GitHub仓库 手把手教你在github上传文件 3.如何删掉GitHub仓库 github如何删除仓库或项目? 4.遇到的错误 …...

Qt+vstudio2022的报错信息积累
从今天开始记录一下平常开发工作中的报错记录,后续有错误动态补充! 报错信息:【MSB8041】此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。 解决: 背景:换…...
力扣练习题(2024/4/16)
1买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔…...
c++中一些常用库函数
1.最大公约数 需要包括头文件#include<algorithm>,直接写__gcd(a,b),就是求a与b的最大公约数。 #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<queue> #include<stack> #include<map>…...

竞赛 基于GRU的 电影评论情感分析 - python 深度学习 情感分类
文章目录 1 前言1.1 项目介绍 2 情感分类介绍3 数据集4 实现4.1 数据预处理4.2 构建网络4.3 训练模型4.4 模型评估4.5 模型预测 5 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于GRU的 电影评论情感分析 该项目较为新颖,适合作为竞…...

软件杯 深度学习图像修复算法 - opencv python 机器视觉
文章目录 0 前言2 什么是图像内容填充修复3 原理分析3.1 第一步:将图像理解为一个概率分布的样本3.2 补全图像 3.3 快速生成假图像3.4 生成对抗网络(Generative Adversarial Net, GAN) 的架构3.5 使用G(z)生成伪图像 4 在Tensorflow上构建DCGANs最后 0 前言 &#…...
java日志log4j使用
1、导入jar包 log4j-1.2.17.jar log4j-api-2.0-rc1.jar log4j-core-2.0-rc1.jar https://download.csdn.net/download/weixin_44201223/89148839 所需jar包下载地址 2、创建 log4j.properties src 下创建 log4j.properties (路径和名称都不允许改变),放置 src 下…...
探索Python爬虫利器:Scrapy框架解析与实战
探索Python爬虫利器:Scrapy框架解析与实战 在当今信息时代,数据的价值不言而喻。而Python爬虫技术,作为获取网络数据的重要手段,已经成为了许多数据分析师、开发者和研究者必备的技能。本文将为您详细介绍Python爬虫技术中的利器—…...

Rust腐蚀服务器修改背景和logo图片操作方法
Rust腐蚀服务器修改背景和logo图片操作方法 大家好我是艾西一个做服务器租用的网络架构师。在我们自己搭建的rust服务器游戏设定以及玩法都是完全按照自己的想法设定的,如果你是一个社区服那么对于进游戏的主页以及Logo肯定会有自己的想法。这个东西可以理解为做一…...
【架构-15】NoSQL数据库
NoSQL(Not Only SQL)数据库是一类非关系型数据库,与传统的关系型数据库(如MySQL、Oracle)相对而言。NoSQL数据库的设计目标是针对大规模数据和高并发访问的需求,具有高可扩展性、高性能和灵活的数据模型。 …...

中国人工智能产业年会智能交通与自动驾驶专题全景扫描
中国人工智能产业年会(CAIIAC)是中国人工智能技术发展和应用的重要展示平台,不仅关注创新,还涵盖了市场和监管方面的内容,对于促进人工智能领域的发展起到了重要作用。年会汇集了来自学术界、工业界和政府的专家&#…...

SpringBoot相关知识点总结
1 SpringBoot的目的 简化开发,开箱即用。 2 Spring Boot Starter Spring Boot Starter 是 Spring Boot 中的一个重要概念,它是一种提供依赖项的方式,可以帮助开发人员快速集成各种第三方库和框架。Spring Boot Starter 的目的是简化 Sprin…...
【QT】关于qcheckbox常用的三个信号,{sstateChanged(int) clicked() clicked(bool)}达成巧用
在 Qt 中,QCheckBox 是一个提供复选框功能的小部件,允许用户选择和取消选择一个或多个选项。QCheckBox 提供了几种信号来响应用户的交互,其中 stateChanged(int), clicked(), 和 clicked(bool) 是常用的。下面解释这些信号的意义及其用法。 …...

在线音乐网站的设计与实现
在线音乐网站的设计与实现 摘 要 在社会和互联网的快速发展中,音乐在人们生活中也产生着很大的作用。音乐可以使我们紧张的神经得到放松,有助于开启我们的智慧,可以辅助治疗,达到药物无法达到的效果,所以利用现代科学…...
【电路笔记】-数字缓冲器
数字缓冲器 文章目录 数字缓冲器1、概述2、单输入数字缓冲器3、三态缓冲器3.1 有效“高”三态缓冲器3.2 有效“高”反相三态缓冲器3.3 有效“低”三态缓冲器3.4 有效“低”反相三态缓冲器4、三态缓冲器控制数字缓冲器和三态缓冲器可以在数字电路中提供电流放大以驱动输出负载。…...
Opencv | 基于ndarray的基本操作
这里写目录标题 一. Opencv 基于ndarray的基本操作1. 浅拷贝2. np.copy ( ) 深拷贝3. 堆叠3.1 np.vstack ( ) 垂直方向堆叠3.2 np.hstack ( ) 水平方向堆叠 4. numpy创建图像5 np.transpose ( ) 更改维度顺序6. cv.resize ( ) 放大缩小7. np.clip ( ) 一. Opencv 基于ndarray的…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...