完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 kaloha 于 2017-5-15 17:46 编辑
---------------------------------------------------------------------------------------- 本文转自:www.waveshare.net/study/article-604-1.html ---------------------------------------------------------------------------------------- 例程是通过i2c控制pcf8574 IO,使Pioneer 600扩展板的LED2闪烁。 一、bcm2835
编译并执行,扩展板上的LED2灯开始闪烁了,Ctrl +C结束程序
注:(1)bcm2835_i2c_begin(); 启动i2c操作,设置I2C相关引脚为复用功能 (2)bcm2835_i2c_setSlaveAddress(0x20); 设置I2C从机设备的地址,此处为0x20。即PCF8574的地址。 (3)bcm2835_i2c_write(buf,1);传输字节到i2c从设备,buf为要传输的数据,1表示传输一个字节 更多bcm2835库i2c操作函数请查看:http://www.airspayce.com/mikem/bcm2835/group__i2c.html#ga1309569f7363853333f3040b1553ea64 二、wiringPi
编译并执行,扩展板上的LED2灯开始闪烁了,Ctrl +C结束程序
注:(1)fd = wiringPiI2CSetup(0x20);初始化I2C设备,0x20为PCF8574的I2C地址,返回值是标准的Linux文件句柄,如果错误则返回-1.由此可知,wiringPi底层也是通过sysfs方式操作I2C设备/dev/i2c-1 wiringPi还有pcf8574的扩展库,也可以调用pcf8574的库操作IO.
编译并执行
更多bcm2835库i2c操作函数请查看: http://wiringpi.com/reference/i2c-library/ http://wiringpi.com/extensions/i2c-pcf8574/ 三、python 首先执行如下命令安装smbus库
编辑程序
执行程序:
注:(1) import smbus 导入smbus模块 (2)bus = smbus.SMBus(1) 在树莓派版本2中,I2C设备位于/dev/I2C-1,所以此处的编号为1 python封装SMBUS操作函数具体代码请查看:https://github.com/bivab/smbus-cffi 四、sysfs 从上面编程,我们可以发现,wiring,python程序都是通过读写i2c设备文件/dev/I2C-1操作i2c设备。故我们也可以用c语言读写文件的形式操作i2c设备。
编译并执行
注:(1)fd = open("/dev/i2c-1", O_RDWR); 打开设备,树莓派版本2的I2C设备位于/dev/i2c-1 (2)ioctl(fd, I2C_SLAVE, I2C_ADDR) ; 设置I2C从设备地址,此时PCF8574的从机地址为0x20。I (3) write( fd , &value, 1 );向PCF8574写入一个字节,value便是写入的内容,写入的长度为1. |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
5863 浏览 0 评论
14170 浏览 9 评论
7793 浏览 0 评论
基于Amazon Echo 和 Raspberry Pi 的自动窗帘控制
7142 浏览 1 评论
【下载】《Linux+树莓派玩转智能家居》——亲手进行树莓派应用制作
160034 浏览 374 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 13:00 , Processed in 0.396258 second(s), Total 40, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号