CS5463如何测电压

2020-01-22 12:09发布

我在网上搞了一个程序移植过来,程序大体思路是这样的 先初始化定时器 然后串口 CS5463  然后进行校准 最好通过定时器到了一定时间开始只读0X18电压数据寄存器 结果读出来的数据全为0
我这里么有啥工具 我只是想简单的测一个电压 求做过的人指导一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
32条回答
wujin715
2020-01-22 22:18
去年用过 现在这个项目还在 所以就只能把最基本的串口初始化跟读写函数贴出来  如果最基本的没问题 剩下的就是看DATASHEET了  有时间看看英文的DATAsheet 中文的不清楚
void SpiInit()
{
unsigned char i,j,write_temp;
        SDI=0;
        SCLK=0;
        CS2=0;

        SDO=1;

        for(i=0;i<3;i++)
        {
                write_temp=0xff;
                for(j=0;j<8;j++)
                {
                        write_temp<<=1;
                        SDI=CY;                                                //Any Digital Input Rise/Fall Time < 1us
                        _nop_();
                        SCLK=1;                                                //Rise Time SCLK < 100us
                        _nop_();
//                        delay100us();
                        SCLK=0;                                                //Fall Time SCLK < 100us
                        _nop_();
//                        delay100us();
                }
        }
        write_temp=0xfe;
        for(j=0;j<8;j++)
        {
                write_temp<<=1;
                SDI=CY;                                                //Any Digital Input Rise/Fall Time < 1us
                _nop_();
                SCLK=1;                                                //Rise Time SCLK < 100us
                _nop_();
//                        delay100us();
                SCLK=0;                                                //Fall Time SCLK < 100us
                _nop_();
//                        delay100us();
        }
        CS2=1;
}
/*****************************************
函数名称:SdiWrite
功    能:Write Command & Data to CS5463
参    数:pointer--The Char Array of Command + Data (1 + 3)
返 回 值:无
******************************************/
void SdiWrite (unsigned char *pointer)
{
        unsigned char i,j,write_temp;


        CS2=0;
        for(i=0;i<4;i++)
        {
                write_temp=pointer[i];
                for(j=0;j<8;j++)
                {
                        write_temp<<=1;
                        SDI=CY;                                                //Any Digital Input Rise/Fall Time < 1us
                        _nop_();
                        SCLK=1;                                                //Rise Time SCLK < 100us
                        _nop_();
//                        delay100us();
                        SCLK=0;                                                //Fall Time SCLK < 100us
                        _nop_();
//                        delay100us();
                }
        }
        SDI=1;
        CS2=1;
}
/*****************************************
函数名称:SdoRead
功    能:Write Command to CS5463 & Read Data from CS5463
参    数:pointer-->The Char Array of Command + Data (1 + 3)
返 回 值:无
******************************************/
void SdoRead (unsigned char *pointer)
{
        unsigned char i,j,cmd;

        CS2=0;

        cmd=pointer[0];
        for(i=0;i<8;i++)
        {
                cmd<<=1;
                SDI=CY;                                                //Any Digital Input Rise/Fall Time < 1us
                _nop_();
                SCLK=1;                                                //SCLK Rise Time < 100us
                _nop_();
//                delay100us();
                SCLK=0;                                                //SCLK Fall Time < 100us
                _nop_();
//                delay100us();
        }
        SDI=1;
        for(i=1;i<4;i++)
        {
                for(j=0;j<8;j++)
                {
                        SDO=1;                                        //读取数据前先置高
                        pointer[i]<<=1;
                        SCLK=1;
                        _nop_();
//                        delay100us();
                        if(SDO)
                                pointer[i]++;
//                        temp=SDO;
//                        pointer[i]+=temp;
                        SCLK=0;
                        _nop_();
//                        delay100us();;       
                }
        }
        CS2=1;
}

我用的是stc89c52 晶振11.0592MHz

一周热门 更多>