搜索
bottom↓
回复: 3

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

[复制链接]

出0入0汤圆

发表于 2015-12-1 14:36:39 | 显示全部楼层 |阅读模式
用SPI驱动没反应,把SPI禁了,用IO口直接模拟SPI的时序又能显示了。。。SPI驱动ADXL345又是可以的,奇怪了,哪的问题?
有没有用SPI驱动过TM系列芯片的,有什么坑么?

出0入0汤圆

 楼主| 发表于 2015-12-1 14:48:11 | 显示全部楼层
//向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
        } //送完一个字节后退出循环
}

这是两段代码

出0入0汤圆

发表于 2015-12-1 16:44:31 | 显示全部楼层
用逻辑分析仪试试,说不定就能查到问题,反正以前我写的8563的程序挑芯片,后来查出是时序问题了。

出0入0汤圆

 楼主| 发表于 2015-12-1 19:12:38 | 显示全部楼层
AHTY 发表于 2015-12-1 16:44
用逻辑分析仪试试,说不定就能查到问题,反正以前我写的8563的程序挑芯片,后来查出是时序问题了。 ...

谢谢了,不准备搞了。才发现这片子是5V的,3V不工作。。。。

非常奇怪的是前面三个命令都能通过,就最后一个点亮的命令用SPI不行!!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 13:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表