硬件平台:STM32F407ZGT6
软件平台:Keil4
本文主要记录调试STM32硬件IIC实现读取DS3231的代码,新手上路请多多包涵。
DS3231初始化函数:
void DS3231_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
I2C_InitTypeDef I2C_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE); //打开GPIOB口的时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE); //打开IIC外设时钟
GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_I2C1); //开启PB6的复用功能连接至I2C1
GPIO_PinAFConfig(GPIOB,GPIO_PinSource7,GPIO_AF_I2C1);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6 | GPIO_Pin_7; //选择PB6和PB7引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //开启PB6和PB7的复用功能
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; //PB6和PB7设置为开漏输出
GPIO_Init(GPIOB, &GPIO_InitStructure);
//I2C_DeInit(I2C1); //将外设IIC的各个寄存器恢复到复位以后的值
I2C_AcknowledgeConfig(I2C1,ENABLE); //在接收到一个字节后返回一个应答ACK
I2C_InitStructu