GPIO的输入、输出总结一、输入模式1、GPIO_Mode_AIN(==模拟输入==)2、GPIO_Mode_IN_FLOATING(==浮空输入==)3、GPIO_Mode_IPD(==下拉输入==)、GPIOGPIO_Mode_IPU(==上拉输入==)二、输出模式1、推挽输出2、 开漏输出3、推挽和开漏输出的区别: 一、输入模式1、GPIO_Mode_AIN(模拟输入)GPIO模拟输入用
介绍本项目是利用GPIO模拟I2C的从机网上常见的是模拟I2C主机本项目是作为一个两个单片机之间低速通信的用法从机功能实现I2C从机端读写寄存器编程思路I2C的从机实现比起主机来麻烦一些因为SCL的时序是由主机发送,从机需要响应注意:整个过程不考虑应答码思路是检测SCL与SDA的边沿(上升沿和下降沿)中断在SDA的边沿检测SCL的电平,如果SCL为高电平,则根据协议开始(SDA上升沿),或结束(S
转载 2024-10-12 12:12:43
1258阅读
在实际开发中,有不少小型设备需要与其他设备进行通信,而 I2C(Inter-Integrated Circuit)就是一种常用的通信协议。在一些树莓派等单片机环境中,可能没有专门的 I2C 模块,这时我们可以通过 Python GPIO 模拟 I2C 进行设备间的通信。以下是对这一过程的详细记录。 ## 备份策略 在实施模拟 I2C 通信之前,确保你的 GPIO 配置及相关环境都是安全的,备份
原创 6月前
14阅读
一丶简介平台:msm8953 (android)环境: ubuntu-16.04二丶步骤① 修改设备树,添加pwm节点:位置:kernel/msm-3.18/arch/arm64/boot/dts/qcom/msm8953-mtp.dtsi在soc中添加节点,如下:gpio-demo { compatible = "gpio-demo"; gpios = &lt
转载 2024-03-21 10:20:30
461阅读
本次实验I2C总线传输I2C分为硬件I2C和模拟I2C。其中硬件I2C是单独的I2C硬件驱动,有固定的引脚,和一般芯片驱动使用一样需要操作其寄存器进行数据收发而不用知道I2C的协议内容,灵活度较低但效率高;而模拟I2C是根据I2C协议、时序图,自定义引脚按照协议进行传输,较为灵活但效率较低。使用HAL库+Proteus进行硬件I2C仿真时失败,所以选择更加普适的模拟I2C。 工具  软件
先说说废话,第一篇博客文章,文中有不足之处或者有错误的地方还望指正。IIC 总线(AT24C02)一、先了解了解IIC总线协议基本知识1.IIC协议是二线制,信号线包含SDA和SCL,且信号线是双向的,开路结构,需要通过上拉电阻到VCC,具体的电阻值影响的是信号反应速度和驱动能力。2.IC传输时,要保持SCL为高电平不变,SDA保持稳定;IIC开始的条件:SCL保持高电平,SDA从高电平跳跃到低电
文章目录前言一、基础知识快速理解1.1 理解CAN标识符:1.2 过滤器的工作原理:1.3 如何配置过滤器:二、过滤器模式的选择(监听多个ID)2.1 使用掩码模式多个过滤器匹配多标准ID:2.2 使用掩码来匹配多个ID:(待写)2.3 使用列表模式来匹配多个标准ID:三、相关代码测试3.1 测试列表模式__标准ID3.2 测试掩码模式__标准ID3.3 测试回调函数接收到的ID总结 前言过滤器
在之前的标准库中,STM32的硬件IIC非常复杂,更重要的是它并不稳定,所以都不推荐使用。但是在我们的HAL库中,对硬件IIC做了全新的优化,使得之前软件IIC几百行代码,在HAL库中,只需要寥寥几行就可以完成 那么这篇文章将带你去感受下它的优异之处。本文将详细地讲解I2C协议,并基于I2C 来读写EEPROM模块以达到练习的目的通过本篇博客您将学到:I2C的基本原理STM32CubeM
转载 2024-07-01 16:36:09
185阅读
I2C简介I2C 通讯协议 (Inter - Integrated Circuit) 是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单, 可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多 个集成电路 (IC) 间的通讯。软件模拟PK硬件虽然说STM32是有I2C集成芯片的,但是目前来说是存在很大问题,多用几次就能明显的感觉出来,很容易出现玄学
 1.1 前言在使用I2C通信时,一般会用到软件模拟I2C。目前网络上能搜索到的软件模拟I2C一般都是模拟I2C主机,很少有模拟I2C从机的例程。由于I2C主机在进行数据收发时,有明确的可预见性,也就是主机明确知道什么时候要进行数据的收发操作,而且I2C的同步时钟信号也是由主机产生的,所以实现起来相对来说比较简单。而I2C从机的通信受制于主机,即什么时候需要进行数据的收发都是由主机发起的
STM32 GPIO模拟多路I2C总线中阶操作I2C/IIC/2-WIRE(相同的总线不同的命名方式)访问时序的实现可以通过硬件功能模块的配置控制实现,也可以通过GPIO模拟时序实现。多路I2C设备的连接,如果每个I2C设备的地址不同,可以通过一路I2C总线连接各个设备,以发送协议的地址激活相应的I2C设备进行响应。对于I2C设备地址相同的多个设备,则需要用多路并行I2C进行访问,通常硬件功能模块
0、系列目录STM32 软件模拟IICSTM32 使用DMP库处理MPU6050数据STM32 MPU6050与匿名上位机通讯(V2.6版)1、IIC通讯过程SCL和SDA在空闲时候均为高电平。 MCU接收到通讯命令后,首先广播从机地址(例:MPU6050地址为0x68,0x69)+读/写操作,从机收到后产生应答,随后开始SCL强制拉低,开始传送一字节数据 ①收到应答信号后,继续传送第二个字节……
转载 2024-07-08 09:57:12
990阅读
文章目录一、Java环境准备(1)下载JDK(2)安装JDK环境二、安装STM32CubeMX(1)STM32CubeMX的下载(2)STM32CubeMX的安装三、使用STM32CubeMX生成代码(1)工程创建(2)配置外设(3)配置时钟(4)配置GPIO(5)工程设置四、使用Keil5编译(1)修改函数(2)编译五、运行效果六、Keil5仿真观察管脚时序波形(1)调整配置(2)调试并观测波
1、开发环境安装包获取小熊派开源社区已为大家整理了常用开发工具的下载地址,包括嵌入式硬件开发、嵌入式软件开发、应用软件开发等工具,可在公众号的对话框中获取下载地址。2、STM32CubeMX介绍STM32CubeMX是配置和初始化C代码生成的图形化工具(STM32 configurationand initialization C code generation),如下图所示。3、安装Java环境
文章目录前言I2C控制器设计思路源码分析main.ci2c.ceeprom.c运行结果源码 前言使用硬件I2C是,不用编写协议时序细节,通过寄存器配置好MCU的I²C控制器,I²C控制器便可控制引脚自动输出I²C时序。这里还是基于STM32F103_MIN开发板,以读写EEPROM(ATC2402)为例,进行回顾和分析。I2C控制器STM32F103系列的I2C控制器,可作为通信主机或从机,因此
cubemx快速使用串口前言一、使用cubemx进行串口基本配置二、说明三、实验内容1.串口打印2.串口中断实现回显3.串口接收选择回显内容 前言助力于快速使用串口功能,如果想了解串口协议等知识点等请自行搜索, 这里注明串口下功能实现常用的fputc、字符串发送函数、fgetc函数等函数写法。 实验了三个例子来展示printf函数、串口中断使用、串口基本使用。一、使用cubemx进行串口基本配置
转载 2024-03-31 23:10:24
84阅读
stm32cubemx实现模拟IIC https://blog.csdn.net/qq_45467083/article/details/109433847上面的代码只是iic的基础功能,这里增加了对一些地址读写寄存器的函数封装。#ifndef __IOI2C_H#define __IOI2C_H#include "main.h"typedef uint8_t u8;typedef uint32_t u32;#define SDA_GROUP GPIOB#define SDA_PIN
原创 2021-06-08 14:40:57
528阅读
一直对stm32的硬件iic敬而远之,好像说是有问题的,就一直用的模拟iic实现,今天用sht30试了一下,发现基于cubemx来配置iic还挺方便的。现做如下记录首先是硬件平台:stm32f103vet6指南者先总结一下步骤cubemx配置->SHT30_Init(选择模式)->reset->利用Init的返回值判断是否成功->读取->数据拼接涉及到的自己写的函数有
一、MPU6050中的IIC时序 1.1 START和STOP SDA和SCL在高电平时,SDA拉低表示START。SCL拉低,表示可以传输数据。SDA和SCL在低电平时,SDA拉高表示STOP。 SCL拉高,表示传输数据结束。1. /****************************************** 2. *函数原型: void IIC_Start(void) 3
转载 7月前
40阅读
转载:http://blog.chinaunix.net/uid-26833883-id-3823530.html 一、硬件连线 先来看看LM75硬件的上的连线: 其中I2C_SDA0是数据线,I2C_SCL0是时钟线,它们分别接到s5pc100的GPD3和GPD4,如下图所示 在模拟IIC的时候,
转载 2015-07-06 15:21:00
86阅读
  • 1
  • 2
  • 3
  • 4
  • 5