8083|0

659

帖子

1

TA的资源

纯净的硅(中级)

楼主
 

一起玩树莓派3 + 使用WiringPi控制树莓派的I2C口读取外部FRAM [复制链接]

wiringPi是对树莓派IO口编程的一个库。简化了各类GPIO、PWM、UART、I2C、SPI的编程接口。官网地址为http://wiringpi.com/
以下是官网描述
  1. WiringPi is a GPIO access library written in C for the BCM2835 used in the Raspberry Pi. It’s released under the GNU LGPLv3 license and is usable from C and C++ and many other languages with suitable wrappers (See below) It’s designed to be familiar to people who have used the Arduino “wiring” system1

  2. The original Raspberry Pi Model A and B version B1 was a $35 single board computer with a 26-pin General Purpose Input/Output (GPIO) connector and this carries a set of signals and buses. There are 8 general purpose digital I/O pins – these can be programmed as either digital outputs or inputs. One of these pins can be designated for hardware PWM output too. Additionally there is a 2-wire I2C interface and a 4-wire SPI interface (with a 2nd select line, making it 5 pins in total) and the serial UART with a further 2 pins.
复制代码


安装很简单,这里采用直接从源码编译。
1:  [size=0.75em]git clone git://git.drogon.net/wiringPi
[size=0.75em]2: [size=0.75em]cd wiringPi
[size=0.75em]3: git pull origin
[size=0.75em]4: [size=0.75em]cd wiringPi
[size=0.75em]5: ./build
搞定!

IO口默认基本都是GPIO-IN功能,使用I2C之前必须先切换到I2C功能
输入sudo raspi-config




测试如下:
gpio readall显示所有引脚状态


连接I2C引脚到外部I2C模块。手头上的是微雪的FRAM模块,地址是0x50~0x57,后面的0~7分别是不同的page。
使用i2cdetect可见


采用i2cdump可查看fram里面的内容


自己编写C代码如下:

  1. #include <stdio.h>

  2. #include <wiringPiI2C.h>

  3. int main(void)

  4. {
  5.         int buf[10] = {0};
  6.         const int devId = 0b1010000;
  7.         int fd = wiringPiI2CSetup(devId);

  8.         if (fd < 0) {
  9.                 printf("Error setup I2C device %b\n", devId);
  10.                 exit(1);
  11.         }

  12.         buf[0] = wiringPiI2CRead(fd);
  13.         printf("buf = %c\n", buf[0]);


  14.         return 0;
  15. }
复制代码
编译如下:
gcc -I /usr/local/include/ -L /usr/local/lib/ -lwiringPi test_wiringPiI2C.c -o test_wiringPiI2C


最终读取的结果与i2cdump的结果相同;

点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表