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

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


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


手头上有一块之前剩下的5110的液晶,SPI驱动,小巧方便,打算先拿来试试。
 
库地址在https://developer.mbed.org/users/shower_xu/code/SX5110/
用起来很简单

  1. LcdPins myLcdPins = { SPI_MOSI, SPI_SCK, D9, D10, D8};
  2.     Lcd5110 myLcd( myLcdPins );    // SPI is started here (8-bits, mode 1)
  3.     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,就可以使用了。

库支持大部分函数,可以直接显示字符

  1.     public:
  2.         void InitLcd();
  3.         void clear();
  4.         void ShutdownLcd();
  5.         void SendCmd(char cmd);
  6.         void SendData(char data);
  7.         void TestLcd(char test_pattern);
  8.         
  9.     public:
  10.         void SetXY(char x, char y);
  11.         void write_char(char c);
  12.         void set_xy(unsigned char x,unsigned char y);
  13.         void write_stringxy(unsigned char x,unsigned char y,char *p);
  14.         void write_string(char *p);
  15.         char* NumToStr(int num);
复制代码

下面是图片
 

 [mp3]http://sxblog.qiniudn.com/music/mp3/张学友-我只想唱歌.mp3|titles=我只想唱歌,The Monster|artists=张学友,Eminem|autostart=yes|loop=no[/mp3]