资源简介
只要定义SCL,SDA两个端口,可以从指定地址读写少于256个字节的内容,长期应用验证,方便使用。
代码片段和文件信息
#include “config.h“
#ifdef C51
#define I2CWAIT _nop_();_nop_();_nop_();_nop_();_nop_()
void Start_I2c()
{
SDA=1;_nop_();
SCL=1;I2CWAIT;
SDA=0;I2CWAIT;
SCL=0;
}
bit Stop_I2c()
{
SDA=0;I2CWAIT;
SCL=1;I2CWAIT;
SDA=1;_nop_();
return SDA;
}
bit SendByte(unsigned char c)
{
unsigned char i = 9;
bit rr;
do
{
SCL = 0;
SDA = (bit)(c & 0x80);
c = (c << 1) + 1;
I2CWAIT;
SCL = 1;
I2CWAIT;
} while(--i);
rr = SDA;
SCL = 0;
return rr;
}
unsigned char RcvByte(bit ack)
{
unsigned char ci = 8;
SDA = 1;
do
{
I2CWAIT;
SCL = 1;
I2CWAIT;
c <<= 1;
if (SDA) c++;
SCL = 0;
} while(--i);
SDA = ack;
I2CWAIT;
SCL = 1;
I2CWAIT;
SCL = 0;
I2CWAIT;
return c;
}
bit SetAddr(unsigned char slaunsigned char subabit rw)
{
sla &= 0x07;
sla <<= 1;
if (rw)
sla |= 0xa1;
else
sla |= 0xa0;
Start_I2c();
if (SendByte(sla)) return
- 上一篇:2020全国大学生数学建模竞赛评阅要点:A题
- 下一篇:电子密码锁设计 数字逻辑
相关资源
- I2C读写AT24C02 基于STM32F103 cube116540
- 用DIO 做的I2C程式
- I2C总线接口设计
- 8051F040SMBUS多机通信
- DHT10_I2C驱动.zip
- I2C串行EEPROM应用系统的健壮性设计
- 电子-GravityI2C3.7V锂电池电量计stm32L1
- arduino主机,stm8从机。I2C测试 。每次
- 10位ADC转换器AD5612(stm32_IO口模拟I2C)
- (带有源代码)基于FPGA的模拟I2C接口
- I2C-verilog-(非常详细的i2c学习心得)
- stm32f103iic读取AT24XX全系eeprom
- 分享一个0.96的oled显示驱动,软件模拟
- DAC8571_I2C模式_STM32
- STM32F4 I2C从机中断
- ADS1110stm32驱动自带I2C驱动
- STM32F103C8 例程
- stm32 I2C主从机模式控制代码
- 基于STM32F103硬件I2C读写24Cxx驱动代码的
- Ginkgo_USB-I2C_Classic_Setup_v2.9.2.zip
- I2C从设备接收数据verilog代码实现
- CH341-I2C-labview-应用说明+VI-所有版本都
- Delphi2CPP 和注册机
- STM32_MPU6050DMP硬件I2C读取欧拉角
- 基于FPGA的EEPROM读写系统
- 用stm32硬件I2C和模拟I2C读写EEPROM
- 利用STM32硬件I2C使用加速度传感器AD
- STM32与HTU21的I2C通讯源码
- stm32f103硬件I2C主从通信
- sht20 程序
评论
共有 条评论