查看: 1392|回复: 0

[其他] DZ60串口发送数据出错

[复制链接]

该用户从未签到

1

主题

1

帖子

0

新手上路

Rank: 1

积分
7
最后登录
2015-2-10
发表于 2015-2-10 18:30:57 | 显示全部楼层 |阅读模式
本帖最后由 mll2015 于 2015-2-10 18:37 编辑

dz60的SCI1主动向主机发送数据0xb1,主机收到的是0xfe,但在收到主机下发的数据后,回复的数据却正确,波特率为115200,这是怎么回事?
初始化:
void SCI_Open()
{
        unsigned char tmp = SCI1D;
        tmp = SCI1S1 & 0x20;
        SCI1C2 = SCI1C2_TE_MASK |
                        SCI1C2_RE_MASK ;
}



发送数据代码如下:
void SCI1_SendData(void)
{
    unsigned char ucCnt;
    for ( ucCnt = 0; ucCnt < UART1BUF_COUNT; ucCnt++ )
    {
        while ( !(SCI1S1 & 0x80) );
        SCI1D = SCI_BUF[ucCnt];
    }
}




interrupt  void SCI_IRS()
{
        INT8U iLoop = 0;
        INT8U cmdSize = 0;
        INT16U timeVal = 1000;     
        DisableInterrupts;
        if ( ! (SCI1S1 & 0x20) )
                return;
        SCI_BUF[0] = SCI1D;
        switch ( SCI_BUF[0] )
        {
                case __pc_goto_download:
                        cmdSize = 3;
                break;
                case __pc_erase_chip:
                        cmdSize = 3;
                break;
                case __pc_erase_page:
                //break;
                        cmdSize = 4;
                break;
                case __pc_read_chip_tokening:
                        cmdSize = 5;
                break;
                case __pc_write_chip_tokening:
                        cmdSize = 37;
                break;
                case __pc_read_checkSum:
                  cmdSize = 3;
                break;
          case __pc_PROG_READ_FLSH:
            cmdSize = 4;
          break;
          case __pc_PROG_READ_EDITION:
            cmdSize = 3;
          break;         
          case __pc_checkis11or21:
                        cmdSize = 4;
                break;
                default:
                EnableInterrupts;
                return;
        }
        for ( iLoop = 1; iLoop < cmdSize && timeVal; iLoop++ )
        {
                        while  (!(SCI1S1 & 0x20) );
                        SCI_BUF[iLoop] = SCI1D;
        }
        isSCIReceived = 1;
        EnableInterrupts;
}

我知道答案 目前已有0人回答
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-22 15:34 , Processed in 0.079571 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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