stm32的IIC知识点

当向EEPROM写数据的时候,EEPROM会发送应答;

当向EEPROM读数据时,读到数据时要向EEPROM发送应答,这部分是我们写的


以下为模拟的IIC通信代码,好复杂

#include "sys.h"


#ifndef __IIC_H
#define  __IIC_H


#include "sys.h"
// ÀûÓÃGPIOÄ£ÄâIICͨÐÅ
#define uchar unsigned char

#define SDA_IN() {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=0<<9*2;}
#define SDA_OUT() {GPIOB->MODER&=~(3<<(9*2));GPIOB->MODER|=1<<9*2;}

// the define of port
#define IIC_SCL PBout(8)
#define IIC_SDA PBout(9)
#define READ_SDA PBin(9)







//void Time_delay();  // use the sysTick ,Finished just a moment
void delay(void);
void start(void);
void stop(void);
void Write_Byte(uchar data); // the function of write byte(change the SDA)
uchar Read_Byte(uchar uch );  // the function of read byte(from SDA)
void Write_Add(uchar writeadd,uchar readdata);
uchar Read_Add(uchar readadd);
uchar respons(void);// get the acknowage or NO acknowage
void init(void);    // two lines are high when bus is free
void IIC_init(void);
void led_init(void);
void ACK(void);
void NACK(void);




#endif

以上为.h文件

以下为.h文件



void IIC_init(){// PB8 PB9
GPIO_InitTypeDef GPIO_InitStruct;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);

GPIO_InitStruct.GPIO_Mode=GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9;
GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_InitStruct.GPIO_Speed=GPIO_Fast_Speed;


  GPIO_Ini

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一枚努力的程序猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值