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的…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...