为了驱动OLED屏的显示,先进行了LED的测试。从相关资料可知,基站的开发板上有4个LED,所对应的GPIO口如下:
D12:GPIO5
D13:GPIO28
D14:GPIO7
D15:GPIO6
但在设计测试中却发现,这5个LED不受控制,为此只好利用扩展接口上的GPIO口来测试。
此外,比较唬人的是GPIO3和GPIO4与I2C接口的SCL和SDA竟使用的是相同的引脚,只不过是引到2个位置而已。所以说开发板所提供的扩展引脚还是很稀缺的,应善加规划和使用。
图1 扩展接口
经对GPIO3和GPIO4的测试,其效果如图2和图3所示。
图2 熄灭状态
图3 点亮状态
对应的主程序如下:
由此可以说明程序是没有问题的,之所以不能控制板载的LED可能是与8288的控制有关。
有了这2个GPIO口,就好办了,它足可以驱动一个I2C接口的OLED屏。
经实际测试,其实现效果如图4所示,可见效果还是不错的,如果通过终端来检测,则可以在基站统一进行显示,从而构成一个无线的检测网。
图4 OLED屏显示效果
OLED屏所显示的汉字是通过图5所示的软件来取模,并按图6的格式来提取。
图5 提取字模
图6 提取格式
提取的字模结构如下:
//御(0) 芯(1) 微(2) 自(3) 组(4) 网(5) 协(6) 议(7) 开(8) 发(9) 套(10) 件(11)
{0x10,0x88,0xC4,0x33,0x48,0x47,0x44,0xFC,0x44,0x44,0x00,0xFC,0x04,0x04,0xFC,0x00},
{0x01,0x00,0xFF,0x20,0x60,0x3E,0x20,0x1F,0x12,0x12,0x00,0xFF,0x08,0x10,0x0F,0x00},/"御",0/
{0x04,0x04,0x04,0x04,0x1F,0x04,0x24,0x44,0x84,0x04,0x1F,0x04,0x04,0x04,0x04,0x00},
{0x10,0x08,0x06,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x40,0x70,0x01,0x02,0x0C,0x00},/"芯",1/
{0x10,0x88,0xC4,0x33,0x80,0x9E,0x90,0x9F,0x90,0x9E,0x20,0xD8,0x17,0xF0,0x10,0x00},
{0x01,0x00,0xFF,0x80,0x40,0x3E,0x02,0x02,0x3E,0x10,0x88,0x67,0x18,0x67,0x80,0x00},/"微",2/
{0x00,0x00,0x00,0xF8,0x88,0x8C,0x8A,0x89,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,0x00},
实现图4所示效果的主程序如下:
有了OLED屏这个显示窗口,继续测试就又多了一种观察的手段。