资源简介
锐能微电能计量芯片,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 时钟显示仿真
相关资源
- 200PLC与电表自由口通讯程序.mwp
- 数字控制矿用应急电源三相逆变器的
- 基于剪切面能耗等效原理的根土加筋
- 一种基于FPGA的三相锁相环设计方法
- 三相四线制有源滤波器的无差拍控制
- LCL滤波器在三相PWM整流器中的应用
- IC卡电表及用电信息管理系统.rar
- 人民电器电表modbus rtu通信协议解析
- 电表管理系统.exe
- 三相交错并联BoostDC_DC变换器设计与研
- 基于pq谐波电流检测的三相三线制有源
- 矿用三相鼓风机变频调速系统的研究
- 三相PWM整流器电压环H_∞鲁棒控制
- 三相H桥级联逆变器的错时采样单周期
- FT8213Q三相BLDC应用参考电路图资料
- 一种基于LBM的气液固三相流多尺度模
- 实现三相不控整流电路的PFC设计分析
- 智能电表协议规约调试工具
- 虚拟表软件支持97和07电表切换
- 三相功率因数校正
- 三相电压型PWM整流器PI调节器参数整定
- 基于stm32的三相逆变代码
- DLT645规约测试软件 与 虚拟电表
- DLMS 62056全套多功能电表通信规约中文
- 645电表调试软件(兼容97与07规约)
- 645-97标准协议电表抄表软件
- 多功能串口助手 DLT645/DLT698.45软件 模
- 基于DDS的三相正弦波发生器
- 多功能电表软件系统设计
- DL/T645-2007测试软件 抄表工具 电表通讯
评论
共有 条评论