I2C 寫
I2C spec 規(guī)定如下

詳細解析如下

對從機進行寫操作時,主設備發(fā)出開始標志 (S) 和寫地址 (從機地址加一個 R/W 位,1 為讀,0 為寫)。從機產生應答信號。然后主設備開始傳送寄存器地址 (RA),接到應答后,開始傳送寄存器數(shù)據(jù),然后仍然要有應答信號,連續(xù)寫入多字節(jié)時依次推。
舉例(例子進行了兩次封裝)
static int ap3216c_open(struct inode *inode, struct file *filp)
{
filp- >private_data = &ap3216cdev;
/* 初始化AP3216C */
ap3216c_write_reg(&ap3216cdev, AP3216C_SYSTEMCONG, 0x04); /* 復位AP3216C */
mdelay(50); /* AP3216C復位最少10ms */
ap3216c_write_reg(&ap3216cdev, AP3216C_SYSTEMCONG, 0X03); /* 開啟ALS、PS+IR */
return 0;
}
static void ap3216c_write_reg(struct ap3216c_dev *dev, u8 reg, u8 data)
{
u8 buf = 0;
buf = data;
ap3216c_write_regs(dev, reg, &buf, 1);
}
static s32 ap3216c_write_regs(struct ap3216c_dev *dev, u8 reg, u8 *buf, u8 len)
{
u8 b[256];
struct i2c_msg msg;
struct i2c_client *client = (struct i2c_client *)dev- >private_data;
b[0] = reg; /* 寄存器首地址 */
memcpy(&b[1],buf,len); /* 將要寫入的數(shù)據(jù)拷貝到數(shù)組b里面 */
msg.addr = client- >addr; /* ap3216c地址 */
msg.flags = 0; /* 標記為寫數(shù)據(jù) */
msg.buf = b; /* 要寫入的數(shù)據(jù)緩沖區(qū) */
msg.len = len + 1; /* 要寫入的數(shù)據(jù)長度 */
return i2c_transfer(client- >adapter, &msg, 1);
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
數(shù)據(jù)
+關注
關注
8文章
7349瀏覽量
95058 -
I2C
+關注
關注
28文章
1563瀏覽量
131798
發(fā)布評論請先 登錄
相關推薦
熱點推薦
i2c總線ppt(I2C總線器件應用)
I2C總線器件應用第一節(jié) I2C總線器件應用概述I2C總線工作原理I2C總線系統(tǒng)結構I2C總線系統(tǒng)結構如圖7-1所示。其中,SCL是時鐘線,
發(fā)表于 08-13 17:34
?0次下載
i2c總線技術 (非常詳細)
i2c總線技術:2 I2C 總線使設計人員和廠商都得益.. 32.1 設計人員的得益.. 42.2 廠商的得益. 53 介紹I2C 總線規(guī)范 64
發(fā)表于 03-25 08:58
?62次下載
I2C Guid I2C指南
I2C Guid I2C指南
The I2C bus is used in a wide rangeof applications because it is simpleand
發(fā)表于 04-23 13:55
?36次下載
硬件I2C與模擬I2C
硬件I2C對應芯片上的I2C外設,有相應I2C驅動電路,其所使用的I2C管腳也是專用的,因而效率要遠高于軟件模擬的I2C;一般也較為穩(wěn)定,但
發(fā)表于 12-28 19:14
?83次下載
I2C總線能掛多少設備?I2C spec知識總結
I2C 是 Philips 公司在 1982 年為主機板、嵌入式系統(tǒng)(短距)設計的一種簡單、雙向二線制同步串行總線。
i2c采樣是上升沿嗎?
數(shù)據(jù)。在本文中,我們將詳細討論I2C采樣的工作原理,采樣時機以及如何進行I2C采樣。 I2C采樣的原理 I2C采樣是基于
I2C總線協(xié)議詳細解析
1. I2C總線簡介 I2C總線由Philips Semiconductor(現(xiàn)為NXP Semiconductors)在1980年代初期開發(fā)。它是一種多主機總線,允許多個設備共享同一總線。I2C
SGM4541 I2C總線過壓保護器:設計與應用的詳細解析
SGM4541 I2C總線過壓保護器:設計與應用的詳細解析 在如今的電子設備設計中,保護電路免受過電壓的損害是至關重要的。SG Micro Corp推出的SGM4541 I2C總線過壓
I2C spec規(guī)定和詳細解析
評論