资源简介
锐能微电能计量芯片,damo例程。三相计量芯片RN7302。
代码片段和文件信息
#include “RN7302_Demo.h“
__no_init sDl645StruDataComm_TypeDef Dl645RN7302DataComm;
__no_init sDl645FrontTmp_TypeDef Dl645FrontTmp;
__no_init sDl645Front_TypeDef Dl645Front;
__no_init sDl645Eg_TypeDef Dl645Eg;
__no_init sDl645FirmParaFile_TypeDef Dl645FirmPara;
//底层函数
u8 fnSpi2_ReadByte(void)
{
u8 itemp=0;
for(i=0;i<8;i++)
{
temp<<=1;
PinWrite_ADSCLK(1);
PinWrite_ADSCLK(1);
fnDelay2us();
fnDelay2us();
fnDelay2us();
fnDelay2us();
PinWrite_ADSCLK(0);
PinWrite_ADSCLK(0);
fnDelay2us();
fnDelay2us();
fnDelay2us();
fnDelay2us();
if (PinRead_ADSDI()){temp=temp+0x1;}
fnDelay2us();
fnDelay2us();
fnDelay2us();
}
return temp;
}
//////////////////////////////////////////////////////////////////////////
void fnSpi2_WriteByte(u8 Dat)
{
u8 i;
for(i=0;i<8;i++)
{
PinWrite_ADSCLK(1);
PinWrite_ADSCLK(1);
fnDelay2us();
fnDelay2us();
if(Dat & 0x80)
{
PinWrite_ADSDO(1);
PinWrite_ADSDO(1);
fnDelay2us();
fnDelay2us();
fnDelay2us();
}
else
{
PinWrite_ADSDO(0);
PinWrite_ADSDO(0);
fnDelay2us();
fnDelay2us();
fnDelay2us();
}
PinWrite_ADSCLK(0);
PinWrite_ADSCLK(0);
fnDelay2us();
fnDelay2us();
fnDelay2us();
Dat <<= 1;
}
PinWrite_ADSDO(1);
PinWrite_ADSDO(1);
fnDelay2us();
fnDelay2us();
fnDelay2us();
}
//存储器写入函数
ErrorStatus fnMemory_Write(u32 Dst u8 *Src u32 DatLen)
{
ErrorStatus err;
if( (FM24C_START_ADDR <= Dst) &&
( (Dst + DatLen) < (FM24C_START_ADDR + FM24C_SIZE) ) )
{
#if !DL645SOFT_DEBUG
err = fnFM24CXX_Write(Dst- FM24C_START_ADDR Src DatLen 3);
if(err==ERROR) Dl645Bkgrd.PubData.EventErr[5]=BKGRD_EVENTERR_INTERMEMORY;
else Dl645Bkgrd.PubData.EventErr[5]=BKGRD_EVENTERR_OK;
#endif
}
else if( (AT45DB_START_ADDR <= Dst) &&
( (Dst + DatLen) < (AT45DB_START_ADDR + AT45DB_SIZE) ) )
{
#if !DL645SOFT_DEBUG
err = fnAT45DBXX_Write( Dst - AT45DB_START_ADDR Src DatLen 3);
if(err==ERROR) Dl645Bkgrd.PubData.EventErr[5]=BKGRD_EVENTERR_INTERMEMORY;
else Dl645Bkgrd.PubData.EventErr[5]=BKGRD_EVENTERR_OK;
#endif
}
else
{
err = ERROR;
Dl645Bkgrd.PubData.EventErr[5]=BKGRD_EVENTERR_INTERMEMORY;
}
return(err);
}
//存储器读取函数
ErrorStatus fnMemory_Read(u8 *Dst u32 Src u32 DatLen)
{
ErrorStatus err;
if( (FM24C_START_ADDR <= Src) &&
( (Src + DatLen) < (FM24C_START_ADDR + FM24C_SIZE) ) )
{
#if !DL645SOFT_DEBUG
err = fnFM24CXX_Read(Dst Src - FM24C_START_ADDR DatLen 3);
if(err==ERROR) Dl645Bkgrd.PubData.EventErr[5]=BKGRD_EVENTERR
- 上一篇:微信小程序云开发-数据库添加分页列表删除
- 下一篇:Proteus 时钟显示仿真
相关资源
- 三相直流无刷电机驱动电路
- PSCAD内外环控制逆变器模型 三相逆变
- SVPWM三相并网逆变器仿真
- SVPWM_RCFilter.slx
- 三相逆变器SVPWM.rar
- 三相逆变器仿真
- 电表645协议
- 单片机相序判断三相相序判断
- 国网单相智能电表设计
- 西门子s7-200自由口与多功能电表DLT6
- 程序判别三相电压相序错误的方法
- proteus三相整流电路
- 使用数字电流传感器进行功耗和能耗
- 电力系统电表开发源码
- 三相异步电动机星形---三角形降压启
- stm32实现电表电量采集
- 三相光伏逆变并网
- 应用矢量分析方法导出三相交流电动
- 一款基于DSP的三相SPWM变频电源电路的
- 大屯能源公司节能降耗工作初探
- FRAM占领医疗领域和智能电表行业
- DL_T645电表报文计算器
- DL/T645-2007电表通讯协议解析工具
- Q/GDW 357-2009《0.2S级三相智能电能表技
- Q/GDW 358-2009《0.5S级三相智能电能表技
- Q / GDW 1827 — 2013 三相智能电能表
- DLT645-2007 多功能电能表通信协议.pdf
- 基于STM32f103RC的三相SPWM波.rar
- Q/GDW 1376.1-2013国网电表终端测试软件
- 国网三相电能计量芯片ATT7022EU参考驱
评论
共有 条评论