完善资料让更多小伙伴认识你,还能领取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; } } 图片不能反映整个字符输入,显示过程,只算一个示意图吧。
|
|
相关推荐
|
|
575 浏览 1 评论
飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之LED
580 浏览 0 评论
迅为RK3588开发板实时系统编译-Preemption系统/ Xenomai系统编译-编译Linux实时系统-单独编译1
386 浏览 0 评论
哇!5.2秒进入应用界面!Linux快速启动方案分享,基于全志T113-i国产平台
551 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-移植前准备之git管理内核源码
570 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-25 02:26 , Processed in 0.602850 second(s), Total 67, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号