STM32 HAL库 硬件IIC 从机一些问题整理(转载)

news/2025/12/4 1:26:30/文章来源:https://www.cnblogs.com/ctmd/p/19304531

一、从机双地址,在回调函数中获取主机访问的地址:

void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *I2cHandle)
{uint16_t slaveaddrcode     = I2C_GET_ADDR_MATCH(I2cHandle);printf("R:%d\r\n",slaveaddrcode);
}

  

二、如果用地址回调函数HAL_I2C_AddrCallback(),这个回调函数触发后,会关闭中断,需要再次开启中断,才能继续监听。需要特别注意开启监听中断的位置,有人在这个回调函数里直接开启,我测试了一下,不行,开启失败;还有人,把开启监听放在主循环里,一直不断轮询去开启,大力出奇迹,这样确实可以用,但是经过测试发现有时候会丢失,不能触发回调函数。直到看到这篇文章,在HAL_I2C_ListenCpltCallback()函数中开启,才是最优解。

void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode)
{if(TransferDirection == I2C_DIRECTION_TRANSMIT){// if(HAL_I2C_Slave_Seq_Receive_IT(&hi2c1, i2c.RxData, sizeof(i2c.RxData), I2C_FIRST_FRAME) != HAL_OK)// {// }	  }else if(TransferDirection == I2C_DIRECTION_RECEIVE){// if(HAL_I2C_Slave_Seq_Transmit_IT(&hi2c1, i2c.TxData, sizeof(i2c.TxData), I2C_LAST_FRAME)!= HAL_OK)// {// }  }//HAL_I2C_EnableListen_IT(hi2c);//在这里启动监听会失败,没有用}

  

// 侦听完成回调函数(完成一次完整的i2c通信以后会进入该函数)
void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
{// 完成一次通信,清除状态
//   first_byte_state = 1;
//   offset = 0;HAL_I2C_EnableListen_IT(hi2c); // slave is ready again
}

  

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

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

相关文章

本地人推荐的火锅,天台火锅/麻辣火锅/老火锅/市井火锅/川渝火锅约会地点推荐榜单

专业视角下的川渝火锅团建选址指南 随着企业团建需求的多元化发展,川渝火锅凭借其独特的社交属性与浓郁的文化氛围,已成为企业团建活动的优选场所。本文基于市场调研数据与消费者反馈,从空间容量、服务质量、特色体…

OBDSTAR P003+ Kit for DC706 Tablets: Simplify ECU, EEPROM, Flash IMMO Data Diagnostics Programming

Troubleshooting ECU & IMMO Challenges on European/American Cars? Meet the OBDSTAR P003+ Kit The Pain Point: Decrypting ECU & IMMO Data on European/American Vehicles For European and American m…

全程复盘:一次枚举值永远 Cloud2的坑——从玄学随机到只读属性

问题描述 在 .NET 6 + WPF 程序中,使用 TangdaoDataFaker<MusicInfo>.Build(200000) 生成测试数据时,控制台 20 条并行日志显示 QQ / Cloud / Kugou 随机分布,但 DataGrid 界面整屏只显示 Cloud2。同一套代码…

M726芯片

根据您提供的《M726 数据手册》,我为您整理了该芯片的关键性能参数,并列出了性能相近的竞品型号及价格参考(基于公开市场信息,实际价格以供应商报价为准):M726 芯片核心性能摘要 类别 参数内核 ARM Cortex-M0,最…

Fast Easy Electric Oil Siphon Pump: Professional Fluid Transfer for Cars, Motorcycles Boats

The Hidden Challenges of Fluid Transfer: Why Mechanics and Car Owners Need a Better Solution Anyone who’s ever drained engine oil, changed coolant, or refilled a motorcycle’s fuel tank knows the frus…

AutoCloseable接口 try-with-resources 、 try-catch-finally

在学习过程中发现了这样一段注释/*** 实现了 AutoCloseable 接⼝的类,在 try() ⾥声明该类实例的时候,在 try 结束后⾃动调⽤的 close ⽅法,这个动作会早于* finally ⾥调⽤的⽅法,不管是否出现异常,try() ⾥的实…

第44天(中等题 数据结构)

打卡第四十四天 2道中等题题目:思路:以每个点为中心,统计与它距离相同的点对数量 代码: class Solution { public:int numberOfBoomerangs(vector<vector<int>>& points) {int ans = 0;int n = po…

rizhi

rizhicat /tmp/ray/session_latest/logs/dashboard_agent.log

element-plus el-select

<template><div class="app"><h4>=========默认情况下的select组件在设置collapse-tags-tooltip后,只有在鼠标移入折叠标签后才显示文本</h4><el-selectmultiplecollapse-tagsc…

centos6.9编译安装python37——SSL 模块缺失、GCOV 链接错误,以及 Bash 命令缓存混乱

安装参考这篇 https://www.cnblogs.com/opsprobe/p/11266939.html 🚀 Python 编译与环境部署深度指南:告别 SSL 缺失和 Bash 缓存困扰 📝 导言 在 Linux 系统上从源码编译安装 Python,尤其是在企业级环境(如 Ce…

在 Windows 上本地部署 ComfyUI + zImage Turbo 模型(低显存友好)

原文:https://www.cnblogs.com/zwj/p/19304354/ai_local_zimg我是觉得我原文写的可能比较乱,于是让AI整理了一下我的原文,下方内容就是QwenMax根据我原文的内容生成的,仅供参考。 在 Windows 上本地部署 ComfyUI +…

sg.取消按钮焦点框

在PySimpleGUI中,按钮上的虚框通常是由焦点指示器(focus indicator)引起的。要取消这个虚框,可以通过以下两种方法实现: 方法1:禁用按钮的焦点属性 在按钮参数中添加 focus=False,直接禁用焦点效果: import Py…

代码随想录Day27_贪心1

代码随想录Day27_贪心1分发饼干 代码 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int index = s.s…

Day10-20251203

本文介绍了Java中变量、常量及其命名规范。主要内容包括:1)变量的定义与声明语法,强调Java是强类型语言;2)变量的三种作用域(类变量、实例变量、局部变量)及示例代码;3)常量的定义方式(使用final关键字)和命…

面向人机文明的价值协同:理论、实践与评估的完整框架

面向人机文明的价值协同:理论、实践与评估的完整框架 摘要:本文系统性地整合了关于“AI元人文构想”的完整论述,旨在应对人工智能自主性增强所带来的根本性挑战:如何与AI建立可验证、可进化、可信任的价值协同关系…

251203 完成比完美重要

今天运气可以,遇到了直拍侠,直接买了我的自行车。没有多一句话,就成功成交了。开心,希望后面继续 做完纠结了半天,还是决定换一个手机,换了华为荣耀500pro,长得还挺好看的,明天就能拿到了。还是不用苹果了。 准…

python调用大模型api来进行对话

一、Openai的接口调用 pip包下载pip install openai配置sk,urlOPENAI_API_KEY = sk-xxxxxOPENAI_BASE_URL = https://api.openai.com/v1接口调用import os from flask import Flask, jsonify from openai import Open…

【本地AI部署】comfyUI + zImageTurbo

首先声明,这是我第一次折腾这些,不是很懂,一些说法表达可能不准确,因此仅供参考。 硬件准备 电脑,我的是windows11, RTX3060 6G,配置不高,因此一些大模型就没法考虑了 关键是我电脑存储空间也不太够…… 环境…

主流玩家的高端主板!七彩虹战斧B850M超级黑刃主板评测:供电散热配置豪华 性价比极佳

主流玩家的高端主板!七彩虹战斧B850M超级黑刃主板评测:供电散热配置豪华 性价比极佳Posted on 2025-12-04 00:00 lzhdim 阅读(0) 评论(0) 收藏 举报一、前言:主流定位高端配置 电竞玩家的超级黑刃 AMD锐龙9000…

6.4 基于线弹性断裂力学(LEFM)的断裂参数

目录6.4 基于线弹性断裂力学(LEFM)的断裂参数6.4.1 三种基本加载方式6.4.2 线弹性材料的裂纹尖端渐近场6.4.3 简单几何形状和加载条件下应力强度因子的解法6.4.3.1 二维无限体中的中心裂纹6.4.3.2 二维半无限体中的边缘…