久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
RN7302測試例程
[打印本頁]
作者:
anerhuang
時間:
2022-8-6 13:48
標題:
RN7302測試例程
RN7302測試例程,全網不多的RN7032測試源碼,值得參考。
單片機源程序如下:
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "spi.h"
/* 本測試例程(滿量程40A)針對1000:1電流互感器進行簡易校表,offset校正,并輸出ABC三相電流有效值。*/
/* A5--->RN7302_SCK */
/* A6--->RN7302_SDO */
/* A7--->RN7302_SDI */
#define RN7302_CS PAout(4) //RN7302_CS 使能
u8 RN7302_Read(u16 wReg,u8 *pBuf) //00計量參數寄存器,01配置和狀態寄存器
{
u8 temp;
RN7302_CS=0;
SPI1_ReadWriteByte(wReg); //發送讀取寄存器地址
temp = (((u8)(wReg >> 4)) & 0xf0)^0xff + 0x10;
SPI1_ReadWriteByte(temp); //發送讀取寄存器地址
delay_us(10);
pBuf[0]=SPI1_ReadWriteByte(0xff);
pBuf[1]=SPI1_ReadWriteByte(0xff);
pBuf[2]=SPI1_ReadWriteByte(0xff);
pBuf[3]=SPI1_ReadWriteByte(0xff);
RN7302_CS=1;
return(1);
}
void RN7302_Write(u16 wReg,u8 *pBuf,u8 DatLen) //00計量參數寄存器,01配置和狀態寄存器
{
u8 num,temp;
u8 cs;
RN7302_CS=0;
temp = (u8)(wReg & 0x00ff);
SPI1_ReadWriteByte(temp); //發送讀取寄存器地址
temp = (((u8)(wReg >> 4)) & 0xf0) + 0x80;
SPI1_ReadWriteByte(temp); //發送讀取寄存器地址
cs=wReg+temp;
delay_us(10);
for(num=0;num<DatLen;num++)
{
SPI1_ReadWriteByte(pBuf[num]);
cs+=pBuf[num];
}
cs=~cs;
SPI1_ReadWriteByte(cs);
RN7302_CS=1;
}
int main(void)
{
u32 num0=0;
u8 k[5]={0},f=0;
delay_init(); //延時函數初始化
NVIC_Configuration(); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
uart_init(115200); //串口初始化為9600
LED_Init(); //LED端口初始化
SPI1_Init();
GPIOSet();
k[0]=0xe5;
RN7302_Write(0x0180,k,1); // 寫使能位
k[0]=0xa2;
RN7302_Write(0x0181,k,1); // 切換到EMM配置寄存器
k[0]=0xfa;
RN7302_Write(0x0182,k,1); // 復位
delay_ms(500);
k[0]=0xe5;
RN7302_Write(0x0180,k,1);
k[0]=0xa2;
RN7302_Write(0x0181,k,1);
k[0]=0x77;
k[1]=0x77;
k[2]=0x77;
RN7302_Write(0x0162,k,3); //EMU 控制寄存器
k[0]=0x25;
k[1]=0x78;
RN7302_Write(0x0100,k,2); //HFConst1 ,高頻脈沖計數寄存器 1
RN7302_Write(0x0101,k,2); //HFConst2 ,高頻脈沖計數寄存器 1
k[0]=0x01;
k[1]=0xD5;
RN7302_Write(0x0102,k,2); //IStart_PS ,有功視在啟動電流閾值寄存器
RN7302_Write(0x0103,k,2); //IStart_Q ,無功啟動電流閾值寄存器
k[0]=0x14;
k[1]=0xfb;
RN7302_Write(0x0104,k,2); //LostVoltT ,失壓閾值寄存器
k[0]=0x00;
k[1]=0x49;
RN7302_Write(0x0105,k,2); //ZXOT ,過零閾值寄存器
k[0]=0x00;
k[1]=0x04;
k[2]=0x0b;
RN7302_Write(0x0158,k,3); //SAGCFG ,電壓暫降閾值配置
k[0]=0x47;
k[1]=0x33;
RN7302_Write(0x0159,k,2); //OVLVL ,過壓閾值配置
k[0]=0x65;
k[1]=0x32;
RN7302_Write(0x015a,k,2); //OILVL ,過流閾值配置
k[0]=0x0F;
k[1]=0x21;
k[2]=0x00;
RN7302_Write(0x0161,k,3);/*******************************************************************/
//k[0]=0x00;
//k[1]=0x00;
//RN7302_Write(0x0118,k,2);
k[0]=0x17;
k[1]=0x01;
RN7302_Write(0x0113,k,2); //GSUA ,采樣通道 UA 通道增益
RN7302_Write(0x0114,k,2); //GSUB ,
RN7302_Write(0x0115,k,2); //GSUC ,
k[0]=0x86;
k[1]=0x0d;
RN7302_Write(0x0116,k,2); //GSIA ,采樣通道 IA 通道增益
RN7302_Write(0x0117,k,2); //GSIB ,
RN7302_Write(0x0118,k,2); //GSIC ,
k[0]=0x8A;
RN7302_Write(0x010C,k,1); //PHSUA ,采樣通道 UA 相位校正寄存器
RN7302_Write(0x010D,k,1); //PHSUB ,
RN7302_Write(0x010E,k,1); //PHSUC ,
k[0]=0x80;
k[1]=0x80;
k[2]=0x80;
RN7302_Write(0x010f,k,3);
RN7302_Write(0x0110,k,3);
RN7302_Write(0x0111,k,3);
//空載電壓有效值小數校準(OFFSET)
k[0]=0x00;
k[1]=0x00;
RN7302_Write(0x0121,k,2);
RN7302_Write(0x0122,k,2);
RN7302_Write(0x0123,k,2);
//空載電流有效值小數校準(OFFSET)
k[0]=0xff;
k[1]=0xf0;
RN7302_Write(0x0124,k,2);
RN7302_Write(0x0125,k,2);
RN7302_Write(0x0126,k,2);
//k[0]=0x00;
//k[1]=0x00;
//RN7302_Write(0x0131,k,2);
//RN7302_Write(0x0132,k,2);
//RN7302_Write(0x0133,k,2);
//RN7302_Write(0x0128,k,2);
//RN7302_Write(0x0129,k,2);
//RN7302_Write(0x012a,k,2);
//RN7302_Write(0x012b,k,2);
//RN7302_Write(0x012c,k,2);
//RN7302_Write(0x012d,k,2);
//RN7302_Write(0x012e,k,2);
//RN7302_Write(0x012f,k,2);
//RN7302_Write(0x0130,k,2);
//// 通道功率OFFSET校正
//RN7302_Write(0x0137,k,2);
//RN7302_Write(0x0138,k,2);
//RN7302_Write(0x0139,k,2);
k[0]=0x42;
RN7302_Write(0x0184,k,1);
k[0]=0x00;
RN7302_Write(0x0185,k,1);
k[0]=0x00;
RN7302_Write(0x0184,k,1);
k[0]=0x04;
k[1]=0x32;
k[2]=0x10;
RN7302_Write(0x0160,k,3);
// 清空采樣數據緩存區
k[2]=0x10;
RN7302_Write(0x0163,k,3);
// 寫保護
k[0]=0xdc;
RN7302_Write(0x0180,k,1);
while(1)
{
delay_ms(500);
RN7302_Read(0x000B,k);
num0=((0x00000000|k[0]<<24|k[1]<<16|k[2]<<8|k[3])&0x0fffffff)/160;
printf("IA_Reg=%02x%02x%02x%02x IA =%.3f \r\n",k[0],k[1],k[2],k[3],num0/1000.000);
RN7302_Read(0x000C,k);
num0=((0x00000000|k[0]<<24|k[1]<<16|k[2]<<8|k[3])&0x0fffffff)/160;
printf("IB_Reg=%02x%02x%02x%02x IB =%.3f \r\n",k[0],k[1],k[2],k[3],num0/1000.000);
RN7302_Read(0x000d,k);
num0=((0x00000000|k[0]<<24|k[1]<<16|k[2]<<8|k[3])&0x0fffffff)/160;
printf("IC_Reg=%02x%02x%02x%02x IC =%.3f \r\n\r\n",k[0],k[1],k[2],k[3],num0/1000.000);
}
}
復制代碼
原理圖: 無
仿真: 無
Keil代碼下載(僅供參考,有錯誤求指教):
RN7302測試例程.7z
(186.87 KB, 下載次數: 55)
2023-7-22 15:19 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
JIANDANZXG
時間:
2023-7-22 10:39
啥玩楞,不推薦下載,沒有用
作者:
slzfqzh
時間:
2024-1-17 13:56
賺積分下載
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
一级黄色免费
|
国产欧美在线播放
|
欧美激情五月
|
青青青视频在线
|
www.黄色网
|
www.婷婷.com
|
亚洲欧美日韩另类
|
日韩精品一二区
|
韩日在线视频
|
精品久久久久久久久久久
|
亚洲欧美日韩另类
|
青青青在线视频
|
精品国产一区二区三区久久久蜜月
|
午夜在线观看免费视频
|
久久精品网
|
免费午夜视频
|
4虎最新网址
|
欧美日韩国产一区二区三区
|
亚洲国产日本
|
中文在线观看免费高清
|
久久久免费看
|
国产一区二区三区四区
|
4虎最新网址
|
九九国产
|
日本一本在线
|
国产精品二
|
日韩欧美中文在线
|
一区二区视频在线
|
www.日韩
|
国产一级在线
|
国产成人一区
|
久久免费精品视频
|
中文字幕99
|
免费在线观看黄色片
|
国产成人91
|
91亚洲精品乱码久久久久久蜜桃
|
成人国产精品久久久网站
|
日韩精品一级
|
亚洲成人a v
|
aaaaaa毛片
|
国产成人区
|