打印
[ZLG-MCU]

仿真结果正常,下载后程序不对,怎么解决?

[复制链接]
1283|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
swordlife|  楼主 | 2009-7-13 19:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在AT89S8253上利用SmallRTOS 编写了一个程序,在Keil 仿真都正常,串口能够输出正确的字符,但是下载到单片机以后,串口输出1个正确字符以后,就输出错误的字符了。跟踪发现时在串口中断程序里面,OSQAccept(&temp,SerialOutData) 传递过来的值temp不能送到SBUF里面,请问大侠们问题何在?
这个程序在C8051F023上跑起来没有问题,串口通讯都正确。是否在Keil 编译的时候哪里设置不对?

、***********************************************************/
中断程序如下:
        void comm(void) interrupt 4
{
    uint8 data temp;
    if (RI == 1)        //这句适用于普通C51单片机
    {
#if EN_OS_INT_ENTER >0
        OS_INT_ENTER();
#endif
        RI = 0;

        OSQIntPost(SerialInData,SBUF);

       OSIntExit();
       return;
    }
    if (TI == 1)
    {
        TI = 0;
        if (OSQAccept(&temp,SerialOutData) == OS_Q_OK)
        {
            SBUF = temp;   //运行到这里,SBUF则只发送一个随机值,而不是OSQAccept()取出来的消息
                          //SBUF='2';      //这里加上这个测试语句,串口则能正确的发送字符2出去,
        }
        else
        {
            SerialCanSend = 1;
        }
    }
}


相关帖子

沙发
linhai1986| | 2009-7-17 21:19 | 只看该作者

没遇到过,帮顶

使用特权

评论回复
板凳
xiaoxin1986| | 2009-7-17 22:07 | 只看该作者

路过

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

51

帖子

0

粉丝