200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > stm32读取目标芯片_PCF8563时钟读取芯片程序 STM32

stm32读取目标芯片_PCF8563时钟读取芯片程序 STM32

时间:2020-06-12 20:44:40

相关推荐

stm32读取目标芯片_PCF8563时钟读取芯片程序 STM32

] = openwind_night[1];

tempCloseWind[0] = closewind_night[0];

tempCloseWind[1] = closewind_night[1];

}

}

/********************************************

写时间修改值

********************************************/

void P8563_settime(void)

{

u8 i;

for(i=2;i&lt=8;i++) { writeData(i,g8563_Store[i-2]); } //写含小时之后时间

//writeData(6,g8563_Store[3]); //写星期

}

/********************************************

P8563的初始化-----外部调用

********************************************/

void P8563_init(void)

{

u8 i;

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

/*--Config EEPROM SCL GPIO--*/

GPIO_InitStructure.GPIO_Pin = PCF_SCL;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(PCF_Part,&GPIO_InitStructure);

/*--Config EEPROM SDA GPIO--*/

GPIO_InitStructure.GPIO_Pin = PCF_SDA;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(PCF_Part,&GPIO_InitStructure);

if((ReadData(0x02)&0x7f)==0x8) /* 检查是否第一次启动,是则初始化时间,检查对象为秒

//(0x02)最高位为1则初始化*/

{

for(i=0;i&lt=6;i++) g8563_Store[i]=c8563_Store[i]; /*初始化时间*/

P8563_settime();

P8563_settime();

}

}

/********************************************

把时间数据形式转库十进制

***********************************************/

u8 convert_time(u8 x)

{

return (x&gt&gt4)*10+(x&0x0f);

}

/******************

修改时间,并将修改后的时间写入rtc

**********************/

void Set_time(void)

{

g8563_Store[6] = ((rtc_num[0] / 10) &lt&lt 4) + rtc_num[0] % 10;

g8563_Store[5] = ((rtc_num[1] / 10) &lt&lt 4) + rtc_num[1] % 10;

g8563_Store[3] = ((rtc_num[2] / 10) &lt&lt 4) + rtc_num[2] % 10;

g8563_Store[2] = ((rtc_num[3] / 10) &lt&lt 4) + rtc_num[3] % 10;

g8563_Store[1] = ((rtc_num[4] / 10) &lt&lt 4) + rtc_num[4] % 10;

g8563_Store[0] = ((rtc_num[5] / 10) &lt&lt 4) + rtc_num[5] % 10;

P8563_settime();

}

/***************************************

功能:SDA设置为浮空输入

****************************************/

void PCF8653_I2C_InputConfig(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = PCF_SDA; //SDA浮空输入

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(PCF_Part, &GPIO_InitStructure);

}

/***************************************

功能:FRAM_I2C设置为推挽输出

****************************************/

void PCF8653_I2C_OutputConfig(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = PCF_SDA; //SDA推挽输出

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(PCF_Part, &GPIO_InitStructure);

}

void delay_us(int m)

{

int i,j;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。