中级会员
 
- 积分
- 264
- 金钱
- 264
- 注册时间
- 2019-3-26
- 在线时间
- 105 小时
|
发表于 2020-11-13 08:41:01
|
显示全部楼层
//IO方向设置
#define SDA_IN() {GPIOF->MODER&=~(3<<(0*2));GPIOF->MODER|=0<<0*2;}
#define SDA_OUT() {GPIOF->MODER&=~(3<<(0*2));GPIOF->MODER|=1<<0*2;}
//IO操作
#define IIC_SCL PFout(1) //SCL
#define IIC_SDA PFout(0) //SDA
#define READ_SDA PFin(0) //输入SDA
#define IIC_WP PFout(2) //写保护
#define EE_WP_ON IIC_WP=1; //开启写保护
#define EE_WP_OFF IIC_WP=0; //关闭写保护
//IIC初始化
void IIC_Init(void)
{
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_GPIOF_CLK_ENABLE();
GPIO_Initure.Pin=GPIO_PIN_1|GPIO_PIN_2;
GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;
GPIO_Initure.Pull=GPIO_PULLUP;
GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;
HAL_GPIO_Init(GPIOF,&GPIO_Initure);
GPIO_Initure.Pin=GPIO_PIN_0;
GPIO_Initure.Mode=GPIO_MODE_OUTPUT_OD;
GPIO_Initure.Pull=GPIO_PULLUP;
GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;
HAL_GPIO_Init(GPIOF,&GPIO_Initure);
IIC_SDA=1;
IIC_SCL=1;
IIC_WP=0;
} |
|