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

共5条 1/1 1 跳转至

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

助工
2024-04-03 21:04:24   被打赏 40 分(兑奖)     打赏

【目的】

使用最新出的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 跳转至

回复

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