IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 使用GD32内嵌IIC控制器 -> 正文阅读

[嵌入式]使用GD32内嵌IIC控制器

1 综述

采用GD32内嵌IIC控制器,以中断方式,快速实现的IIC通信,速度400kbps。

IIC通信,诸如常用的STM32,多是用IO口模拟IIC通信的。曾经以STM32内嵌IIC控制器,以中断方式,快速实现了IIC通信。实现的关键是1字节的读取操作。

作为后起之秀,GD对IIC控制器逻辑改进了很多,已经很好用。

美中不足,1字节的读取,却多操作了1个字节,始终没有找到最合适的STOP发出时刻,好在不影响使用。即:1字节的读取,需要多作1字节的无用功。该问题,在STM32中,已经完美解决。

2 关键环节

  1. 3个以上多字节读取,需要在倒数第2字节中断接收后时,及时准备发出NCK和STOP位;
  2. 2个以内字节读取,需要在START中断时,及时准备发出NCK位;
  3. 2个字节读取,需要在收到第1个数据中断未读取数据时,恰到好处的发出STOP位;
  4. 2个字节读取,还需要在START发出前,置位允许ACKEN决定下一字节发送ACK位;
  5. 1个字节读取,还需要在START中断时,及时准备发出STOP位;
  6. 2个以上字节读取,倒数最后1个字节中断时,连续读2次,才能把最后1个数据及时获取到。

3 相关代码

3.1 读取操作

3.2 中断处理代码

?

4 测试代码

这里以TOF传感器VL530L0X寄存器读取为例说明,先发寄存器地址,再读取1~4字节内容。

4.1 函数封装

4.2 测试代码

?

5 测试波形图

5.1 四字节读取

5.2 三字节读取

?

5.3 二字节读取

?

5.4 一字节读取

?

?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-26 12:14:17  更:2021-07-26 12:15:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/19 12:08:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码