【国民技术N32G457评测】RT-Thread 驱动SSD1306
[复制链接]
RT_Thread的软件包中心方便的给用户提供了常用的驱动,今天我们使用软包中心来驱动SSD1306的OLED屏。
1、新建项目,选用基于开发板:
打开RT-Thread Settings:
选择添加软件包:
打开界面,查找ssd1306,添加软件包:
在软件包上选择详细配置:
钩选sample
钩选ENABLE I2C
返回界面
启用C++ libc
关闭配置,并且保存。
修改SCL SDA 为Pin 92 93
修改drv_gpio.c 的配置为100pin
修改main.c为:
-
- #include <stdint.h>
- #include <rtthread.h>
- #include <rtdevice.h>
- #include <board.h>
-
- #include <string.h>
- #include <stdio.h>
- #include "ssd1306.h"
-
-
-
-
- #define LED1_PIN 91
-
- int main(void)
- {
- uint32_t Speed = 200;
-
- rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT);
- rt_kprintf("start ssd1306\r\n");
- ssd1306_Init();
- ssd1306_Fill(Black);
- ssd1306_SetCursor(2,0);
- ssd1306_WriteString("HELLO NG32!", Font_11x18, White);
- ssd1306_SetCursor(2,18);
- ssd1306_WriteString("HAPPY NEW YEAR!", Font_7x10, White);
- ssd1306_UpdateScreen();
- while (1)
- {
- rt_pin_write(LED1_PIN, PIN_LOW);
- rt_thread_mdelay(Speed);
- rt_pin_write(LED1_PIN, PIN_HIGH);
- rt_thread_mdelay(Speed);
- }
- }
-
-
然后编译下载:
成功点亮LED
通这几步就可以成功驱动SSD1306,这里主要就是要修改SCL SDA的引脚有点小麻烦,因为软件包给的是23,24,查找drv_gpio.c中,没有23这个引脚,通过查阅数据手册为92(PB6) 93(PB7)。经过半天的折腾,终于点亮屏了!希望给大家引引路。
|