stm32 i2c初试 OLED

stm32 i2c初试 OLED

1.实验环境

1.野火STM32指南者(STM32F103VET6)
2.AHT20传感器
3.OLED屏幕0.96寸(地址
并非广告只是说明使用哪家产品

2.环境搭建
下载相应资料(下载地址
在这里插入图片描述
打开相应工程
在这里插入图片描述
除了 main.c 、 oled.c 、 oled.h 、 bmp.h 、 oledfont.h ,其他都是和平台相关的代码。
oledfont.h 、 bmp.h 都存放图片和汉字取模后的点阵数组。
oled.h 存放的是和 OLED 屏相关的一些参数,包括引脚定义。
oled.c 存放的是和 OLED 屏操作相关的一些函数,包括 IIC 的读写, OLED 屏数据写入等
main.c 则是主程序操作了。

一些函数介绍

//显示汉字,x,y,为坐标,no为字体大小。
void OLED_ShowCHinese(u8 x,u8 y,u8 no);

//显示一个字符,x,y,为坐标,Char_Size为字体大小,chr为要显示的字符。
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size);

//对OLED_ShowChar的二次封装,显示一个字符串,x,y,为坐标,Char_Size为字体大小,chr为要显示的字符串。
void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 Char_Size);

//显示一个数字,x,y,为坐标,size2为字体大小,len为长度,num为数字
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2)

3.显示字符

获取想要显示的字模,设置如下;
在这里插入图片描述
将生成的数据文件添加至oledfont.h相应的数组中
在这里插入图片描述
烧录程序。

接线
在这里插入图片描述
效果图
在这里插入图片描述

4.显示传感器温度

5.滚屏
在main.c中添加

	  OLED_WR_Byte(0x2e,OLED_CMD);;//关滚动
	  OLED_WR_Byte(0x2A,OLED_CMD);//29向右,2a向左
	  OLED_WR_Byte(0x00,OLED_CMD);//A:空字节
	  OLED_WR_Byte(0x00,OLED_CMD);//B:水平起始页
	  OLED_WR_Byte(0x00,OLED_CMD);//C:水平滚动速度
	  OLED_WR_Byte(0x07,OLED_CMD);//D:水平结束页
	  OLED_WR_Byte(0x01,OLED_CMD);//E:每次垂直滚动位移
	  OLED_WR_Byte(0x2f,OLED_CMD);//开滚动  

在oled.c中添加

void roll(void)
{
        OLED_WR_Byte(0x2e,OLED_CMD);       
        OLED_WR_Byte(0x29,OLED_CMD);       
        OLED_WR_Byte(0x00,OLED_CMD);       
        OLED_WR_Byte(0x00,OLED_CMD);        
        OLED_WR_Byte(0x07,OLED_CMD);        
        OLED_WR_Byte(0x07,OLED_CMD);        
        OLED_WR_Byte(0x01,OLED_CMD);       
        OLED_WR_Byte(0x2F,OLED_CMD); 
}      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值