日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下I2C驱动发送IO时序,Linux I2C 驱动阅读的碰到的一些网上没有提到的东西

發布時間:2023/12/1 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下I2C驱动发送IO时序,Linux I2C 驱动阅读的碰到的一些网上没有提到的东西 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#?re: Linux I2C 驅動閱讀的碰到的一些網上沒有提到的東西??回復??更多評論

2009-04-11 13:39 by 初學都

樓主,你好。我看了你那篇《Linux I2C核心、總線與設備驅動[轉]》,讓我明白了不少,不過我還是有些不明白的地方,想請教一下。

我掛的I2C設備是只可以寫的,不能讀,所以只有一個寫從機地址,可是當我調用內核的I2C驅動時發現,寫操作執行后,在示波器上看到,在開始信號之后,它先發送完從機地址并接收到應答信號,可之后立即出現了一個停止信號(我后面還有數據要發的呀),然后又開始發送從機地址,并在收到應答后又出現一個停止位,如此反復;

在我下面的程序運行時,只在示波器上抓到四組這樣“開始—從機地址—應答—停止”的信號,卻沒有看到我接下來要發數據,同時還打印出“Remote I/O error”的錯誤,我先把我的程序貼一下,希望能得到你的指點,謝謝

#define I2C_TENBIT 0x704

#define I2C_SLAVE 0x703

#define CHIP_ADDR 0x30 >> 1 // 7 bits for fm31256 address

#define IO_DEV "/dev/i2c-0"

main(int argc, char *argv[])

{

unsigned char REG_WRITE=0X30; /*寫地址*/

unsigned char data=0xf4;

int ret;

ret=0;

if ((fd = open(IO_DEV, O_RDWR)) < 0)

perror("open i2c_adpter error");

else //設置I2C訪問模式

{

if(ioctl(fd,I2C_TENBIT,0))

perror("set i2c 7bits address mode error");

if(ioctl(fd,I2C_SLAVE,CHIP_ADDR))

perror("set device address error");

}

if((ret = write (fd, REG_WRITE, 1))!= 1)//發從機地址

{

perror("set address error"); //這里打印Remote I/O error

}

else

{

if (write (fd, &data, 1))!= 1)//發送數據,但在示波器上沒有 看到date的值

perror("write date error"); //這里打印Remote I/O error

}

return 0;

}

總結

以上是生活随笔為你收集整理的linux下I2C驱动发送IO时序,Linux I2C 驱动阅读的碰到的一些网上没有提到的东西的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。