经过几天的瞎折腾,终于把AT91RM9200在linux2.6.20下TWI测试程序调试好了,总结如下

1.上拉电阻10K估计不合适,我换成2K的,SCL和SDA上就不断的有数据了,先前只有第一次有数据.

2.速度不能太快,由于我做的是两层板,干扰比较大,我I2C时钟跑在200K的时候,就不正常啦.我调成100K后,情况大为好转

测试程序如下:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

int main(void)

{

int i;

int fd;

int res;

unsigned char buf[8];

printf("Start to test the driver for I2C\n");

printf("Get a char\n");

getchar();

fd= open("/dev/i2c", O_RDWR);

if( fd < 0 )

{

printf( "Fail to open AT24C32!\n" );

exit(1);

}

res=ioctl(fd,I2C_TENBIT,0);

// printf("res=%d\n",res);

res=ioctl(fd,I2C_SLAVE,0x50);

// printf("res=%d\n",res);

res=ioctl(fd,I2C_TIMEOUT,10);

// printf("res=%d\n",res);

res=ioctl(fd,I2C_RETRIES,1);

// printf("res=%d\n",res);

buf[0]=0x00;

buf[1]=0x11;

buf[2]=0x22;

buf[3]=0x33;

buf[4]=0x44;

if ( write(fd,buf,5) != 5) {

printf("write iic error1... ... \n");

}

else

{

printf("write iic datas \n");

for(i= 1;i<5;i++)

{

printf("0x%x ",buf[i]);

}

printf("\n");

}

buf[0]=0x00;

if ( write(fd,buf,1) != 1) {

printf("write iic error2... ... \n");

}

if ( read(fd,buf,4) != 4) {

printf("read iic data1 error... ... \n");

} else {

printf("read iic datas \n");

for(i= 0;i<4;i++)

{

printf("0x%x ",buf[i]);

}

printf("\n");

}

buf[0]=0x00;

buf[1]=0x55;

buf[2]=0x66;

buf[3]=0x77;

buf[4]=0x88;

if ( write(fd,buf,5) != 5) {

/* ERROR HANDLING: i2c transaction failed */

printf("write iic error3... ... \n");

}

else{

printf("write iic datas \n");

for(i= 1;i<5;i++)

{

printf("0x%x ",buf[i]);

}

printf("\n");

}

buf[0]=0x00;

if ( write(fd,buf,1) != 1) {

/* ERROR HANDLING: i2c transaction failed */

printf("write iic error4... ... \n");

}

if (read(fd,buf,4) != 4) {

printf("read iic data2 error... ... \n");

} else {

printf("read iic datas \n");

for(i= 0;i<4;i++)

{

printf("0x%x ",buf[i]);

}

printf("\n");

}

printf("\n finished!\n");

close(fd);

return 0;

}

测试结果:

Start to test the driver for I2C

Get a char

write iic datas

0x11 0x22 0x33 0x44

read iic datas

0x11 0x22 0x33 0x44

write iic datas

0x55 0x66 0x77 0x88

read iic datas

0x55 0x66 0x77 0x88

finished!

linux at24测试程序,AT91RM9200在linux2.6.20下TWI测试程序相关推荐

  1. AT91RM9200+pcf8563在linux2.6.20下的调试心得

    这两天调试了AT91RM9200+pcf8563在linux2.6.20下的驱动,记录一下我的调试过程以及调试心得,呵呵      在linux2.6.20/drivers/rtc目录下面已经有了pc ...

  2. 深度linux怎么备份系统下载,在Deepin 20下安装和配置timeshift并用它自动备份系统...

    本文介绍在Deepin 20系统下安装timeshift的方法,并配置timeshift来自动备份Deepin 20系统.有了这个备份,你就可以放心的处理系统了,真要把操作系统的文件搞坏了也可以恢复的 ...

  3. linux的usb驱动失败,linux2.6.24下usb驱动完成情况及问题解决

    1.在kernel启动是出现如下问题: mount: mounting tmpfs on /dev failed 解决方案如下, File systems  --->Pseudo filesys ...

  4. Linux-2.6.20的LCD驱动分析(二)

    .1 驱动的入口点 摆在面前的第一个问题相信应该是,这个函数是从那里开始运行的.这里就应该从long long ago 开始了,打开drivers/video/s3c2410fb.c文件,然后找到s3 ...

  5. Linux-2.6.20的LCD驱动分析

    一.让LCD显示可爱的小企鹅 还是先说说环境吧,处理器为S3C2410,linux的版本当然是2.6.20的.下面先说说怎样让LCD上显示出可爱的小企鹅.最直接的步骤如下(记住不要问为什么哈-_-,一 ...

  6. linux 修改时区_如何在 Ubuntu 20.04 上设置或者修改时区

    本文最先发布在: 如何在 Ubuntu 20.04 上设置或者修改时区​www.itcoder.tech 使用正确的时区,对于系统相关的任务和进程来说,是最基本的.例如,cron 守护进程,使用系统时 ...

  7. linux练习 串口跟进程6,linux下串口测试程序

    linux下串口测试程序 通过简单的参数配置,执行文件+串口号+波特率 #include stdio.h #include stdlib.h #include unistd.h #include sy ...

  8. Linux2.6.33下ZC301USB摄像头使用教程

    Linux2.6.33下ZC301USB摄像头使用教程 华清远见-嵌入式领域著名讲师O(∩_∩)O 牛牛猛 点击链接加我好友! http://student.csdn.net/invite.php?u ...

  9. linux-2.6.14下USB驱动移植心得

    linux-2.6.14下USB驱动移植心得 USB 驱动移植心得 一.代码修改 主要是按照这个贴来做: http://www.hfrk.net/S3C2410/kaifa/0631522024832 ...

最新文章

  1. Android 实现一个验证码倒计时(Handler postDelayed 实现验证码倒计时)
  2. [html] 回车表单自动跳转如何禁止
  3. WebLogic安装Linux centos7
  4. 施一公谈自己35岁和53岁的区别
  5. 如何能成为一名合格的前端开发工程师?
  6. SEC0000007-Unable to locate security server?
  7. Fiddler模拟请求报文
  8. Vmware Workstation虚拟机规划
  9. 蛋白序列GO号注释及问题
  10. 计算机408学什么区别,考研计算机408考什么
  11. 电脑怎么打出冒号符号_电脑标点符号怎么打(图文)
  12. linux ipv6 前缀 定义,IPv6 地址前缀
  13. 广州的11个辖区_广州市下辖11个区,其中GDP总值超过3000亿元的分别有哪些?
  14. 做一个有温度的程序员
  15. Python 办公自动化:全网最强最详细 PDF 文件操作手册!
  16. 温故而知新:汽车以太网技术发展10年(上)
  17. iOS使用VideoToolbox硬编码录制H264视频
  18. 基于图嵌入的降维算法——边界Fisher分析(MFA)
  19. Hive编程(影印版)
  20. DameWare NT Utilities 隐藏图标

热门文章

  1. 2022-2028全球与中国磁屏蔽功率电感器市场现状及未来发展趋势
  2. 36氪WISE 2017:融云斩获年度最具影响力奖
  3. T-S型模糊算法简述及FPGA的实现
  4. 我也曾对架构师的力量一无所知
  5. 唯品会商品详情API接口(item_get-获得唯品会商品详情接口),唯品会详情API接口
  6. JDK有BUG!!!
  7. Unable to open debugger port (127.0.0.1:51816): java.net.BindException “Address already in use: NET_
  8. Linux 环境基础开发工具的使用
  9. 2016hctf Writeup.md
  10. AlarmManager的简单使用