#ifndef __MYIIC_H_#define __MYIIC_H_#include "common.h"#include "delay.h"#include "debugserial.h"//sda 027 scl 028//IO方向設(shè)置#define IIC1_SDA_IN() P0dir(27) = 0#define IIC1_SDA_OUT() P0dir(27) = 1//I
從書上看到STM32的硬件IIC遠(yuǎn)沒有硬件SPI好用,書上給的例子也是模擬IIC的,因為之前只用過51的準(zhǔn)雙向口控制過簡單的IIC器件,所以好好看了下。IIC總線是由數(shù)據(jù)線SDA和時鐘線SCL兩條線構(gòu)成的通信線路,既可以發(fā)送數(shù)據(jù)
在用STM32F103模擬IIC時,SDA的配置很有意思,既要讀數(shù)據(jù),又要寫數(shù)據(jù),這兩者之間的切換通過GPIO的配置寄存器來實現(xiàn)。#define SDA_IN() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=8CRL|=3CRL|=87)IIC_SDA_H;elseIIC_SDA
最近用到測量光線的模塊BH1750FVI時需要用到IIC總線操作, 于是就又費(fèi)功夫?qū)W習(xí)了下, 基本上算是了解了, 所以呢, 就用51的IO口, 模擬出了總線時序, 并能正確操縱需要用IIC總線訪問地一系列模塊. 本來想寫篇文章簡單介紹
I2C總線是Philips公司提出的一種集成電路IC器件之間相連接的總線協(xié)議,其目的是使電子系統(tǒng)(不只 限于單片機(jī)系統(tǒng))各個IC器件之間的連線變得容易。因為使用傳統(tǒng)的并行總線在IC器件之間連接,往往會使得IC之間連線較多
/******************************************************************************************* 函數(shù)名稱 :I2C_Delay* 功能描述 :* 參數(shù) : 參數(shù)名稱:輸入/輸出?類型描述** 返回值 :* 作者 :* 創(chuàng)建日期 :2
以前只用51做過AT24C02,后來才接觸到容量更大的型號,發(fā)現(xiàn)了很多和以前的不一致的東西,現(xiàn)總結(jié)如下。在上一篇博客中已經(jīng)寫好了STM32用IO口模擬IIC的基本驅(qū)動代碼,下面結(jié)合數(shù)據(jù)手冊用上一篇博客提到的函數(shù)編寫AT24C
板子上設(shè)置了EEPROM存儲器,型號為AT24C02。板子的硬件連接為:SCL--->P2.4,SDA--->P2.5。直接了當(dāng),貼上程序!========================24cxx.h文件=========================#ifndef_24CXX_H_#define_24CXX_H_#in