1、I2C通信特征1.1、物理接口:SCL+SDA(1)SCL(serialclock):时钟线,传输CLK信号,一般是I2C主设备向从设备提供时钟的通道。(2)SDA(serialdata):数据线,通信数据都通过SDA线传输1.2、通信特征:串行、同步、非差分、低速率串行:只有一根数据线,每次传输一个bit位;同步:主设备和从设备的工作时钟频率是一样的,主设备通过SCL时钟线给从设备提供时钟频率;非差分:因为I2C通信速率不高,而且通信双方距离很近,一般是板级通信,所以使用电平信号通信;低速率:I2C一般是用在同一个板子上的2个IC之间的通信,而且用来传输的数据量不大,所以本身通信速率很低
移植后的代码仓链接:GitHub-xusiwei/harmonyos-ssd1306:SSD1306OLEDdriverforHarmonyOS功能简介:•使用HarmonyOS的IoT硬件接口•提供字符绘制相关接口,内置四种字体大小的ASCII字符;•提供图形绘制相关接口,如绘制直线、矩形、圆形等;•内置一个128x64bit内存缓冲区,支持全屏刷新(可以用来实现动画、视频播放);•针对SSD1306连续数据发送进行了优化,目前全屏刷新速率能够达到10帧每秒;•MIT许可证,可使用到产品级代码中;voidssd1306_Init(void); //初始化voidssd1306_Fill(SS
1、EEPROM简介(1)存储设备类型:ROM、RAM、PROM(可编程ROM)、EPROM(可擦除ROM)、EEPROM(电可擦除ROM)。(2)为什么需要EEPROM?某些数据内容我们需要掉电不丢失且在程序运行中可以修改这些数据内容,这就需要用到EEPROM。(3)EEPROM和flash(闪存)的区别。EEPROM是按功能分类的一种存储设备类型;flash是存储设备生产的一种工艺。EEPROM就可能采用了flash工艺,常见的U盘也是采用flash工艺。(4)这里的EEPROM芯片具体型号是AT24C02,采用I2C时序进行读写。2、AT24C02数据手册(1)引脚介绍A0、A1、A2I
STM32模拟I2C协议获取HMC5883L电子罗盘磁角度数据(HAL)HMC5883L传感器采用霍尼韦尔各向异性磁阻(AMR)技术,应用于罗盘和三轴磁场角度检测领域,常用于水平物体转动的角度识别。HMC5883L采用I2C总线接口,2.16~3.6V供电范围,带有校准测试功能。HMC5883L的硬件连接HMC5883L的硬件连接有5个管脚,除了VCC和GND,以及I2C的SCK和SDA,还有一根INT中断线,用于向MCU报告数据可读取。HMC5883L的寄存器说明HMC5883L有如下的一些寄存器,按作用分为4种:地址00~02用于配置测试过程中的采样平均次数,数据输出率,测量配置(对应正常
前言最近在倒腾毕业设计,需要用到TOF050C,但是现有的案例都是软IIC,并且还是基于STM32F103的,笔者用的STM32F767,没有GPIO->CRH寄存器。问题来了,如果我每次都要去看寄存器手册属实费时间,这不干脆直接用硬IIC?于是乎,打开了TOF050C手册,硬啃!这手册好在它有工作流程图,能提高开发人员的理解速度。硬IIC开发代码由于是使用IIC,用定时器实现微秒级延时,这就不多说了。直接上库代码vl6180x.c:#include"vl6180x.h"#defineaddr_write0x52#defineaddr_read0x53#defineIDENTIFICATION
硬件平台: 轮趣科技F103C8T6核心板问题描述: 在复现平衡小车的过程中,尝试读取编码器数据并在OLED上显示;调用OLED的API函数后发现无论如何都不显示。问题解决: 仔细翻看,对比官方源码后,添加如下函数代码后成功显示。在mian函数初始化部分添加: JTAG_Set(JTAG_SWD_DISABLE); JTAG_Set(SWD_ENABLE);对应的宏定义:#defineJTAG_SWD_DISABLE0X02#defineSWD_ENABLE0X01#defineJTAG_SWD_ENABLE0X00 对应的函数内容:voidJTAG_Set(u8mode){
文章目录一、OLED简介二、数据手册分析2.1供电电压2.2引脚定义2.3原理图介绍2.4数据手册程序三、IIC通信3.1什么是IIC3.2IIC通信协议3.3IIC主从通信过程3.3.1写入数据3.3.2读取数据四、OLED程序设计4.1OLED初始化4.2OLED控制函数编写4.2.1OLED显示开/关程序4.2.2OLED显示一组汉字程序4.2.3OLED显示一串字符串4.2.3OLED显示图片五、OLED画点/画线一、OLED简介OLED是开发时常用的显示器件,这里介绍的是0.96寸的四针脚OLED,IIC控制。二、数据手册分析2.1供电电压供电电压在3V~5V,用3.3V即可。2.2
效果视频: 基于STM32F11的1.3寸OLED屏_驱动芯片SH1106_哔哩哔哩_bilibili该屏幕用硬件SPI进行驱动的。买屏幕时商家都会提供驱动源码,显示文字,数字等的应该都没问题。我这次主要讲如何显示视频,我的图片显示和文字数字显示是自己写的(也可以私信我获取,但是显示速度没源码快)。stm32单片机内存不够大,一个视频可能就几M了,完全放不下。视频其实也就一帧一帧照片组合而成,我们会了一张图片的显示也就会了视频的播放了(循环发送图片信息再刷新屏幕显示)。接下来我会把视频播放的步骤说一遍(工具可以到下面网盘链接下载)第一步骤:视频的图片捕获 随便下载一个比较长时间的
效果视频: 基于STM32F11的1.3寸OLED屏_驱动芯片SH1106_哔哩哔哩_bilibili该屏幕用硬件SPI进行驱动的。买屏幕时商家都会提供驱动源码,显示文字,数字等的应该都没问题。我这次主要讲如何显示视频,我的图片显示和文字数字显示是自己写的(也可以私信我获取,但是显示速度没源码快)。stm32单片机内存不够大,一个视频可能就几M了,完全放不下。视频其实也就一帧一帧照片组合而成,我们会了一张图片的显示也就会了视频的播放了(循环发送图片信息再刷新屏幕显示)。接下来我会把视频播放的步骤说一遍(工具可以到下面网盘链接下载)第一步骤:视频的图片捕获 随便下载一个比较长时间的
STM32系列模拟IIC控制0.96寸OLED方法首先说为什么要采用模拟IIC来控制OLED,采用STM32系列单片机硬件IIC时有可能出现程序死掉的情况,我遇到的情况是与程序while的使用有关(听说原因很随机)。这个时候我们可以采用两个GPIO来模拟IIC通信控制OLED屏幕。顺带说一下OLED的使用原理,IIC通信只是命令或者数据信息传输的方式,主要还是写入不同的指令信息来控制OLED,可以参考B站https://www.bilibili.com/video/BV1H34y1m7Yh/?spm_id_from=333.880.my_history.page.click&vd_source