打印
[ZLG-ARM]

串口收发数据时,0发送不出来,怎么回事啊 ?

[复制链接]
1987|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jstu023123|  楼主 | 2007-9-20 13:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
串口试验:用串口调试工具,先接收数据,后把接收的数据发送出来。发送0时,接收窗口没有0显示,通过软件调试时,确有0存入U0THR中的,不知为何啊?程序如下:

/****************************************************************
*名称:  COM_Puts( )
*功能:  发送数据存入send_buf,并触发UART0发送中断
*入口参数:  pBuffer  发送数据首地址 
            size 发送数据字节长度
*出口参数:  无
****************************************************************/

void COM_Puts(UINT8 *pBuffer, UINT32 size)
{
    UINT32 i;
    if( size>0)
    {
        sgSendSize = min(SEND_BUFFER_SIZE,size)-1;  // sgSendSize为存入到send_buf的数据个数
        
        while( SendFinished == FALSE );   //  等待上一次发送完毕
     
        SendFinished = FALSE;
        U0THR = *pBuffer++;         //  发送首个数据,触发发送中断
        for(i=0;i<sgSendSize;i++)
        { 
            send_buf = *(pBuffer+i);
         }
        
        U0IER |= 0x02; 
     }     
 }

中断子程序:
case 0x02:             // 发送中断
          for(i=0;i<16;i++)                 //  一次发送16个数据
          { 
             U0THR = send_buf[sgSendCounter++];
             if(sgSendCounter>sgSendSize-1)
              break;
           }
           
          if(sgSendCounter>sgSendSize-1)  // 数据接收完成
          { 
              U0IER = 0x01;             // 关闭发送使能
              SendFinished = TRUE;      // 置标志位
           }
          break;   

相关帖子

沙发
jjk927| | 2007-9-21 19:28 | 只看该作者

RE:

我的板子也是这个问题!
请版主解释下!

我发送其他的数据都可以,但是发送00就是不行!!


使用特权

评论回复
板凳
zlgARM| | 2007-9-21 23:38 | 只看该作者

re

请参考另外一个相关主题帖子的回答。

使用特权

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

本版积分规则

40

主题

93

帖子

0

粉丝