邪门了,用PIC的SPI控制TM1616没有反应!求助

2020-02-06 10:08发布

用SPI驱动没反应,把SPI禁了,用IO口直接模拟SPI的时序又能显示了。。。SPI驱动ADXL345又是可以的,奇怪了,哪的问题?
有没有用SPI驱动过TM系列芯片的,有什么坑么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
liqiinhit2
2020-02-06 11:54
//向SSP写一个字节,同时读一个字节
unsigned char SSP_Send(unsigned char sByte)
{
        SSPBUF = sByte;
        while(BF==0);
        sByte = SSPBUF;
        return sByte;
}

//用IO模拟SPI
void indate(unsigned char p)
{  
        unsigned int i;
        TM1616STB=0;   //保证“STB”为低电平,程序不依赖于之前端口的状态  //保证程序在实际运行中不会出现“端口迷失”
        for(i=0;i<8;i++)
        {
                RB4=0; //先将“CLK”清零
                if((p& 0x01)!=0)   
                {
                        RB2=1; //需要传送的数据的低位为“1”,则把“DIO”清零
                }
                else
                {
                        RB2=0;  //需要传送的数据的低位为“0”,则把“DIO”置高
                }
                RB4=1;  //送时钟的上升沿
                p=p>>1; //准备送下一个BIT
        } //送完一个字节后退出循环
}

这是两段代码

一周热门 更多>