完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 xble 于 2016-7-18 15:25 编辑 am4379开发板上有三路i2c接口,i2c0,i2c1,i2c2,目前可以方面访问的是i2c0,下面两个图可以让我们很直观的看到这个接口。 另外两个接口从文档AM437x_Technical Reference Manual.pdf中可以找到一些记载,后面使用i2c-tools工具也可以查看到。 本来应该先说说IIC的协议,不过协议与设备驱动联系起来才好理解,而驱动更新不使用tftp和NFS,每次更新都需要插拔tf卡,所以我将IIC协议和驱动分析放到tftp和NFS之后。 在来linux下开源工具i2c-tools,附件有其源代码有兴趣的话可以编译一下。 交叉编译工具设置好后编译过程很顺利,直接将编译所得到的所以i2c-开头的可执行文件拷贝到系统中即可,记得添加执行权限。(注意交叉编译工具与目标设备的操作系统保持一致。) 下面执行i2cdetect命令可以看到很多信息,三个i2c接口,i2c0目前接了一个设备。 关机后将自己买的lcd1602插到am4379开发板上,公司工位比较黑,不过还是能够反映出lcd1602器件与am4379开发板的连接方法:am4379-J6.1:SDA;am4379-J6.3:SCL;am4379-J6.19:GND;am4379-J6.24:5V。 在执行i2cdetect命令,i2c0多了一个显示,同时这个27数值,也是这款设备的标识地址。 下面就是如何使用lcd1602这款设备。网上很多这样的介绍,具体实现这里略过。主要步骤是:初始化i2c设备,调用lcd1602写字符串函数,下面简单显示两行字符串。 其实lcd1602写字符串函数也可以写入单个字符,下面的代码实现实时显示输入字符功能。注意getchar函数的特性:回车后返回第一个字符。 while(1) { while( (ch = getchar()) != 'n'){ str[num] = ch; printf("<%c>", ch); num++; } if(num <= 16) { LCD1602DispChar(devFD, (num - 1), 0, str[num - 1]); } else if(num <= 32) { LCD1602DispChar(devFD, (num - 1 - 16), 1, str[num - 1]); } else { break; } } 图片不能反映整个字符输入,显示过程,只算一个示意图吧。
|
|
相关推荐
|
|
飞凌嵌入式ElfBoard ELF 1板卡-CAN编程示例之开发板测试
727 浏览 0 评论
该问题是用APP给芯海科技的CST92F25芯片发指令是出现的
2430 浏览 1 评论
828 浏览 0 评论
1600 浏览 1 评论
2423 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 08:12 , Processed in 0.711497 second(s), Total 67, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号