stm32 I2C总线入门笔记
有两组I2C总线,I2C1与PB6\7复用;I2C2与PB10\11复用
工程文件之间的关系(以I2C读取温度值为例):
对于刚学stm32的初学者来说(就比如我),肯定会被它一大叠文件、依存的库之间的关系而被搞得晕头转向。上面那张图就比较形象的描绘了各文件之间的关系,从下往上依次从下位机到上位机。stm32f10x和i2.c文件由stm公司提供,用户一般不需要修改。.h文件则定义初始化一些接口,i2C驱动程序.c则是编程实现具体功能的地方,main.c是用户编程的主场所。
IM75温度传感器:
LM75A_GetTemp();//获取温度值
I2C_READ_BUFFER(LM75A_ADD.0X00.buf,2) ; //读取温度值
I2C接口初始化:
I2C_InitTYPEDEF I2C_InitSturcture;
RCC_PABIPeriphClockCmdCRcc_APB|Poriph_I2C1,ENABLE);
GPIO_InitStructure.GPIO_Pin=I2C_SCL|I2C_SDA;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_OD;//开漏模式即端口悬空
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHZ;
GPIO_Init_(I2CPORT,&GPIO_InitStructure);
I2C初始化程序:
I2C_InitTYPEDEF I2C_InitSturcture;
I2C_GPIO_Init();
I2C_InitStructure.I2C_Mode_I2C;
I2C_InitStructure.I2C_DutyCycle=i2c_DutyCycle_2;
I2C_InitStructure.I2C_OwnAddress1=HostAddress;
I2C_InitStructure.I2C_Ack=I2C_Ack_Enable;
I2C_InitStructure.I2C_AcknowledgeAddress=I2C_AcknowledgeAddress;
I2C_InitStructure.I2C_ClockSpeed=BusSpeed;
I2C_Init(I2C1,&I2C_InitStructure);
I2C_Cmd(I2C1,ENABLE);//开启I2C
注:这一般不需修改
stm32 I2C总线入门笔记相关推荐
- STM32 I2C总线从机发送接收源码下载,有图有真相!
功能: 1.接收主机发送的数据并储存在内部缓冲区,然后通过串口打印输出: 2.主机读取数据时,将内部缓冲区中的数据返回: 3.发送接收都采用中断方式实现,经验证基本上没什么问题: 串口打印输出的数据: ...
- i2c hid 触摸板不能用_I2C 总线协议初探 - STM32 I2C 接口外设学习笔记
I2C(Inter-Integrated Circuit)总线是由 PHILIPS(飞利浦) 公司开发的两线式串行总线,用于连接微控制器及其外围设备.是微电子通信控制领域广泛采用的一种总线标准.它是同 ...
- STM32入门笔记(02):定时器之定时器中断、输入捕获和PWM输出(SPL库函数版)
目录 定时器 8个定时器 定时器功能 定时器中断 常用通用定时器的寄存器 定时器中断实验目的: 定时器库函数及步骤 实验程序讲解 PWM 简介 STM32 PWM工作过程 PWM模式1 与 PWM模式 ...
- 基于I2C总线的MPU6050学习笔记
MPU6050学习笔记 1. 简述 一直想自己做个四轴飞行器,却无从下手,终于狠下决心,拿出尘封已久的MPU6050模块,开始摸索着数据手册分析,一步一步地实现了MPU6050模块的功能,从MPU60 ...
- STM32 CAN总线通信学习笔记(一)
STM32 CAN总线通信学习笔记(一) 一.CAN总线简介 CAN 是控制器局域网络(Controller Area Network, CAN)的简称.CAN采用数据块编码的方式,数据块根据帧的类型 ...
- STM32——stm32 I2C通信代码配置(2)(学习笔记)
STM32--I2C通信配置 I2C的系统框架 1.通讯引脚 2.时钟控制逻辑 3.数据控制逻辑 4.整体控制逻辑 通信过程 写入过程 读取过程 I2C代码配置 I2C的初始化结构体 几个重要的函数 ...
- ESP32-C3入门教程 基础篇(四、I2C总线 — 与SHT21温湿度传感器通讯)
测试第四课,了解ESP32-C3的 I2C 总线使用,与SHT21 温湿度传感器通讯 这一课把基础介绍放在前面,先看基本流程,再去修改代码 目录 前言 1. ESP32-C3 I2C基础介绍 1.1 ...
- STM32 HAL 驱动I2C总线0.91寸OLED模块(基于SSD1306显示驱动芯片)
STM32 HAL 驱动I2C总线0.91寸OLED模块(基于SSD1306显示驱动芯片) 基于SSD1306驱动芯片的OLED模块有多种型号,有0.91英寸,0.96英寸等等.OLED采用单色显示方 ...
- 【C51单片机学习笔记--DS1302时钟芯片蜂鸣器I2C总线AT24C02存储器】
C51单片机学习笔记–DS1302时钟芯片&&蜂鸣器&&I2C总线&&AT24C02存储器 文章目录 一.DS1302时钟芯片介绍 二.DS1302时钟 ...
- I2C总线通信协议及实操stm32通过I2C实现温湿度(AHT20)采集
I2C总线通信协议及实操stm32通过I2C实现温湿度(AHT20)采集 一实验要求 二.12C总线通信协议 1.12C介绍 2.I2C物理层 3.I2C协议层 4.软件IIC和硬件IIC 三.STM ...
最新文章
- python非线性回归分析_sklearn实现非线性回归模型
- python数学公式代码导入_在Matplotlib图中插入LaTex公式实例
- Boost:双图bimap与mi_bidirectional地图的测试程序
- Python 基本数据类型 (二) - 字符串
- LeetCode57 Insert Interval
- STM32工作笔记0089---UCOSIII存储管理
- 异步 JavaScript 之理解 macrotask 和 microtask(转)
- 隐藏元素 mayaa
- 【转】Jenkins 构建触发器操作详解
- 【FPGA——协议篇】:I2C总线协议详解+verilog源码
- 简单使用ember后的几点感想
- yum install安装时 提示“Another app is currently holding the yum lock; waiting for it to exit...”原因和解决
- html自动拿微信扫描,HTML——微信浏览器H5页面调用微信扫一扫
- 使用RssHub为网页生成RSS订阅源
- linux gst-launch-1.0测试音视频
- iOS 相机调用后为英文的解决办法
- 北京大学肖臻老师《区块链技术与应用》公开课笔记23——ETH挖矿难度调整篇
- ​稳压二极管与TVS二极管
- 常用的大数据技术有哪些?
- 逆向学习:破解一个小程序