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的…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
