本帖最后由 fjjjnk1234 于 2015-11-15 20:34 编辑
STM32 Nucleo的板子带有Arduino接口,支持mbed开发环境,使用mbed开发跟Arduino有点类似,能够快速利用已有的资源完成设计,非常适合业余时间DIY小作品,不过用来开发产品感觉就不合适了。在本帖中将分享快速使用mbed驱动OLED。 在mbed的code页面,有很多网友开源的代码,跟github有点像,为了快速完成设计,我们可以利用这些代码,加以修改,使之适合自己的板子。 比如,我们可以搜索OLED,就能看到很多关于OLED的资源了。
我选择了一个SSD1306 OLED相关的代码 首先,新建一个空白工程 红框中的文件需要导入,为了方便,我直接从LED的模板实例中copy过来
接着,Import this program 导入完成后,就能直接使用他的驱动库,将驱动库copy到我们的工程中 主函数也可以使用,板子与OLED引脚连接的部分修改一下,程序就能使用了 OLED与Nucleo板子的连接 CS——D9 RST——D8 DC——D10 CLK——D13 DIN——D11 - int main()
- {
- oled.initialise();
- oled.clear();
- oled.set_contrast(255); // max contrast
-
- while(1)
- {
-
- oled.drawBitmap(30, 16, logo16_glcd_bmp, 16, 16);
- oled.update();
- wait(3);
-
- testdrawline();
-
- oled.clear();
- testdrawbitmap(logo16_glcd_bmp, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH);
- oled.set_font(bold_font, 8);
- oled.printf("Heading\r\n");
- oled.set_font(standard_font, 6);
- oled.printf("Hello World!\r\n");
- oled.printf("Some more text here...\r\n\r\n\r\n\r\n");
- // oled.set_font(bold_font, 8);
- oled.line(127, 0, 0, 63);
- oled.update();
- wait(1);
- int i = 10;
- while (i > 0)
- {
- wait(1);
- oled.printf("%d\r\n", i--);
- oled.update();
- oled.scroll_up();
- }
-
- oled.clear();
-
- } // end outside loop for OLED demo
- }
复制代码实际效果还不错,照片拍得不好,感兴趣的朋友可以尝试下 程序占用的Flash和RAM也一目了然 |