部分代碼如/* 本測試例程(滿量程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配置和狀態(tài)寄存器
{
u8 temp;
RN7302_CS=0;
SPI1_ReadWriteByte(wReg); //發(fā)送讀取寄存器地址
temp = (((u8)(wReg >> 4)) & 0xf0)^0xff + 0x10;
SPI1_ReadWriteByte(temp); //發(fā)送讀取寄存器地址
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配置和狀態(tài)寄存器
{
u8 num,temp;
u8 cs;
RN7302_CS=0;//開啟片選
temp = (u8)(wReg & 0x00ff);
SPI1_ReadWriteByte(temp); //發(fā)送讀取寄存器地址
temp = (((u8)(wReg >> 4)) & 0xf0) + 0x80;
SPI1_ReadWriteByte(temp); //發(fā)送讀取寄存器地址
cs=wReg+temp;
delay_us(10);
for(num=0;num<DatLen;num++)
{
SPI1_ReadWriteByte(pBuf[num]);
cs+=pBuf[num];
}
cs=~cs;//0xFA
SPI1_ReadWriteByte(cs);//發(fā)送cs
RN7302_CS=1;//關閉片選
}
全部程序51hei下載地址:
RN7302測試例程-stm32.7z
(189.49 KB, 下載次數: 273)
2019-7-26 02:45 上傳
點擊文件名下載附件
|