最近RT-Thread举办了一个RTT全连接大赛,也是借着这次机会,申请了一块RTT的STM32H750为主控芯片的RTT核心板,做工还是很漂亮的,老规矩,话不多说,上干货!
l1i15xrg1p06405165019.jpg
新建工程就不多说了,有问题的话,加我好友,小飞哥手把手教,哈哈,工程建立后
1、double click 方框中的配置选项,进入工具箱界面,点击ADD 按钮,在弹出的RT-Thread软件包界面搜索框输入u8g2,点击添加,软件包已添加进来
mzofayjelig6405165119.png
iux3h3bvpss6405165219.png
vb5u5x5da5l6405165319.png
xdgksrmf2yw6405165420.png
2、依然double clicku8g2软件包图标,或者右击鼠标,进入配置见面,由于我的屏幕是IIC接口的,这里选择的是软件模拟IIC,版本选择方框里面的,也是默认的选项。
gtr3bj1u5db6405165520.png
3、完成后,点击保存,等待一会,软件包就添加进工程了,接下来当然是build工程啦,RT-Studio保持了一贯作风。CTRL+B,或者项目下面的构建项目选项,编译完成,也是非常不习惯的无errors,无warnings,嘿嘿。
4ndcvwmw3t36405165620.png
eauqoumf2y56405165720.png
4、迫不及待的想要下载固件了,下他,完成后,控制台输出ART-PI的BOOT界面,很大的LOGO,怕别人看不到,哈哈,输入help后,会出现一些常用指令,可以看到,我们的显示屏驱动软件包已经添加进来啦
sj5uxdqinnp6405165820.png
5、接下来当然是根据需要修改我们连接的引脚啦,我用的是PH11-SCL,PH12-SDA引脚,引脚的选择随意啦,但是要注意IIC需要有上拉电阻,一定要注意,至于为什么有上拉电阻,网上应该有很多说明了呀,大家就百度百度咯
2no54f0qjhb6405165920.png
这里要注意在drv_GPIO.c文件里面,或者别处(头文件)定义RT_USING_PIN,否则会报错的哦,一定要注意!!!
g40sz5t3vne6405166020.png
修改IIC接口PIN引脚为P11,PH12
yiew2cmyxcw6405166120.png
6、至此,准备工作就做完啦,接下来,就进入最终的显示阶段啦,先来修改写一写简单的问候语,哈哈,欢迎伙伴们加入Embeded 小飞哥的大party,第一处可以定义我们要写的字体的size,有很多哦,这里选择的是10*20的size,修改完成后,编译-下载一条龙咯
hdnxkpz5ref6405166220.png
7、老规矩,help,会告诉你想要的一切,在下面的msh/>后面输入,我们的显示屏接口,如红框里面的,太长啦,复制粘贴就可以啦
yynyziys0506405166320.png
运行之后,我们期待的显示内容就出来啦,千呼万唤始出来,犹抱琵琶半遮面啊,哈哈哈哦,下面是视频。
8、我想自己定义一个文件,不想和软件包的内容放一起,自己看起来舒服,好,那接下来我们编写自己的OLED显示线程,说白了很简单,自己定义一个文件,就可以了,我们放在application文件夹中,新建文件OLED_Display.cpp文件,写入下面内容就可以啦,就可以做做自己的显示处理逻辑了
h33nwkf45rq6405166420.png
#include
#include
#include
#include [U]
#include
#include "drv_common.h"
#include
extern "C"
{
//#include
}
extern "C"
{
}
#define OLED_I2C_PIN_SCL GET_PIN(H, 11) // 22 // PH11
#define OLED_I2C_PIN_SDA GET_PIN(H, 12) // 23 // PH12
static U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,\
/* clock=*/ OLED_I2C_PIN_SCL,\
/* data=*/ OLED_I2C_PIN_SDA,\
/* reset=*/ U8X8_PIN_NONE);
void oled_display()
{
u8g2.begin();
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_logisoso32_tf);
u8g2.setCursor(48+3, 42);
u8g2.print("Hi~"); // requires enableUTF8Print()
u8g2.setFont(u8g2_font_6x13_tr); // choose a suitable font
u8g2.drawStr(30, 60, "Embeded FlyGe"); // write something to the internal memory
u8g2.sendBuffer();
rt_thread_mdelay(2000);
while(1)
{
u8g2.setFont(u8g2_font_10x20_tr); // choose a suitable font
u8g2.drawStr(15, 40, "Hello Guys"); // write something to the internal memory
//u8g2.drawStr(30, 18, "Embeded FlyBrother"); // write something to the internal memory
u8g2.sendBuffer(); // transfer internal memory to the display
rt_thread_mdelay(1000);
u8g2.clearBuffer();
u8g2.drawStr(15, 40, "Welcome to"); // write something to the internal memory
//u8g2.drawStr(30, 18, "Embeded FlyBrother"); // write something to the internal memory
u8g2.sendBuffer();
rt_thread_mdelay(1000);
u8g2.clearBuffer();
u8g2.drawStr(0, 30, "Join Embeded"); // write something to the internal memory
//u8g2.drawStr(30, 18, "Embeded FlyBrother"); // write something to the internal memory
u8g2.sendBuffer();
u8g2.drawStr(0, 50, " Party!!!");
u8g2.sendBuffer();
rt_thread_mdelay(1000);
u8g2.clearBuffer();
}
}
MSH_CMD_EXPORT(oled_display, oled start);
blco4sfr4ou6405166520.png
9、我这里还是刚才的显示内容,然后循环显示,添加之后,编译,下载,就看到了我们新添加的接口函数名称了,输入它,运行它,干!!上视频
就写到这里啦,啰啰嗦嗦一大堆,哈哈。
欢迎大家关注 Embeded小飞哥 ,我是小飞哥,让我快点遇到优秀的你,然后一起变得更加优秀,加油! |