请选择 进入手机版 | 继续访问电脑版
凡是官网购买产品,均可以获得积分,(积分可以用来下载技术资料)还可以获得精致技术支持。零知实验室可提供全套电子方案定制服务,了解详情请咨询客服。           
查看: 4372|回复: 52

STM32F103使用U8G2库

[复制链接]

378

主题

2229

帖子

1003

活跃值

管理员

Rank: 9Rank: 9Rank: 9

活跃值
1003
发表于 2018-8-1 19:03:36 | 显示全部楼层 |阅读模式
U8G2软件库在OLED、lcd等模块中使用非常的方便,支持的型号也比较多,不用自己每次写自己的显示屏驱动程序,下面介绍下载stm32上使用U8G2库进行一些图形和文字的显示。
首先要下载好U8G2的库,此处在附件中就可以下载到。下载到附件后,我们主要在u8g_arm.c中根据模板写出跟我们硬件相关的接口即可,下面以SSD1306,使用4线方式的OLED接口为例。
我们把下载的库放到我们的工程目录下,然后在keil中添加到工程,然后我们在u8g_arm.c文件中编写如下代码:
[C] 纯文本查看 复制代码
uint8_t u8g2_gpio_and_delay_stm32(U8X8_UNUSED u8x8_t *u8x8, U8X8_UNUSED uint8_t msg, U8X8_UNUSED uint8_t arg_int, U8X8_UNUSED void *arg_ptr)  
{ 
                uint8_t delay_cnt;
      
        switch(msg){  
  
        //Function which implements a delay, arg_int contains the amount of ms  
        case U8X8_MSG_GPIO_AND_DELAY_INIT:  
  
        //oled_gpio_init();
                oled_io_config();
  
        break;  
        //Function which implements a delay, arg_int contains the amount of ms  
        case U8X8_MSG_DELAY_MILLI:  
        delay_ms(arg_int);  
        break;  
        //Function which delays 10us  
        case U8X8_MSG_DELAY_10MICRO:  
        delay_us(10);  
        break;  
        //Function which delays 100ns  
        case U8X8_MSG_DELAY_100NANO:  
        //__NOP();  
                {
                        delay_cnt = 0;
                        while(delay_cnt++<10);
                }
  
        break;  
        //Function to define the logic level of the clockline  
        case U8X8_MSG_GPIO_SPI_CLOCK:  
            if (arg_int) OLED_SCL = 1;  
            else OLED_SCL = 0;  
  
        break;  
        //Function to define the logic level of the data line to the display  
        case U8X8_MSG_GPIO_SPI_DATA:  
            if (arg_int) OLED_SDA = 1;  
            else OLED_SDA = 0;  
  
        break;  
  
        // Function to define the logic level of the CS line  
        case U8X8_MSG_GPIO_CS1:  
  
        break;  
        //Function to define the logic level of the Data/ Command line  
        case U8X8_MSG_GPIO_DC: 
                        if(arg_int) OLED_DC = 1;
                        else OLED_DC = 0;
  
        break;  
        //Function to define the logic level of the RESET line  
        case U8X8_MSG_GPIO_RESET:  
            if (arg_int) OLED_RS = 1;  
            else OLED_RS = 0;  
  
        break;  
          
        default:  
            return 0; //A message was received which is not implemented, return 0 to indicate an error  
    }  
  
    return 1; // command processed successfully.  
}


这个就是定义好硬件上连接gpio和延时的操作接口 。此处我们使用的是模拟spi方式,没有使用硬件SPI接口,因此使用自带的操作接口u8x8_byte_4wire_sw_spi就可以了,不用自己实现。然后我们在main中就可以调用跟我们相关的型号就可以操作OLED了,我这里调用u8g2_Setup_ssd1306_128x64_noname_f这个接口,实际情况要根据我们的显示屏的型号来选择了。在main函数中编写如下代码:
游客,如果您要查看本帖隐藏内容请回复

然后烧写后,我们就可以看到如下的显示效果,非常的方便:
2.jpg
3.jpg

1.jpg


U8G2LIB.7z

4.97 MB, 下载次数: 618, 下载积分: 积分 -5

售价: 1 积分  [记录]

oled_test2.7z

10.14 MB, 下载次数: 20, 下载积分: 积分 -5

售价: 1 积分  [记录]

零知开源-让电子制作变得更简单! --- 零知实验室
回复

使用道具 举报

6

主题

14

帖子

34

活跃值

新手上路

Rank: 1

活跃值
34
发表于 2018-8-3 11:27:27 | 显示全部楼层
谢谢分享


回复

使用道具 举报

0

主题

1

帖子

4

活跃值

新手上路

Rank: 1

活跃值
4
发表于 2018-8-4 00:33:41 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

4

帖子

64

活跃值

注册会员

Rank: 2

活跃值
64
发表于 2018-9-10 19:58:27 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

8

帖子

96

活跃值

注册会员

Rank: 2

活跃值
96
发表于 2018-9-16 21:33:20 | 显示全部楼层
尝试使用U8G2试下OLED效果
回复

使用道具 举报

7

主题

70

帖子

105

活跃值

注册会员

Rank: 2

活跃值
105
发表于 2018-9-17 14:15:21 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

1

帖子

4

活跃值

新手上路

Rank: 1

活跃值
4
发表于 2018-10-9 09:53:09 | 显示全部楼层
学习了!!!!!!!!
回复

使用道具 举报

0

主题

1

帖子

6

活跃值

新手上路

Rank: 1

活跃值
6
发表于 2018-10-15 20:55:23 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

2

帖子

103

活跃值

注册会员

Rank: 2

活跃值
103
发表于 2018-10-31 22:06:09 | 显示全部楼层
参考一下,还没玩过
回复

使用道具 举报

0

主题

1

帖子

6

活跃值

新手上路

Rank: 1

活跃值
6
发表于 2018-11-7 16:15:20 | 显示全部楼层
很不错的lcd驱动,精简完美
回复

使用道具 举报

0

主题

1

帖子

4

活跃值

新手上路

Rank: 1

活跃值
4
发表于 2018-11-21 17:32:33 | 显示全部楼层
不错不错,支持一下
回复

使用道具 举报

0

主题

1

帖子

4

活跃值

新手上路

Rank: 1

活跃值
4
发表于 2018-11-22 22:57:30 | 显示全部楼层
看更多内容,谢谢楼主
回复

使用道具 举报

0

主题

1

帖子

8

活跃值

新手上路

Rank: 1

活跃值
8
发表于 2018-11-27 15:58:37 | 显示全部楼层
666666666666666666999999999999
回复

使用道具 举报

0

主题

1

帖子

6

活跃值

新手上路

Rank: 1

活跃值
6
发表于 2018-12-6 14:29:24 | 显示全部楼层
一直移植不成功,前来看看
回复

使用道具 举报

0

主题

1

帖子

8

活跃值

新手上路

Rank: 1

活跃值
8
发表于 2018-12-25 10:49:20 | 显示全部楼层
学习一下
回复

使用道具 举报

0

主题

6

帖子

28

活跃值

新手上路

Rank: 1

活跃值
28
发表于 2018-12-25 10:58:23 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

7

帖子

18

活跃值

新手上路

Rank: 1

活跃值
18
发表于 2019-1-1 21:48:01 | 显示全部楼层
學習學習
回复

使用道具 举报

2

主题

5

帖子

102

活跃值

注册会员

Rank: 2

活跃值
102
发表于 2019-1-2 11:34:21 | 显示全部楼层
谢谢,这个比较有用。
回复

使用道具 举报

0

主题

1

帖子

4

活跃值

新手上路

Rank: 1

活跃值
4
发表于 2019-1-2 16:23:27 | 显示全部楼层
膜拜大神
回复

使用道具 举报

1

主题

3

帖子

11

活跃值

新手上路

Rank: 1

活跃值
11
发表于 2019-1-5 13:28:23 | 显示全部楼层
学习一下
回复

使用道具 举报

0

主题

4

帖子

16

活跃值

新手上路

Rank: 1

活跃值
16
发表于 2019-1-19 19:12:55 | 显示全部楼层
刚刚好需要。。
回复

使用道具 举报

0

主题

1

帖子

4

活跃值

新手上路

Rank: 1

活跃值
4
发表于 2019-1-27 16:48:23 | 显示全部楼层
看一下楼主是怎么裁剪解决内存问题的
回复

使用道具 举报

0

主题

1

帖子

4

活跃值

新手上路

Rank: 1

活跃值
4
发表于 2019-2-28 11:13:34 | 显示全部楼层
支持一下
回复

使用道具 举报

0

主题

1

帖子

8

活跃值

新手上路

Rank: 1

活跃值
8
发表于 2019-2-28 17:25:51 | 显示全部楼层
谢谢分享!!!!!!!!!!!!!!
回复

使用道具 举报

0

主题

4

帖子

10

活跃值

新手上路

Rank: 1

活跃值
10
发表于 2019-3-1 14:46:09 | 显示全部楼层
ok
that's fine
回复

使用道具 举报

0

主题

4

帖子

10

活跃值

新手上路

Rank: 1

活跃值
10
发表于 2019-3-1 15:12:12 | 显示全部楼层
编译通不过
回复

使用道具 举报

378

主题

2229

帖子

1003

活跃值

管理员

Rank: 9Rank: 9Rank: 9

活跃值
1003
 楼主| 发表于 2019-3-1 15:42:18 | 显示全部楼层

之前用的keil5编译过的,错误提示是什么呢?
零知开源-让电子制作变得更简单! --- 零知实验室
回复

使用道具 举报

0

主题

4

帖子

10

活跃值

新手上路

Rank: 1

活跃值
10
发表于 2019-3-1 16:01:01 | 显示全部楼层
roc 发表于 2019-3-1 15:42
之前用的keil5编译过的,错误提示是什么呢?

OLED.C没有
回复

使用道具 举报

378

主题

2229

帖子

1003

活跃值

管理员

Rank: 9Rank: 9Rank: 9

活跃值
1003
 楼主| 发表于 2019-3-1 16:13:17 | 显示全部楼层

不需要这个文件,可能工程没有清理干净,工程中这个文件删掉就可以通过了。或者按照文章的步骤自己建立工程然后把那个库添加进来就可以直接使用的。
零知开源-让电子制作变得更简单! --- 零知实验室
回复

使用道具 举报

0

主题

4

帖子

10

活跃值

新手上路

Rank: 1

活跃值
10
发表于 2019-3-1 16:40:32 | 显示全部楼层
roc 发表于 2019-3-1 16:13
不需要这个文件,可能工程没有清理干净,工程中这个文件删掉就可以通过了。或者按照文章的步骤自己建立工 ...

好的,已经成功了哦
回复

使用道具 举报

0

主题

1

帖子

6

活跃值

新手上路

Rank: 1

活跃值
6
发表于 2019-3-10 22:56:06 | 显示全部楼层
感谢开源!!!!
回复

使用道具 举报

0

主题

1

帖子

4

活跃值

新手上路

Rank: 1

活跃值
4
发表于 2019-4-26 10:38:58 | 显示全部楼层
谢谢················
回复

使用道具 举报

0

主题

1

帖子

4

活跃值

新手上路

Rank: 1

活跃值
4
发表于 2019-4-28 15:01:56 | 显示全部楼层
很详细,很好的东西。
回复

使用道具 举报

0

主题

2

帖子

0

活跃值

新手上路

Rank: 1

活跃值
0
发表于 2019-6-17 21:15:10 | 显示全部楼层
学习一下
回复

使用道具 举报

0

主题

2

帖子

0

活跃值

新手上路

Rank: 1

活跃值
0
发表于 2019-6-17 21:20:19 | 显示全部楼层
oledtest下不了
回复

使用道具 举报

378

主题

2229

帖子

1003

活跃值

管理员

Rank: 9Rank: 9Rank: 9

活跃值
1003
 楼主| 发表于 2019-6-18 09:22:47 | 显示全部楼层

已经更新
零知开源-让电子制作变得更简单! --- 零知实验室
回复

使用道具 举报

0

主题

1

帖子

0

活跃值

新手上路

Rank: 1

活跃值
0
发表于 2019-6-19 11:57:18 | 显示全部楼层
楼主的帖子实在是写得太好了,不觉明厉啊!
回复

使用道具 举报

0

主题

1

帖子

101

活跃值

注册会员

Rank: 2

活跃值
101
发表于 2019-7-14 19:30:34 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

1

帖子

89

活跃值

注册会员

Rank: 2

活跃值
89
发表于 2019-7-16 14:26:16 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

1

帖子

80

活跃值

注册会员

Rank: 2

活跃值
80
发表于 2019-7-25 14:26:53 | 显示全部楼层
不错 学习学习
回复

使用道具 举报

0

主题

1

帖子

101

活跃值

注册会员

Rank: 2

活跃值
101
发表于 2019-8-26 01:10:01 | 显示全部楼层
非常好,谢谢分享
回复

使用道具 举报

0

主题

1

帖子

87

活跃值

注册会员

Rank: 2

活跃值
87
发表于 2019-9-13 22:58:35 | 显示全部楼层
发撒的暗示法
回复

使用道具 举报

0

主题

1

帖子

96

活跃值

注册会员

Rank: 2

活跃值
96
发表于 2019-9-19 15:43:03 | 显示全部楼层
看下,现在移植了发现对话框用不了
回复

使用道具 举报

0

主题

1

帖子

308

活跃值

中级会员

Rank: 3Rank: 3

活跃值
308
发表于 2019-10-2 19:02:16 | 显示全部楼层
我的积分啊
回复

使用道具 举报

1

主题

43

帖子

81

活跃值

注册会员

Rank: 2

活跃值
81
发表于 2019-10-4 18:03:34 | 显示全部楼层
学习一下
回复

使用道具 举报

0

主题

1

帖子

80

活跃值

注册会员

Rank: 2

活跃值
80
发表于 2019-10-19 20:54:56 | 显示全部楼层
正好需要,不错!!!
回复

使用道具 举报

0

主题

1

帖子

90

活跃值

注册会员

Rank: 2

活跃值
90
发表于 2019-10-19 23:08:47 | 显示全部楼层
对于移植U8G2这样优秀的库来说很有借鉴意义,谢谢
回复

使用道具 举报

0

主题

9

帖子

40

活跃值

新手上路

Rank: 1

活跃值
40
发表于 2019-10-23 16:44:04 | 显示全部楼层
学习学习
回复

使用道具 举报

0

主题

9

帖子

40

活跃值

新手上路

Rank: 1

活跃值
40
发表于 2019-10-23 16:44:43 | 显示全部楼层
有12864的吗?
回复

使用道具 举报

378

主题

2229

帖子

1003

活跃值

管理员

Rank: 9Rank: 9Rank: 9

活跃值
1003
 楼主| 发表于 2019-10-23 17:59:06 | 显示全部楼层

可用自己参考这个改
零知开源-让电子制作变得更简单! --- 零知实验室
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver| 手机版| 小黑屋| 零知实验室 ( 粤ICP备17040594号-3 )

GMT+8, 2019-12-7 22:40 , Processed in 0.089606 second(s), 23 queries .

快速回复 返回顶部 返回列表