关于模拟I2C,任意接口都可模拟(未全部测试,可能存在特殊情况)。

关于SDA_IN与SDAOUT:如下定义:

举例:
#define MPU_SDA_IN() {GPIOA->CRL&=0XFFFF0FFF;GPIOA->CRL|=8<<12;}
#define MPU_SDA_OUT() {GPIOA->CRL&=0XFFFF0FFF;GPIOA->CRL|=3<<12;}
原因:可选A\B\C\D\E任意接口引脚,低8位接口引脚(即0-7)选用CRL,高8位接口(即8-15)选用CRH;
选用3位时,查找该3位置于CRL/CRH寄存器哪一处,该n位占寄存器中4个位(共32个位,4x8=32),刚好
对应上面的0xFFFFFFFF这8位,当选第3位(0开始)时,即为0xFFFF0FFF的第4位(下图中,红字1234即为第0位);

                  图CRL寄存器

上面的左移前面的8和3为默认,后面的12查看CRL寄存器的MODE3开始于12位,即用12(见上图)。其他类似。
具体原理细看CRL/CRH寄存器。(未学习STM32寄存器,具体原理未知,仅为个人测试通过,并不包含具体原因及细节。)

STM32任意引脚模拟IIC的更多相关文章

  1. 【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)(转载)

     版权声明:本文为博主原创文章,允许转载,但希望标注转载来源. https://blog.csdn.net/qq_38410730/article/details/80312357 IIC的基本介绍 ...

  2. stm32软件模拟IIC读取PX4FLOW光流传感器数据

    这段时间在做全国光电设计大赛,用到了px4的px4flow光流传感器,用软件模拟iic读取数据不定期会导致px4flow死机,查了资料和光流的源码,发现这个光流用了stm32的硬件iic,所以对软件模 ...

  3. STM32 软件模拟 IIC 代码,标准库、HAL库可用

    #ifndef _IIC_H #define _IIC_H #include "stdio.h" #include "stm32f1xx_hal.h" /* 定 ...

  4. STM32学习笔记:IIC通信协议详解(附带软件模拟源码)

    什么是IIC(I2C)? IIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司设计出来的一种简单.双向.二线制.同步串行总线.它是一种多向控制总 ...

  5. lpc1788IO口模拟IIC

    #ifndef __MYIIC_H_ #define __MYIIC_H_ #include "common.h" #include "delay.h" #in ...

  6. STM32F10X -- 模拟IIC程序

    听说STM32的IIC硬件做的很鸡肋,所以在这里通过模拟的方式实现IIC协议.此程序能成功对AT24C02操作. 程序中的带参数宏 IIC_DELAY(time)的功能是延时time us,在实际中具 ...

  7. GPIO软件模拟IIC时序

    一.MPU6050中的IIC时序 1.1 START和STOP SDA和SCL在高电平时,SDA拉低表示START.SCL拉低,表示可以传输数据. SDA和SCL在低电平时,SDA拉高表示STOP. ...

  8. 模拟IIC总线多设备挂载(12864OLED屏幕+GY30光照传感器)

    最终效果展示 OLED屏幕和GY30光照传感器(BH1750FVI)都连接在一个IIC(I2C)总线上,所以只需要接4根线即可.获取到的光照强度可以在OLED上实时显示并通过串口打印.IIC是IO模拟 ...

  9. C51—模拟IIC总线实现EEPROM存取数据

    a - 什么是IIC总线 -什么是EEPROM -IIC总线的通信格式 模块化设计注解 整体代码 - 什么是IIC总线 IIC总线是同步通信的一种特殊形式,具有接线口少.控制简单.器件封装形式小.通信 ...

  10. GPIO模拟IIC接口信号质量分析

    信号质量有问题的波形001: 信号质量有问题的波形002: 从上图可以看出,GPIO口模拟的I2C接口,电平都存在半高的情况. 因为I2C的接口是通过GPIO模拟实现的,该时钟信号线SCL内部默认为下 ...

随机推荐

  1. 第14周 预习、实验与作业:Java数据库编程

    回想"流与文件"章节,如何将一组对象存储到文件中?主要步骤是什么. 把数据抽象为流,用字节输入输出流(InputStream,OutputStream)进行读写. 主要步骤为:创建 ...

  2. JavaScript的原型和原型链

    说到JavaScript的原型和原型链,相关文章已有不少,但是大都晦涩难懂.本文将换一个角度出发,先理解原型和原型链是什么,有什么作用,再去分析那些令人头疼的关系. 一.引用类型皆为对象 原型和原型链 ...

  3. Spark log4j 配置

    Spark的ml包提供了非常好用的调参功能,通过ParamGridBuilder构建待选参数(如:logistic regression的regParam),然后数据量小的时候可以用CrossVali ...

  4. https原理(六)系统分析

    先解决此前的问题: 1 http原理(三)双向实践(curl) need时java 客户端可访问,但没客户端证书:want时有 后来发现,没有给truststore,猜测为,当springboot读到 ...

  5. Mogdb / opengauss 用户密码错误,用户被锁

    # 问题概述xxx客户新上一套opengauss数据库,在测试中程序里用户的密码配置错误,导致用户被锁# 解决方案1.跟oracle 语法一样alter user xxx account unlock ...

  6. 实践:Oracle 数据库基于 RMAN 备份至 腾讯云COS

    简介 对象存储(COS)海量容量无上限,自动沉降归档存储类型和深度归档存储类型,媲美磁带的成本,特别适合备份归档场景. 当前,越来越多客户选择备份上云:而 Oracle 备份模块实现了和 腾讯云COS ...

  7. 'umi' 不是内部或外部命令,也不是可运行的程序 或批处理文件或umi: command not found

    问题 'umi' 不是内部或外部命令,也不是可运行的程序 或批处理文件或umi: command not found 解决方法 参考链接:https://blog.csdn.net/weixin_40 ...

  8. JS学习-PromiseWorker

    PromiseWorker PromiseWorker是一个ChromeWorker,调用而不是postMessage()发送消息,而是调用post(),它返回一个Promise. PromiseWo ...

  9. js判断数据类型 && 判断是否为标准json格式

    /** * 1. js判断对象的好方法 * 2. 判断是否为json格式化数据 * * Author: shujun * Date: 2020-8-09 */ import {print} from ...

  10. JavaSE——面向对象(类与对象)

    package com.zhao.test1; public class GirlFriend { //属性 String name; int age; String gender; //行为 pub ...