OLED屏显文字滚动

实验一

1、解释什么是“软件I2C”和“硬件I2C”
硬件 I2C:对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的,效率远高于软件模拟的I2C;一般也较为稳定,但是程序较为繁琐。硬件(固件)I2C是直接调用内部寄存器进行配置;而软件I2C是没有寄存器这个概念的。
软件 I2C:一般是用GPIO管脚,用软件控制管脚状态以模拟I2C通信波形,不受管脚限制,接口比较灵活。

主要对比:
1)硬件IIC用法比较复杂,模拟IIC的流程更清楚一些。
2)硬件IIC速度比模拟快,并且可以用DMA。
3)模拟IIC可以在任何管脚上,而硬件只能在固定管脚上。

软件i2c是程序员使用程序控制SCL、SDA线输出高低电平,模拟i2c协议的时序。一般较硬件i2c稳定,但是程序较为繁琐,不难。
硬件i2c是只要调用i2c的控制函数即可,不用直接的去控制SCL,SDA高低电平的输出。但是有些单片机的硬件i2c不太稳定,调试问题较多。

2、AHT20温湿度传感器的数据采集,并将采集的温度-湿度值通过串口输出。
(1)下载代码
代码地址:https://github.com/Sunlight-Dazzling/stm32-AHT20/tree/master
在这里插入图片描述
(2)打开工程文件
在这里插入图片描述
(3)编译代码
在这里插入图片描述
(4)硬件连接
AHT20的SCL,GND,SDA,VCC分别对应接stm32f103核心板的B6,GND,B7,5V
USB转TTL模块的GND,3V3,RXD,TXD分别对应接stm32f103核心板的GND,3v3,A9,A10
实物连接:
在这里插入图片描述
(5)文件烧录
把产生的hex文件烧录到stm32中

(6)串口调试
打开串口调试助手,最终结果如下图所示
在这里插入图片描述

实验二 OLED屏显

1、下载代码
代码地址:https://pan.baidu.com/s/1gMCljDEFuVtfhPN38MX9dA
提取代码:bphx
2、打开工程文件
在这里插入图片描述
(3)字库取模
把所取的中文点阵编码,存放到oledfont.h中
取模
在这里插入图片描述
在这里插入图片描述

字模代码

{
   "唐",0x00,0x00,0x3F,0x22,0x2A,0x2A,0x2A,0xAA,0x7F,0x2A,0x2A,0x2A,0x2F,0x22,0x22,0x00,0x02,0x0C,0xF0,0x00,0xBF,0xA2,0xA2,0xA2,0xE2,0xA2,0xA2,0xA2,0xBF,0x00,0x00,0x00,/*"唐",0*/
"珲",0x21,0x21,0x3F,0x21,0x21,0x10,0x64,0x44,0x47,0x5C,0x45,0x44,0x44,0x54,0x60,0x00,0x08,0x0C,0xF8,0x10,0x10,0x00,0x08,0xC8,0x48,0x48,0xFF,0x48,0x48,0x48,0x08,0x00},/*"珲",1*/

4、修改代码
在这里插入图片描述

test.c函数

void TEST_MainPage
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32控制OLED屏幕显示时,可以使用以下函数来实现: 1. `OLED_Init()`函数用于初始化OLED屏幕。 2. `OLED_Clear()`函数用于清除屏幕上的内容。 3. `OLED_ShowChar()`函数用于在指定位置显示一个字符。 4. `OLED_ShowNum()`函数用于在指定位置显示一个数字。 5. `OLED_ShowString()`函数用于在指定位置显示一个字符串。 此外,还可以使用`OLED_DrawPoint()`函数来在指定位置绘制一个点,使用`OLED_Fill()`函数来填充一个矩形区域,使用`OLED_Refresh_Gram()`函数来刷新屏幕显示。 在控制OLED屏幕显示时,需要使用SPI接口来与屏幕进行通信。可以使用`OLED_WR_Byte()`函数来向SSD1306写入一个字节的数据或命令。其中,`dat`参数表示要写入的数据,`cmd`参数表示数据或命令的标志,0表示命令,1表示数据。 综上所述,你可以使用以上提到的函数来控制STM32控制OLED屏幕的显示。 #### 引用[.reference_title] - *1* [使用STM32实现OLED屏显](https://blog.csdn.net/qq_52362275/article/details/127573490)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [基于stm32oled显示](https://blog.csdn.net/ababababa23/article/details/126438483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值