这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 活动中心» 板卡试用» 【换取手持数字示波器】STM32U083移植TouchGFX

共5条 1/1 1 跳转至

【换取手持数字示波器】STM32U083移植TouchGFX

菜鸟
2024-04-03 21:04:24 打赏

【目的】

使用最新出的STM32U083,使用sh1106作为OLED显示屏,运行stm32的图形库toucGFX

【原理图】

sh1106与ssd1306驱动相同,定义开发板与OLED的接线顺序如下:

DO-----------SPI2_SCK->PB13

DI------------SPI2_MOSI->PB15

RES----------PB11

DC-----------PB1

CS-----------PB2

【开发步聚】

本次的移植分两步,一是驱动OLED屏,二是使用touxGFXdesiger设计helloworld为展示成果。

1、使用stm32cubeIDE创建基于stm32u083的基础工程。

image.png

2、打开rcc的外部时钟,配置主时钟为48MHz

image.png

3、开启spi2,定义IO为PB13\PB14\PB15为spi2的输出IO。同时将三个IO修改为输出速度为VeryHigh

image.png

配置spi如下,同时打开DMA传输、DMA中断。

image.png

image.png

4、把PB11、PB1、PB2的IO配置为输出模式,并定义标签为OLED_RST、OLED_DC、OLED_CS。

image.png


5、打开CRC,因为使用touchGFX必须开启它。

6、开启TIM7,配置如下:

image.png

TIM7主要是为touchGFX提供心跳包。

7、开启x-cube-touchGFX。配置为黑白模式,并指定分辨率为128*64像素:

image.png

最后生成MDK工程,并打开。

同时在工程目录touchGFX下面打开TouchGFX,在屏上添加hello world的texArea:

image.png

点击生成工程代码。再回到mdk工程中。

【用户代码编写】

1、拷贝在其他stm32的工程中的sh1106的代码,到工程目录Core/Src中

image.png

同时把头文件,以及字库头文件添加到inc文件夹中。

2、添加oled到工程组中

image.png

3、修改TouchGFXHAL.cpp文件。

1)添加ssd1306.h到工程中

image.png

2)在函数flushFrameBuffer中添加向ssd1306写入图像的代码:

const unsigned char* bitmap = (const unsigned char*) getClientFrameBuffer(); SSD1306_Fill(0x00); SSD1306_DrawBitmap(0, 0, bitmap, 128, 64, 0x01); SSD1306_UpdateScreen();

image.png

3)在最后添加:图像同步函数,以方便C调用:

extern "C" void touchgfxSignalVSync(void) { /* VSync has occurred, increment TouchGFX engine vsync counter */ touchgfx::HAL::getInstance()->vSync(); /* VSync has occurred, signal TouchGFX engine */ touchgfx::OSWrappers::signalVSync(); }

image.png

4、在main.c中添加TIM7的回调函数:

extern void touchgfxSignalVSync(void); void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if (htim->Instance == TIM7) { touchgfxSignalVSync(); } }

5、在main.c中添加ssd1306.h的文件引用,并添加oled的初始init函数。

到此所有移植就完成了,下载到开发板效果如果:

d5fcafd3e5925b1d571dcd6afd070d4.jpg




关键词: STM32U0 OLED

高工
2024-04-04 07:52:48 打赏
2楼

文章被吞了


高工
2024-04-05 22:27:32 打赏
3楼

真棒 真棒


高工
2024-04-05 22:27:53 打赏
4楼

感觉 TouchGFX也挺简单的啊


高工
2024-04-06 11:29:31 打赏
5楼

真棒 真棒


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]