下载此文档

STM对时钟芯片PCF的编程精编.docx


文档分类:通信/电子 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
Lele was written in 2021
STM对时钟芯片PCF的编程精编
这是用STM32对PCF8563编程的程序、模拟IIC,经验证可用~
移植用到的文件: ,我把它们全都复制到了这个Word文档里。
使用要初始化的函数:void PCF8563_Init(void). 就唯一这个。
全局变量: u8 PCF8563_Time[7]; 程序初始的值是给PCF8563设置的时间,程序中读取返回的值是PCF8563当时的时间。
我这里使用的IIC的 SCL,SDA的引脚分别为 , 具体看 和 。 只要修改好两个引脚的初始化配套你手上的板子这,就能成功移植~
Delay_nus(20):这是一个延迟20us的函数。

#ifndef _IIC_H_
#define _IIC_H_
#include "32f"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/*#define I2C_Speed 100000
#define I2C1_SLAVE_ADDRESS7 0xA0
#define I2C_PageSize 256 */
2C2C2C1,2,3这三行不可缺少
delay_nus(20);
SCL_H();
delay_nus(20);
SDA_H();
delay_nus(20);
}
void IIC_WaitAck(void)
{
u16 k;
SCL_L();
SDA_H();
delay_nus(20);
SCL_H();
k = 0;
while((Read_SDA()!= 0) && (k < 60000))k++;
delay_nus(20);
SCL_L();
delay_nus(20);
}
void IIC_WriteByte(u8 byte)
{
u8 i = 0;
for(i = 0; i < 8; i++)
{
SCL_L();
delay_nus(20);
if(byte & 0x80)
{
SDA_H();
}
else
{
SDA_L();
}
delay_nus(20);
SCL_H();
delay_nus(20);
byte<<=1;
}
SCL_L();
delay_nus(20);
}
u8 IIC_ReadByte(void)
{
u8 i,ReadByte;
SDA_H();
for(i = 0; i < 8; i++)
{
ReadByte <<= 1;
SCL_L();
delay_nus(20);
SCL_H();
delay_nus(20);
if(Read_SDA())
{
ReadByte |= 0x01;
}
else
{
ReadByte &= ~(0x01);
}

}
return ReadByte;
}
void I2C_Ack(void)
{
SCL_L();
delay_nus(20);
SDA_L();
delay_nus(20);
SCL_H();
delay_nus(20);
SCL_L();
delay_nus(20);
}
void I2C_NoAck(void)
{
SCL_L();
delay_nus(20);
SDA_H();
delay_nus(20);
SCL_H();
delay_nus(20);
SCL_L();
delay_nus(20);
}
:

STM对时钟芯片PCF的编程精编 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人王小春
  • 文件大小173 KB
  • 时间2021-05-14