• 大小: 4KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: 其他
  • 标签: PCF856  STM32  IIC  

资源简介

PCF8563驱动代码,基于stm32f103,使用软件iic,可读写时间

资源截图

代码片段和文件信息

#include “bsp_iic.h“
#include “usart.h“
#include “bsp_SysTick.h“
#include 

 /******************************************************************************
  * @file    bsp_iic.c
  * @author  Tanch
  * @version V1.0.0
  * @date    03/10/2019
  * @brief   软件IIC
  ******************************************************************************/
  
  
  
 /******************************************************************************
  * @name:  IIC_Start
  * @param: none
  * @note:  IIC启动信号
  * @retval:none
  ******************************************************************************/
void IIC_Start(void)
{
SDA_OUT();
PCF8563_SDA(1);
PCF8563_SCL(1);
SysTick_Delay_Us(4);
PCF8563_SDA(0);
SysTick_Delay_Us(4);
PCF8563_SCL(0);
SysTick_Delay_Us(4);
}

 /******************************************************************************
  * @name:  IIC_Stop
  * @param: none
  * @note:  IIC停止信号
  * @retval:none
  ******************************************************************************/
void IIC_Stop(void)
{
SDA_OUT();
PCF8563_SDA(0);
PCF8563_SCL(0);
SysTick_Delay_Us(4);
PCF8563_SCL(1);
PCF8563_SDA(1);
SysTick_Delay_Us(4);
}

 /******************************************************************************
  * @name:  IIC_WaitAck
  * @param: none
  * @note:  IIC等待响应
  * @retval:0-正确应答 1-无器件响应
  ******************************************************************************/
uint8_t IIC_WaitAck(void)
{
uint8_t ucErrTime = 0;
PCF8563_SDA(1);
SDA_IN();

SysTick_Delay_Us(1);
PCF8563_SCL(1);
SysTick_Delay_Us(1);
while(READ_SDA_IN_STATE)
{
ucErrTime++;
if( ucErrTime > 250)
{
IIC_Stop();
return 1;
}
}
PCF8563_SCL(0);
SysTick_Delay_Us(4);
return 0;
}

/******************************************************************************
  * @name:  IIC_Ack
  * @param: none
  * @note:  产生一个IIC ARC信号
  * @retval:none
  ******************************************************************************/
void IIC_Ack(void)
{
PCF8563_SCL(0);
SDA_OUT();
PCF8563_SDA(0);

SysTick_Delay_Us(2);
PCF8563_SCL(1);
SysTick_Delay_Us(2);
PCF8563_SCL(0);
}

/******************************************************************************
  * @name:  IIC_NAck
  * @param: none
  * @note:  不产生IIC ARC信号
  * @retval:none
  ******************************************************************************/
void IIC_NAck(void)
{
PCF8563_SCL(0);
SDA_OUT();
PCF8563_SDA(1);
SysTick_Delay_Us(2);
PCF8563_SCL(1);
SysTick_Delay_Us(2);
PCF8563_SCL(0);
}
/******************************************************************************
  * @name:  IIC_Send_Byte
  * @param: dat:要发送的8bit数据
  * @note:  IIC发送数据
  * @retval:none
  ******************************************************************************/
void IIC_Send_Byte(unsigned char dat)
{
uint8_t t;
SDA_OUT();
PCF8563_SCL(0);
for(t=0;t<8;t++)
{
if( (dat&0x80)>>7 )

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1533  2019-03-10 22:25  bsp_iic.h
     文件        5599  2019-03-10 22:32  pcf8563.c
     文件        1085  2019-03-10 22:31  pcf8563.h
     文件        4567  2019-03-10 22:25  bsp_iic.c

评论

共有 条评论