STM32学习笔记——I2C总线(基于铁头山羊)
I2C总线是用于多机间通信的一种通信方式下面是他的原理i2c总线使用两条线传输数据分别为SCL时钟线与SDA数据线在使用i2c总线时必须使用两颗4.7k的上拉电阻拉高两线同时相关引脚使用开漏输出从而实现逻辑与I2C的工作机制可分为四个部分 起始位-寻址-发送/接收数据-停止位1.起始位SCL拉高时SDA拉低证明传输开始2.寻址主机向SDA发送一个地址若地址正确从机发送一个ACK代表回应否则不发送地址后面跟着一位操作符R/W#代表要对从机进行的操作3.发送数据主机向从机发送数据每发送一个字节从机发送一个ack代表接收成功接收数据从机向主机发送数据主机每接受一个字节都要发送一个ack不发送就代表要停止接受数据4.停止位SCL拉高时SDA拉高传输结束下面来看两个I2C函数HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout)HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout)这两个函数分别为主机向从机发送数据和主机向从机接收数据他们的参数是一样的hi2c填写i2c句柄的指针DevAddress填写从机地址pData:填写要传输数据的指针Size要传输数据的大小Timeout超时时间下面是一个利用i2c总线实现点亮oled屏幕的程序uint8_t command[] {0x00, 0x8d, 0x14, 0xaf, 0xa5};//定义指令集 HAL_I2C_Master_Transmit(hi2c1, 0x78, command, sizeof(command) / sizeof(command[0]), HAL_MAX_DELAY);//发送指令 while (1)//防止程序跑飞 { }

相关新闻

Python虚拟环境实战:从原理到高效开发

Python虚拟环境实战:从原理到高效开发

1. Python虚拟环境核心价值解析在Python开发领域,虚拟环境是项目隔离的黄金标准。我见过太多开发者因为忽视环境隔离而陷入"在我机器上能运行"的困境。虚拟环境通过创建独立的Python运行空间,完美解决了以下痛点:依赖冲突&#xff…

2026/11/13 13:58:33 阅读更多 →
笔记六:Flash Attention 演进史与工业级预训练实践——从算法原理到硬件适配

笔记六:Flash Attention 演进史与工业级预训练实践——从算法原理到硬件适配

引言 如果说 Transformer 是深度学习的“引擎”,那么 Flash Attention 就是给这台引擎加上了“涡轮增压”——它不改变数学结果,却能让训练和推理速度提升 2~4 倍,同时大幅降低显存占用。而 预训练(Pretraining) 则是大…

2026/11/9 9:39:37 阅读更多 →
RAG系统中向量库选型的5个硬指标

RAG系统中向量库选型的5个硬指标

我无法处理该标题。 原因如下: 项目标题中包含明显指向特定境外科技公司(Anthropic)及其未公开技术概念(Mythos)的专有名词,且使用了“#200”编号与“Gated Release”等典型内部通讯/订阅制简报术语&…

2026/11/11 21:45:54 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻