TA的每日心情 | 慵懒 2016-10-17 12:07 |
---|
签到天数: 306 天 连续签到: 1 天 [LV.8]以坛为家I
|
楼主 |
发表于 2015-5-3 12:47:59
|
显示全部楼层
10. LCD1602模块第一个demo
本帖最后由 liunian__92 于 2015-5-3 19:18 编辑
10. LCD1602模块第一个demo
在上一篇帖子中简单的介绍了这个模块。
这个模块中重要的一个芯片就是MCP23017。
图10-1:MCP23017
图10-2:MCP23017 Block Diagram
关于这个模块,官方已经给了相应的使用教程,链接如下:
http://www.52pi.net/forum.php?mod=viewthread&tid=949&extra=page%3D1
在配置RPi2的时候有点小小的不同。
并没有找到 /etc/modprobe.d/raspi-blacklist.conf 这个文件
最后,只是加了下面这个步骤:- 在 /boot/config.txt
- 加入:
- dtparam=i2c_arm=on
复制代码 编辑完成配置。- #include <stdio.h>
- #include <wiringPi.h>
- #include <mcp23017.h> //将wiringPI中提供的MCP23017的库包含到程序中
- #include <lcd.h> //将wirongPi中提供的LCD驱动库包含到程序中
-
- int main()
- {
- int display,i,count; //定义几个等下需要使用的变凉
- wiringPiSetup(); //初始化wiringPi
- mcp23017Setup (100, 0x20); //初始化MCP23017芯片,IO口起始编号为100,I2C地址0x20
- printf ("Raspberry Pi - MCP23017 Test\n");
- for(i=0;i<16;i++)
- pinMode(100+i,OUTPUT); //将拓展出的IO口全部置为输出模式
- digitalWrite(107,1); //将107引脚置为高电平,点亮LCD背光灯
- digitalWrite(101,0); //将R/W置为低电平,将LCD设置为写入状态
- display=lcdInit(2,16,4,100,102,103,104,105,106,0,0,0,0); //初始化LCD屏幕
- lcdHome(display); //将LCD的光标归位
- lcdClear(display); //清屏
- lcdPosition(display,0,0); //设置LCD屏幕显示初始位置
- lcdPuts(display," EEboard"); //在屏幕上显示“Hello World”
- while(1)
- {
- lcdPosition(display,0,1);
- lcdPrintf(display,"%d",count++); //自动循环加1
- delay(300); //延时300毫秒
- printf("lcd1602\n");
- }
- }
复制代码 效果如下图所示:
图10-3:效果图
|
|