当前位置: 首页 > news >正文

STM32学习之I2C(理论篇)

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载注明出处

I2C答疑点

疑惑:这个函数已经声明了,为什么还是显示这个警告?

答复:原因是头文件里面的if def名称跟文件名没对上。
修改后,函数名显示正常,能正常跳转。

疑惑:I2C验证,如何接线,环境怎么搭建?

答复:
1、主板子的SCL引脚(时钟线)连接到从板子的SCL引脚。SCL用于同步主从设备之间的数据传输,确保数据在正确的时刻被接收和发送。
2、主板子的SDA引脚(数据线)连接到从板子的SDA引脚。SDA用于传输实际的数据,包括地址信息、控制指令和数据字节等。

将主版的数据线和子版的数据线连在一起,时钟和时钟线连在一起,然后再分别接一个上拉电阻

3、 还需要将主从板子的电源和电源引脚,地线和地线都要连在一起。

但是我看代码中选择SCL和SDA的PIN是根据I2C的类别来的,所以怀疑3609是不是支持多个I2C总线?

疑惑:I2C上拉电阻的作用?

答复:I2C协议规定总线处于空闲时为高电平状态。这样通过判断总线当前是否为空闲状态。
还有一个就是想要实现“线与“。

疑惑:什么是上拉电阻、下拉电阻?

答复:上拉电阻连接到电源正极,会使连接点的电平被拉高到电源电压附件。下拉电阻反之。
作用就是使与上下拉电阻相连的引脚处于高电平或是低电平的状态。

疑惑:I2C总线,为什么要实现“线与“?

答复:I2C总线允许多个主设备和从设备连接在同一个总线上。
借助“线与“机制,就可以避免访问冲突。
比如:两个主设备几乎同时想要向从设备发送数据,当其中一个主设备率先拉低总线时,另一个主设备通过检测总线电平变化,就知道当前总线已被占用,进而调整自身的发送时机。

疑惑:上下拉电阻值一般是多大?

答复:一般在1k欧到10k欧之间。
疑问:如何解决I2C总线上多个主机访问的冲突?

答复: 通过I2C总线仲裁。

疑问:详细解释下I2C的总线仲裁?
答复:当两个主机在总线空闲的时候都产生了一个有效的起始位,这种情况就需要决定由哪个主机来完成数据传输,也就是仲裁的过程。
仲裁的原则是“低电平优先“,即谁先发送低电平谁就掌握了对总线的控制权。
其次,仲裁的过程跟从机无关。

疑问:一个I2C总线上最多可以挂载多少个从机?

答复:I2C从机的地址长度位7bit,因此理论上,只要地址不同,一个主机可以挂在2的7次方个从机,即128个。但是从机数量增加会导致总线寄生电容增大,影响通讯质量。因此在实际应用中,一般最多不超过8个,总线容量控制在400pF以内。

疑惑:I2C的应用场景有哪些?

答复:一般用于跟传感器通信。温湿度、气压、运动、红外等传感器。

疑惑:为什么I2C常用于传感器之间的通信?

答复:
1、 I2C只需要两根线就可以与设备连接,而传感器通常体积较小,引脚数量有限。
2、 I2C多主多从的结构,允许一个总线上挂在多个传感器,不需要额外的片选线,简化了布线。比如一个电路版上同时连接温度传感器和光传感器,共用I2C总线就能节省资源。
3、 I2C速度方面虽然不及SPI,但是对于大部分传感器都足够了。
4、 其次,功耗低。

疑惑:I2C在项目中如何体现使用经验?

答复:比如通过I2C协议控制XX传感器。这里尤其是摄像头,虽然我们之前有项目经验,但是对于图像数据的传输,I2C支持不了。
那就只能在其他项目中加入这个接口协议了。

疑惑:I2C时序问题?

答复:
开始信号:SCL为高电平时,SDA电平由高变低。即出现下降沿为开始。
结束信号:SCL为高电平时,SDA电平由低变高。即出现上升沿为结束。
读取数据:SCL为高电平时,SDA保持稳定。数据传输为MSB,高位优先。
应答机制:每传输8位数据,接收方就要发送一个应答信号ACK,即低电平,表示成功接收。

疑惑:单片机支持多个I2C接口吗?

答复:是的,大多数STM32系列至少支持2个独立I2C接口(I2C1、I2C2),高端型号会支持3个I2C接口,每个接口都有不同的引脚分配。

疑惑:I2C的速率只有一个吗?

答复:不是。有标准模式和快速模式,前者速度可达100kbit/s,后者可达1000kbit/s

疑惑:I2C主机和从机数据发送和接收是这样一个过程呢?

答复:

疑惑:如何界定主机和从机?

答复:

相关文章:

  • 智慧零售管理中的客流统计与属性分析
  • tableau 实战工作场景常用函数与LOD表达式的应用详解
  • rl_sar实现sim2real的整体思路
  • 按字典序排列最小的等效字符串
  • 第三章支线二 ·函数幻阶:语法召唤与逻辑封印
  • C#提取CAN ASC文件时间戳:实现与性能优化
  • < 自用文 OS有关 新的JD云主机> 国内 京东云主机 2C4G 60G 5Mb 498/36月 Ubuntu22
  • 618来了,推荐京东云服务器
  • 如何构建船舵舵角和船的航向之间的动力学方程?它是一个一阶惯性环节吗?
  • python打卡第47天
  • ArcPy扩展模块的使用
  • 数控滑台技术革新:实现高效精密加工的全面探索
  • 【读论文】U-Net: Convolutional Networks for Biomedical Image Segmentation 卷积神经网络
  • 第二十七课:手搓梯度提升树
  • FreeRTOS任务调度过程vTaskStartScheduler()任务设计和划分
  • 推客系统小程序开发:告别低效推广,开启精准获客新时代
  • 本地windows服务器部署私有云网盘Nextcloud并无公网IP实现外部访问
  • go语言学习 第9章:映射(Map)
  • 数论总结,(模版与题解)
  • csrf攻击学习
  • 做购物网站数据库分析/免费收录平台
  • 工商注册公司查名/西安seo
  • 龙华做网站 熊掌号/百度有几个总部
  • 珠海关键词优化收费/厦门谷歌seo公司
  • 网站里的课程配图怎么做/黄石seo
  • 清远网站建设公司/网络推广法