标题: 基于STM32的RN8302B简单测试例程 [打印本页]

作者: liangfen1994    时间: 2019-7-25 21:59
标题: 基于STM32的RN8302B简单测试例程
部分代码如/*        本测试例程(满量程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;//0xFA
        SPI1_ReadWriteByte(cs);//发送cs
        RN7302_CS=1;//关闭片选        
}

全部程序51hei下载地址:
RN7302测试例程-stm32.7z (189.49 KB, 下载次数: 273)

作者: liwanxi    时间: 2019-9-12 16:33
好资料,51黑有你更精彩!!!
作者: yumengsong    时间: 2019-11-9 17:20
为什么打不开工程呢?
作者: hasia    时间: 2020-6-18 15:19
很好,急需要这个呢。谢谢
作者: lrc000    时间: 2021-7-31 15:01
为什么是7302呢?
作者: xylove51    时间: 2022-1-24 11:39
对于刚接RN系列IC的有很大帮助!谢谢楼主的分享!
作者: sfd123    时间: 2022-1-26 16:11
做计量真不是了解一个芯片那么简单!
作者: zhaoqianzhi    时间: 2024-1-11 17:41
感谢博主分享,很有参考意义
作者: 你树哥哥    时间: 2024-1-16 05:56
感谢楼主无私奉献,帮助很大!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1