资源简介
8025T IIC驱动代码,可以参考一下,IIC驱动的编写及8025T的操作方式
代码片段和文件信息
#include “config.h“
//#include “p33FJ256MC710.h“
/***********************************************************************
** Time: liwenjin 2012.10
** Function:读取rx8025n内部寄存器
** Input:
** Output:
** Attention
***********************************************************************/
UINT16 rx8025_read_regs(BYTE Add BYTE ReadDatatLengthBYTE *Data)
{
BYTE ErrorCode;
// Add=Add<<4;//地址(高4位)加传送模式00(低四位)
IdleI2C(); //Wait for bus Idle
StartI2C(); //Generate Start condition
WriteI2C(0x64); //发送写控制命令0x64
IdleI2C(); //Wait for bus Idle
ErrorCode = ACKStatus(); //Return ACK Status
WriteI2C(Add); //Send High Address
IdleI2C(); //Wait for bus Idle
ErrorCode = ACKStatus(); //Return ACK Status
RestartI2C(); //Generate Restart
WriteI2C(0x65); //发送读控制命令
IdleI2C(); //Wait for bus Idle
ErrorCode = ACKStatus(); //Return ACK Status
getsI2C(DataReadDatatLength); //Read Length number of bytes to Data
NotAckI2C(); //send Not Ack
StopI2C(); //Send Stop Condition
return(ErrorCode);
}
/***********************************************************************
** Time: liwenjin 2012.10
** Function:写rx8025n内部寄存器
** Input: ControlByte Add *wrptr.
** Output: None
** Attention:先发命令地址,再发地址,最后发数据
***********************************************************************/
INT rx8025_write_regs(BYTE AddBYTE WriteDataLengthBYTE *wrptr)
{
BYTE ErrorCode;
// Add=Add<<4;//地址(高4位)加传送模式00(低四位)
IdleI2C(); //wait for bus Idle
StartI2C(); //Generate Start condition
WriteI2C(0x64); //send controlbyte for a write,0x64h
IdleI2C(); //wait for bus Idle
ErrorCode = ACKStatus(); //Return ACK Status
WriteI2C(Add); //send low address
IdleI2C(); //wait for bus Idle
ErrorCode = ACKStatus(); //Return ACK Status
putstringI2C(wrptrWriteDataLength); //send data
IdleI2C(); //wait for bus Idle
StopI2C(); //Generate Stop
return(ErrorCode);
}
/***********************************************************************
** Time: liwenjin 2012.10
** Function:从8025N获取时间
** Input:
** Output: None
** Attention:
***********************************************************************/
BYTE rx8025_get_time(strTIME *get_time)
{
BYTE date[7];
BYTE err;
err = rx8025_read_regs(RX8025_REG_SEC7date);
if (!err)return err; //err为0时表示错误,err=1表示正常接收
get_time->cSecond =(BYTE)bcd2bin(date[RX8025_REG_SEC]&0x7f);
get_time->cMinute =(BYTE)bcd2bin(date[RX8025_REG_MIN]&0x7f);
get_time->cHour = bcd2bin(date[RX8025_REG_HOUR] & 0x3f);
get_time->cDay = bcd2bin(date[RX8025_REG_MDAY] & 0x3f);
get_time->cMonth= bcd2bin(date[RX8025_REG_MONTH] & 0x1f);
get_time->sYear= bcd2bin(date[RX8025_REG_YEAR]);
}
/***********************************************************************
** Time: liwenjin 2012.10
** Function:校正8025N的时间
** Input:
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14676 2013-05-22 10:54 rx8025.c
文件 1916 2013-04-29 21:16 rx8025.h
----------- --------- ---------- ----- ----
16592 2
相关资源
- stm32 完整IIC通讯代码,三轴加速度计
- STM32F4读写SD2405实时时钟程序
- PIC单片机 IIC通信 proteus仿真文件图
- CC2530-ADXL345 IIC通信
- CC2530-HMC5883L通过I2C通信
- i2c的verilog实现
- STM32+SHT30(DS18B20)+0.96寸OLED(IIC)的
- STM32F103通过模拟IIC读取LIS3DH 解析数据
- 软件模拟IIC主从机
- IIC总线读写AT24C02BEEPROM源程序 有详细
- 51单片机1602+ADIIC+按键
- STC15+sht30
- stm32f103的PCF8563驱动代码
- STM8S003模拟IIC总线读取PCF8563
- 模拟IO,iic从机模式移植性强,串口中
- 关于pcf8591ad转换的iic读取数据模块
- 基于MSP430的UART串口控制机械臂
- 基于STM32F103的24m02芯片驱动代码
- 0.96英寸oled屏iic通讯中文说明.doc
- STM32 硬件IIC读取BH1750
- C51双机模拟IIC通信源代码.rar
- 51单片机模拟IIC协议读写EEPROM(24C02)
- STM32f103下的软IIC实现的BME280测温
- DSLogic_pro.iic
- BMP280最新IIC测试程序
- Verilog IIC ADT7420
- 51单片机多机通信类IIC方式
- 基于stm32f103c8t6的已实现模拟iic和模拟
- IIC用来获取9541的压差的气压数据
- AT24C08 EEPROM读写操作
评论
共有 条评论