主题 : 为什么串口接收到的都是‘~’??先谢过咯。 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 55012
精华: 0
发帖: 27
金钱: 140 两
威望: 28 点
综合积分: 54 分
注册时间: 2011-09-10
最后登录: 2012-03-31
楼主  发表于: 2012-03-29 11:27

 为什么串口接收到的都是‘~’??先谢过咯。

程序是使用Manymany的。
接收函数
void Uart_receive(char *string)     //接收函数
{
     char *string2 = string;  
     char c;
     myUart_Init(0,115200);  //串口的选择与波特率的选择
    
     while((c = myUart_ReceiveByte())!='\r')    //循环判断接收字符函数返回的字符是不是换行字符
     {
        
        if(c=='\b')
        {
              
            if( (int)string2 < (int)string )
            {
                Uart_Printf("\b \b");  
                string--;
            }
        }
        else  
      {
            *string++ = c;
            myUart_SendByte(c);
        }
     }
     *string='\0';      //接收完毕后执行空格
     myUart_SendByte('\n');  //如果接收完毕后,补充一个回车
}

主函数

int xmain(void)    
{
    char *str;        
    char *string;
    ChangeClockDivider(3,1);        //1:3:6
    ChangeMPllValue(127,2,1);        //405MHZ
    Port_Init();
    Isr_Init();
    
    while(1)
    {
        Uart_Send("Please Input a string:\n");   //超级终端提示输入一串字符
        Uart_receive(string);         //2440接收字符
        *str=*string;     //发送的跟接收的字符相等
        Delay(500);        
        Uart_Send(str);      //2440发送字符显示到超级终端上
        Uart_Send("\n");
    }    
    
}