SAM4E的板子到手有段时间了,最近太忙也没时间学,这两天抽点时间来学习了下用SAM4E的板子驱动OLED屏,手上有块ATMEL的OLED板子,用SAM4E的板子来驱动测试下。
先看下SAM4E板子的外观,驱动OLED是使用的EXT3接口,板子下面的那个排阵。
看下主板接口的信号
再看下OLED板的外观,
然后是OLED板接口的描述
本OLED是128*32点阵的。ASCII字库是不等宽的,高度为8点阵,可以显示4行。字库定义时使用了指针数组,为了字符分开点,显示的时候在两个字符字符之间再增加一个空列。驱动使用的是SPI接口,我目前先使用IO口来模拟SPI接口。
首先建立一个工程,怎么建立这里就不多描述了,我是用ASF的例程LOW_POWER1基础上修改的,在ASF\common\components目录下增加了display文件夹,增加了几个文件。
修改工程里,在mian文件里把OLED显示用不到的东西都删掉。只留下了OLED板上3个LED,3个按键和OLED显示的驱动。Main函数内容如下
和OLED相关的有bard_init();ssd1306_init();ssd1306_clear(); Display_Text ();这几个函数,后面的3个函数都在文件ssd1306.c文件中,然后需要用到的端口定义在sam4e_xplained_pro.h文件中。
ssd1306_init()函数中增加如下定义
OLED的初始化函数
总之还是比较简单的,就是IO口的操作,显示效果如下
|