IAP后应用程序LED显示乱码

[复制链接]
2793|8
 楼主| oliver123 发表于 2013-7-20 18:06 | 显示全部楼层 |阅读模式
描述下,iap里面用的是裸机编程,用can总线来升级。应用程序是用FreeRtos来做的。LED显示是用的TD1629来驱动。现在有时候,升级过后,LED会显示乱码。而有的时候又是很正常的。在正常的情况下,有时改动一点程序,显示就乱了。驱动led的时候用的是全局变量,开始以为是重入性问题,但是后来显示函数里面关中断了,但是还是没用。iap的程序跳转之前中断都关了,我将用的的外设设置恢复成初始化了。但是APB没关。还是没什么效果。
请问各位大侠有没有遇到过这种情况。如果有是什么引起的?请各路高手不吝指教!
hawksabre 发表于 2013-7-20 18:52 | 显示全部楼层
不是很了解这一块   楼主   顶一个   看看有没有高手能不能解决这一问题
trumpxp 发表于 2013-7-21 09:35 | 显示全部楼层
楼主  顶一个    看看别人的意见
 楼主| oliver123 发表于 2013-7-22 08:38 | 显示全部楼层
呵呵,是不是这样的问题很少见啦!有点补充的:就是同样的程序如果用IAP升级后是乱码的,但是用JTAG直接烧写,一点问题都没有。确实很扰人。不知道是IAP的问题还是程序本身的问题。
outstanding 发表于 2013-7-22 08:50 | 显示全部楼层
最开始没有这个情况么 ?难道是地址不对么?
 楼主| oliver123 发表于 2013-7-22 08:59 | 显示全部楼层
开始没有,后来有一天突然就出现这种情况了!
airwill 发表于 2013-7-22 09:51 | 显示全部楼层
常见的设计缺陷
估计是时序设计得不合理, 有些时间段过于紧张了.
 楼主| oliver123 发表于 2013-7-22 10:18 | 显示全部楼层
版主,我的tm1629是用spi通信,底板和显示有将近1米的距离,用排线连接。排线也不是很好的线,会是这spi的时序问题吗?
 楼主| oliver123 发表于 2013-7-22 10:40 | 显示全部楼层
错了,stm32和tm1629的通信是普通的IO口模拟的串口线的通信。以前出现过这种情况,tm1629还有扫描按键,就是空跳转少了后,按键就很不灵敏了。我吧代码贴出来
void SendByteTM1629D(INT8U data)
{
        INT32U i=0;

        SELTM1629D;
        taskENTER_CRITICAL(); /*系统调度器上锁*/
        for(i=0;i<8;i++)
        {
                TM1629DCLKL;
                __NOP();
                __NOP();

                if(data&0x01)
                        TM1629DOUTH;
                else
                        TM1629DOUTL;

                data>>=1;
                __NOP();
                __NOP();
                __NOP();
                __NOP();
                TM1629DCLKH;
                __NOP();
                __NOP();
        }
        taskEXIT_CRITICAL();  /*系统调度器开锁*/
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

33

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部