shower.xu 发表于 2015-1-8 16:54:48

[Nucleo学习]Nucleo-F072RB开发5110显示驱动库

拿到板子有一段时间了,但是一直忙没有动手,最近摸索了一下,写了一个“标准”的nokia5110液晶的驱动库出来,练练手。

板载的F072是m0的内核,外设资源也很丰富,但之前F3/F4都有接触,所以对他其他方面没什么期待了,那为什么还要买它呢,我主要是看中了他的开放式可编程性能,mbed在线编程,标准Arduino Uno Revision 3的接口,也就是可以兼容Arduino Uno Revision 3的众多外设(可惜我没有);而且flash和ram
也相对较大,可玩性不错。


之前没玩过Arduino,但是它的大名早已有所耳闻,它的标准库操作和驱动类的实现很是强大,对编程的学习很有帮助。


手头上有一块之前剩下的5110的液晶,SPI驱动,小巧方便,打算先拿来试试。

库地址在http://developer.mbed.org/users/shower_xu/code/SX5110/
用起来很简单
LcdPins myLcdPins = { SPI_MOSI, SPI_SCK, D9, D10, D8};
    Lcd5110 myLcd( myLcdPins );    // SPI is started here (8-bits, mode 1)
    myLcd.InitLcd();                // LCD is reset and DDRAM is cleared先设置驱动脚位,顺序是
struct LcdPins{    PinName mosi;    PinName sclk;    PinName dc;    PinName sce;    PinName rst;};
前两个是spi接口的IO,但是如果你硬件的IO口被占用需要用模拟的IO也可以,只需要把头文件里的#define HW_SPI注释掉即可。
接着调用InitLcd()方法来初始化lcd,就可以使用了。

库支持大部分函数,可以直接显示字符
    public:
      void InitLcd();
      void clear();
      void ShutdownLcd();
      void SendCmd(char cmd);
      void SendData(char data);
      void TestLcd(char test_pattern);
      
    public:
      void SetXY(char x, char y);
      void write_char(char c);
      void set_xy(unsigned char x,unsigned char y);
      void write_stringxy(unsigned char x,unsigned char y,char *p);
      void write_string(char *p);
      char* NumToStr(int num);下面是图片


相思谷 发表于 2015-1-8 16:55:49

谢谢分享

沐紫 发表于 2015-1-8 17:04:02

谢谢,楼主还可以分享方案参赛,拿开发经费支持https://www.stmcu.org.cn/page/STM32Nucleo-homepage/

linshifaa 发表于 2015-1-9 00:29:33

:lol:lol:lol手指一抖经验到手

我是酱油哥 发表于 2015-1-9 08:45:44

不错不错

sasmike 发表于 2015-1-9 09:37:10

挺有意思,不错!

万里-363223 发表于 2015-1-9 10:56:33

谢谢分享:)

晓枫VS枯叶 发表于 2015-1-9 16:03:02

楼主这个也能做参赛方案........之前我就分享了一个基于nucleo stm32f072的温度计,使用了tmp275和5110,也是基于mbed.........

terrypsp 发表于 2015-2-24 14:50:20

有点意思;P

nobody8 发表于 2015-2-24 14:56:31

谢谢分享:loveliness:
页: [1] 2
查看完整版本: [Nucleo学习]Nucleo-F072RB开发5110显示驱动库