也玩MF,雅典娜4 SPI 接口驱动Nokia 5110 LCD
一直以来都想玩一玩嵌入式开发,苦于没有任何硬件基础 ,学校里学的一点入门级的电子信息基础也都忘记的差不多了。很久以前就关注了MF,优势我就不多说了,但是入手门槛还是很高。直到看到大石头的文章。 http://www.cnblogs.com/nnhy/archive/2012/09/25/MFCategory.html ,发现是时候入手了,我买了一块 雅典娜4的开发板, http://www.newlifex.com/showtopic-58.aspx,价格比价便宜,也能满足MF的学习。
现在谈谈MF如何驱动Nokia 5110 LCD。
很久以前打算发一个SPI通讯的DEMO,但是苦于时间太少,今天决定无论如何要写一下,顺便帮大石头验证SPI通讯是可用的。
申明一下,我是个菜鸟,平时做软,硬件不通。。。MF纯属业务爱好。
手头恰巧有个一块5110液晶屏(当年想学51,一起买的,没学会。。。)
5110是个不错的屏幕,字符多,价格便宜,SPI通讯,IO占用少。
说实话,驱动这屏幕花了好多天,各地找资料,终于在东拼西凑勉强驱动了它,由于对5110液晶的协议没有深入了解,目前只能显示简单的英文字符,论坛里的高手们有兴趣可能提供中文显示方案。
首先先了解一下5110LCD
模块接口
- 1. RST ——复位
- 2. CE —— 片选
- 3. DC —— 数据/指令选择
- 4. DIN —— 串行数据线
- 5. CLK —— 串行时钟线
- 6. VCC —— 电源输入(3.3v和5v均可,经过实验验证,没有问题)
- 7. BL —— 背光控制端
- 8. GND —— 地线
接口为串行SPI接口。
雅典娜4的开发板带2个SPI接口,这取决于 STM32F103VET6 支持的SPI 接口个数。
SPI接口使用核心代码
SPI.Configuration spiConfiguration = new SPI.Configuration( cs, // 片选接口 false, // IC is accessed when chip select is low 0, // setup time 1 ms 0, // hold chip select 1 ms after transfer false, // clock line is low if device is not selected true, // 上升沿触发 4000, // 设置时钟速率 SPI.SPI_module.SPI1 // 设置SPI通道 ); spi = new SPI(spiConfiguration);
不太好理解的地方还是用英文翻译。
例程中用的是SPI接口,并且由于不需要读取数据,所以只需要用到 PA7(M0SI)、PA5(SCK)。
开发板与LCD的接线是
- 1. RST ——PD7
- 2. CE —— PD10
- 3. DC ——PD8
- 4. DIN ——PA7
- 5. CLK —— PA5
- 6. VCC ——3.3v 串一个4.7K电阻,否则屏幕颜色过深
- 7. BL —— 3.3V
- 8. GND —— 地线
网上有关于5110的资料,非常完整,大家有兴趣可以研究一下 http://wenku.baidu.com/view/56527c084a7302768e9939af.html
我精力有限,发这文章主要目的就是让大家了解一下SPI的用法,以及证实下雅典娜4 SPI可用。
再次感谢下 大石头 辛勤付出,为 STM32F103VET6 移植MF固件。
对MF有兴趣的朋友可以加入 QQ群 1600838