1. 程式人生 > >9.I2C讀寫資料—基於CT117E開發板的STM32庫函式程式設計

9.I2C讀寫資料—基於CT117E開發板的STM32庫函式程式設計

I2C  簡介 IIC(Inter-Integrated Circuit)匯流排是一種由 PHILIPS 公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。 它是由資料線 SDA 和時鐘 SCL 構成的序列匯流排, 可傳送和接收資料。在 CPU 與被控 IC 之間、IC 與 IC 之間進行雙向傳送,高速 IIC 匯流排一般可達 400kbps 以上。I2C 匯流排在傳送資料過程中共有三種類型訊號, 它們分別是:開始訊號、結束訊號和應答訊號。 開始訊號:SCL 為高電平時,SDA 由高電平向低電平跳變,開始傳送資料。 結束訊號:SCL 為高電平時,SDA 由低電平向高電平跳變,結束傳送資料。 應答訊號: 接收資料的 IC 在接收到 8bit 資料後, 向傳送資料的 IC 發出特定的低電平脈衝,表示已收到資料。CPU 向受控單元發出一個訊號後,等待受控單元發出一個應答訊號,CPU 接
收到應答訊號後,根據實際情況作出是否繼續傳遞訊號的判斷。若未收到應答訊號,由判斷為受控單元出現故障。 這些訊號中,起始訊號是必需的,結束訊號和應答訊號,都可以不要.( IIC 匯流排時序圖)
參考CT117E開發板原理圖     I2C具體的設定參考其驅動程式,這裡分析其在主函式中的用法。 1.讀資料
  1. uint8_t x24c02_read(uint8_t address)
  2. {
  3. unsignedchar val;
  4. I2CStart();
  5. I2CSendByte(0xa0);
  6. I2CWaitAck();
  7. I2CSendByte(address);
  8. I2CWaitAck();
  9. I2CStart();
  10. I2CSendByte
    (0xa1);
  11. I2CWaitAck();
  12. val = I2CReceiveByte();
  13. I2CWaitAck();
  14. I2CStop();
  15. return(val);
  16. }
2.寫資料
  1. void x24c02_write(unsignedchar address,unsignedchar info)
  2. {
  3. I2CStart();
  4. I2CSendByte(0xa0);
  5. I2CWaitAck();
  6. I2CSendByte(address);
  7. I2CWaitAck();
  8. I2CSendByte(info);
  9. I2CWaitAck();
  10. I2CStop();
  11. }

相關推薦

9.I2C資料基於CT117E開發STM32函式程式設計

I2C  簡介 IIC(Inter-Integrated Circuit)匯流排是一種由 PHILIPS 公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。 它是由資料線 SDA 和時鐘 SCL 構成的序列匯流排, 可傳送和接收資料。在 CPU 與被控 IC 之間、

Jmeter Redis外掛開發 -- 資料

大神的原文地址 背景 最近一段時間在接觸效能壓測,遇到一個棘手的問題。效能需求在30KQPS,要求進行單介面壓測,介面之間依賴不可避免(下一個介面發壓資料需要使用上一介面的返回),還不能通過做資料的方式準備。只能將上一介面返回的資料,儲存起來,用於下一介面的引數。 在一開始的時候,犯了一

Linux Kernel 裝置驅動之I2C之client資料API

傳送資料 int i2c_master_send(const struct i2c_client *client, const char *buf, int count) 接收資料 int i2c_master_recv(const struct i2c_client *c

I2C通訊 資料過程

在通訊之初,主從機必須根據自己的要求約定好通訊規則:command的定義和位置、address的位數和位置。 以讀寫從機暫存器資料為例: 假設從機暫存器地址為8位、從機暫存器也位8位(被讀取資料為8位); 約定讀command為0x01,寫command位0x02

golang 從opentsdb 資料

  package main import ( "bufio" "bytes" "encoding/json" "fmt" "io/ioutil" "log" "net" "net/http" "runtime"

用json資料

''' import json filename='username1.json' try: with open(filename) as f_obj: username=json.load(f_obj) except FileNotFoundError:

2.9 JSON1:JSON序列化

概述 序列化:將Go資料轉化為json字串 定義結構體 type Person struct { Name string Age int Sex

Python使用xlrd和xlwt向Excel資料

一、從Excel讀資料 下圖是我的url.xlsx內容,此處我以讀取B列(即第2列)URL資料為例 import xlrd data = xlrd.open_workbook('C:\\Users\\Administrator\\Desktop\\url.xlsx') #開啟工

RT-Thread使用I2Ceeprom例程(24c02)

實驗準備: 開發板:正點原子探索者 RT-Thread原始碼 env工具 env配置: 使能相關的uart,用於開啟控制檯 開啟I2C裝置: 實驗原始碼: #include <rtthread.h> #include <rtd

tensorflow-資料tf.data(1)

模組:tf.data定義在tensorflow/_api/v1/data/init.py輸入管道的tf.data.Dataset API 模組實驗模組:構建輸入管道的實驗API。類class Dataset:可能是大型的元素集。class FixedLengthRecordDataset: 來自一個或多個二進

tensorflow-資料tf.data(2)

從簡單的、可重用的部分構建複雜的輸入管道。 例如,影象模型的管道可以聚合分散式檔案系統中檔案中的資料,對每個影象應用隨機擾動,並將隨機選擇的影象合併成一批進行訓練。文字模型的管道可能包括從原始文字資料中提取符號,將它們轉換為嵌入查詢表的識別符號,以及將不同長度的序列批處理在一起。 tf.data API使

hbase 資料流程----文字簡介

hbase讀取資料流程 0、client發出請求 1、訪問zk 2、zookeeper返回-ROOT-表所在的資訊,返回的是位置資訊 -ROOT-表中儲存了.META表的元資料資訊 .META表儲存了Region的元資料 -ROOT-:只對應一個region,不能切分,通過-ROOT-表可以

Unity下關於C#的檔案一(基於TXT的簡單)

Unity下關於C#的檔案讀寫(基於TXT和LitJson) NOTE (基本認識):其實.txt,.xml,.json這類檔案都屬於文字檔案,類似的還有.lrc歌詞檔案,.ini配置檔案,.reg登錄檔檔案等等,這類檔案所儲存的內容都是文字(即為字串),

tensorflow-資料最佳程式碼組合方式

最佳組合程式碼模式為: # Create the graph, etc. init_op = tf.global_variables_initializer() # Create a session for running operations in the Graph. sess = tf.Sessio

[原始碼和文件分享]程式設計實現對硬碟全盤資料進行資料擦除

背景 在 XP 系統下下,我們可以直接呼叫 WirteFile 函式對磁碟寫入資料,但到了 Windows 7 以及 Windows 7 版本以上的系統,就已經開始變得不那麼簡單了。 在 Windows 7 及以上版本中,對檔案系統和儲存堆疊進行的更改,限制對磁碟和卷的直接訪問,但是,在以下

STM32CubeMX學習教程之十:硬體I2CAT24C02

完整原始碼下載:https://github.com/simonliu009/STM32CubeMX-hardware-I2C-AT24C02網上有流傳已久一種說法,就是STM的I2C有bug,不好用。確實很多人在實際應用中都遇到了各種問題,所以絕大部分人都是在用軟體模擬II

java資料總結

對於資料的讀寫java提供了專門的讀寫流DataInputStream和DataOutputStream形式進行讀寫,可以進行各種基本資料型別和字串以及UTF格式的陣列或者單個元素的讀寫。 ------------------------------------------

linux I2C應用程式

本文程式碼參考ZFZF294990051 童鞋的程式碼,非常感謝ZFZF294990051童鞋。 參考地址:http://blog.csdn.net/zfzf294990051/article/details/17322621 #include <stdio.h>

在安卓系統中資料

0.安卓儲存空間: 目錄結構在FileExplorer中檢視,可通過Windows/Show View/Others/FileExplorer開啟 內部儲存空間(internal storage):自帶的,必須有的 RAM記憶體:執行記憶體(電腦記憶體) ROM記憶體:儲存空間(電腦

C語言隨機資料檔案(二)

int fseek(FILE * fp, long offset, int fromWhere):設定檔案位置標記,方法引數說明: fp:FILE型別指標,該指標對應的檔案即是檔案位置標記所標記的檔案; offset:偏移量; fromWhere:偏移起始點,其值可以為SEEK_SET、SEEK