stm8f003读24C64程序

#include “iic.h”

//PB4,PB5 悬浮输入
static void IIC_GPIO_Init(void)
{
GPIOB->DDR &= 0xcf;
GPIOB->CR1 &= 0xcf;
GPIOB->CR2 &= 0xcf;
}

void IIC_Master_Init(void)
{
CLK->PCKENR1 |= 0x01; //使能IIC外设时钟

IIC_GPIO_Init();

I2C->CR1 = 0x00;							//允许时钟延展,禁止广播呼叫,禁止iic
I2C->FREQR = 0x01;						//输入时钟频率8MHz
I2C->OARH = 0x40;						//七位地址模式
I2C->OARL = 0xa0;						//自身地址0xa0
I2C->CCRL = 0xff;						//
I2C->CCRH = 0x00;						//标准模式
I2C->TRISER = 0x02;
I2C->CR1 |= 0x01;						//使能iic外设

}

void IIC_24C02_Write_Byte(u8 Address, u8 Data)
{
u8 temp = 0;
while((I2C->SR3 & 0x02) != 0); //等待IIC总线空闲
IIC_Start();
while((I2C->SR1 & 0x01) == 0); //EV5,起始信号已经发送
I2C->DR = (Add_24C02 & 0xfe); // 发送iic从器件物理地址,最低位0,写操作
while((I2C->SR1 & 0x02) == 0); //地址已经被发送
temp = I2C->SR1; //清除ADDR标志位
temp = I2C->SR3;
while((I2C->SR1 & 0x80) == 0); //等待发送寄存器为空
I2C->DR = Address; //发送要写入24C02的空间地址
while((I2C->SR1 & 0x04) == 0); //等待发送完成
while((I2C->SR1 & 0x80) == 0); //等待发送寄存器为空
I2C

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZCY5202015

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值