本文来源电子发烧友社区,作者:少年阿炳, 帖子地址:https://bbs.elecfans.com/jishu_2246563_1_1.html 本次内容包括 1.使用模拟IIC点亮OLED屏幕,并读取DHT11的温湿度显示在OLED屏上 2.硬件IIC非中断的使用 首先是模拟IIC的使用 模拟IIC就是使用单片机控制IO口输出高低电平模拟实际IIC开始,结束,数据发送等的相应规则达到点亮OLED的目的。所以最重要的就是如何配置IO口已经输出高低电平。 将需要的IO口配置成输出模式 使用GPIO_Write()函数输出高/低电平
之后就是模拟开始信号,结束信号,响应信号,数据发送,命令发送等。我这里是将现成可用的STM32代码移植过来,然后做了对应的修改。详细可以查看附件1. 特别说明:我这里的响应信号也是模拟的,并不是真读取OLED的返回。 DHT11温湿度的读取 DHT11的数据是通过单总线实现的。数据读取信号以及返回的温湿度值都是通过一根数据线完成,因此需要对同一个IO口先进行输出配置,然后进行输入配置。
硬件IIC使用的注意事项 在用模拟IIC点亮OLED后,我寻思着使用以下CSM32自带的硬件IIC点亮OLED, 使用的是非中断模式,启动硬件IIC使用的I2C_Init_case1()函数。
特别说明一下从机地址的配置形式,因为此线使用模式IIC时从机地址都是0x78,所以到了硬件IIC,我想当然配置成了0x78,这样是错误的。 从机地址的bit0位需要根据READ或者WRITE分别配置成1/0 一开始我将地址配置成0x78后,通过逻辑分析仪读取到的SDA变成了0xF0(11110000),也就是0x78(01111000)左移了一位,也就是说CSM32的硬件IIC将我的地址左移了一位,然后在bit0插入了一位0。所以在初始化配置时,需要将从机地址配置成0x3C,这样才能确保从机地址正确。 之后通过I2C_Write函数写数据。
I2C_Write(uint8_t addr,uint8_t data) addr参数,实际代表的是数据命令,对应的就是模拟IIC发送时,中间的那位数据, 0x00,写入命令。0x40,写入数据。
完成以上修改后,就能将之前模拟IIC修改为硬件IIC。 下面图片中逻辑分析仪的时序图供大家参考,截图框内是错误配置的从机地址。 因为我使用的逻辑分析仪就20几块,显示的从机地址好像不正确,但是波形还是准确的。 |
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
南京中科微
+关注
关注
0文章
60浏览量
747 -
CSM32RV20
+关注
关注
0文章
40浏览量
220
发布评论请先 登录
相关推荐
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
ME32G070 支持硬件 I2C,这里偷个懒,不想使用繁琐的跳线,直接在开发板上随意插入 OLED 显示屏的引脚,如下:
直接插上 OLED
发表于 12-19 00:25
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】IIC 通信的 OLED 显示
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】IIC 通信的 OLED 显示
简介
IIC
发表于 11-07 02:30
关于Air780E:使用文件系统存储温湿度数据怎么操作?
伙伴们,今天我们来学习合宙低功耗4G模组Air780E快速入门之使用文件系统存储温湿度数据。 一、 编写脚本 1.1 硬件及资料准备 780E开发板 LuatOS-Air780E-文件系统
【RA-Eco-RA0E1-32PIN-V1.0开发板试用】sht30温湿度传感器
这一章节,继续探究RA0E1的硬件iic外设。来驱动SHT30温湿度传感器,该款温湿度传感器具有高精度稳定性,可以精确到0.125度的分辨率,特别适合用来做环境的监测。
发表于 10-14 23:40
【BearPi-Pico H3863星闪开发板体验连载】GPIO 控制与 IIC OLED 显示
杜邦线连接开发板与 OLED 显示屏,接线方式如下
TXD -----> SDA
RXD -----> SCL
3V3 ------> VCC
GND -----> GND
发表于 10-03 12:47
Arduino Nano 和 NodeMCU ESP8266 读取 DHT11 环境温湿度数据及 OLED显示
Arduino Nano 和 NodeMCU ESP8266 读取 DHT11 环境温湿度数据及 OLED显示
求助,请问ESP32-S2-DevKitM-1开发板的IIC引脚是哪些?
购买的ESP32-S2-DevKitM-1,说是有两路IIC,可是到处找的资料,都没说是哪些引脚,使用Arduino里的Adafruit_SSD1306或者U8g2库对0.96吋OLED
发表于 07-01 07:03
【GD32F303红枫派开发板使用手册】第二十二讲 IIC-IIC OLED显示实验
通过本实验主要学习以下内容:
•OLED驱动原理
•IIC驱动OLED显示操作
22.2 实验原理
OLED模块的驱动芯片为SSD1306,
如何用stm32实现将IIC温湿度传感线采集到的数据转发到485的设备。
各位前辈,小弟刚毕业。公司要求实现这么一个项目,把iic协议的sht30温湿度传感器线采集到的数据转在485通讯的显示屏上打印出来,小弟毫无头绪,网上资料不多,望指点。
发表于 06-21 09:40
项目分享|基于ELF 1开发板的MQTT远程温湿度监测系统
今天非常荣幸向各位小伙伴详细展示一个由共创社成员完成的MQTT远程温湿度监控系统项目。该项目借助ELF1开发板作为核心技术支撑,成功实现了对各类环境空间中温湿度数据的实时、远程、稳定监测。该系统不仅
基于51单片机的SHT11温湿度监测系统,LCD1602显示,上下限按键设置
LCD1602显示模块实时显示温湿度数据,同时可以通过按键模块对温湿度报警上、下限值进行设定。
当SHT11读取的
发表于 03-26 17:44
stm32f407vet6驱动0.96寸oled,显示屏无法显示怎么解决?
stm32f407vet6驱动0.96寸oled——iic协议代码无报错时钟正确显示屏无法显示
发表于 03-14 06:49
【原创】DHT11传感器温湿度监测系统毕设,论文、代码、原理图和仿真介绍
使用。但从成本考虑,DHT11价格便宜,其应用更为广泛。
系统概述
本文设计了一种基于51单片机和DHT11传感器的温湿度监测系统,能够实现对当前环境温湿度数据的采集、处理、显示和报警等功能。
系统
发表于 03-13 00:53
【外设移植】0.96寸IIC单色屏+Ai-M61开发板
本作品由安信可社区用户 沈夜 制作 01外设介绍 先来介绍下0.96寸OLED显示屏(驱动芯片:SSD1306 / SSD1315) [color=rgba(0, 0, 0, 0.87
评论