有两组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总线入门笔记相关推荐

  1. STM32 I2C总线从机发送接收源码下载,有图有真相!

    功能: 1.接收主机发送的数据并储存在内部缓冲区,然后通过串口打印输出: 2.主机读取数据时,将内部缓冲区中的数据返回: 3.发送接收都采用中断方式实现,经验证基本上没什么问题: 串口打印输出的数据: ...

  2. i2c hid 触摸板不能用_I2C 总线协议初探 - STM32 I2C 接口外设学习笔记

    I2C(Inter-Integrated Circuit)总线是由 PHILIPS(飞利浦) 公司开发的两线式串行总线,用于连接微控制器及其外围设备.是微电子通信控制领域广泛采用的一种总线标准.它是同 ...

  3. STM32入门笔记(02):定时器之定时器中断、输入捕获和PWM输出(SPL库函数版)

    目录 定时器 8个定时器 定时器功能 定时器中断 常用通用定时器的寄存器 定时器中断实验目的: 定时器库函数及步骤 实验程序讲解 PWM 简介 STM32 PWM工作过程 PWM模式1 与 PWM模式 ...

  4. 基于I2C总线的MPU6050学习笔记

    MPU6050学习笔记 1. 简述 一直想自己做个四轴飞行器,却无从下手,终于狠下决心,拿出尘封已久的MPU6050模块,开始摸索着数据手册分析,一步一步地实现了MPU6050模块的功能,从MPU60 ...

  5. STM32 CAN总线通信学习笔记(一)

    STM32 CAN总线通信学习笔记(一) 一.CAN总线简介 CAN 是控制器局域网络(Controller Area Network, CAN)的简称.CAN采用数据块编码的方式,数据块根据帧的类型 ...

  6. STM32——stm32 I2C通信代码配置(2)(学习笔记)

    STM32--I2C通信配置 I2C的系统框架 1.通讯引脚 2.时钟控制逻辑 3.数据控制逻辑 4.整体控制逻辑 通信过程 写入过程 读取过程 I2C代码配置 I2C的初始化结构体 几个重要的函数 ...

  7. ESP32-C3入门教程 基础篇(四、I2C总线 — 与SHT21温湿度传感器通讯)

    测试第四课,了解ESP32-C3的 I2C 总线使用,与SHT21 温湿度传感器通讯 这一课把基础介绍放在前面,先看基本流程,再去修改代码 目录 前言 1. ESP32-C3 I2C基础介绍 1.1 ...

  8. STM32 HAL 驱动I2C总线0.91寸OLED模块(基于SSD1306显示驱动芯片)

    STM32 HAL 驱动I2C总线0.91寸OLED模块(基于SSD1306显示驱动芯片) 基于SSD1306驱动芯片的OLED模块有多种型号,有0.91英寸,0.96英寸等等.OLED采用单色显示方 ...

  9. 【C51单片机学习笔记--DS1302时钟芯片蜂鸣器I2C总线AT24C02存储器】

    C51单片机学习笔记–DS1302时钟芯片&&蜂鸣器&&I2C总线&&AT24C02存储器 文章目录 一.DS1302时钟芯片介绍 二.DS1302时钟 ...

  10. I2C总线通信协议及实操stm32通过I2C实现温湿度(AHT20)采集

    I2C总线通信协议及实操stm32通过I2C实现温湿度(AHT20)采集 一实验要求 二.12C总线通信协议 1.12C介绍 2.I2C物理层 3.I2C协议层 4.软件IIC和硬件IIC 三.STM ...

最新文章

  1. python非线性回归分析_sklearn实现非线性回归模型
  2. python数学公式代码导入_在Matplotlib图中插入LaTex公式实例
  3. Boost:双图bimap与mi_bidirectional地图的测试程序
  4. Python 基本数据类型 (二) - 字符串
  5. LeetCode57 Insert Interval
  6. STM32工作笔记0089---UCOSIII存储管理
  7. 异步 JavaScript 之理解 macrotask 和 microtask(转)
  8. 隐藏元素 mayaa
  9. 【转】Jenkins 构建触发器操作详解
  10. 【FPGA——协议篇】:I2C总线协议详解+verilog源码
  11. 简单使用ember后的几点感想
  12. yum install安装时 提示“Another app is currently holding the yum lock; waiting for it to exit...”原因和解决
  13. html自动拿微信扫描,HTML——微信浏览器H5页面调用微信扫一扫
  14. 使用RssHub为网页生成RSS订阅源
  15. linux gst-launch-1.0测试音视频
  16. iOS 相机调用后为英文的解决办法
  17. 北京大学肖臻老师《区块链技术与应用》公开课笔记23——ETH挖矿难度调整篇
  18. ​稳压二极管与TVS二极管
  19. 常用的大数据技术有哪些?
  20. 逆向学习:破解一个小程序

热门文章

  1. 重拾呐些記憶,前面の路,獨自繼續前往。
  2. mybatis中使用大于,小于号
  3. 三维视觉之结构光原理详解
  4. 这些地区的大学,取消英语四六级口语考试!
  5. js转换Date日期格式
  6. 【管理学】行业KOL——关键意见领袖(达人效应)
  7. 安装andriod studio的过程中遇到的问题
  8. ET框架学习——消息系统之四
  9. fastlane php,Fastlane自动化打包笔记
  10. c++运行错误: string subscript out of range