打印
[应用相关]

串口发送丢失字节问题

[复制链接]
1191|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feiqi1|  楼主 | 2017-5-31 20:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用以下配置和程序发送字符串总会有随机丢失字节的情况,求大神指教。

void Init_usart0(void)
{
    P3SEL |= BIT4 + BIT5;  //选择P3^4和P3^5引脚为外围模块功能

    U0CTL=(PENA&0x00) | (PEV&0x00) | (SPB&0x00) | (CHAR&0xff) | (SYNC&0x00)| (MM&0x00);
    //效验禁止,1位停止位,字符长度,8位,USART模块的模式选择,选择UART模式(异步)   

    U0TCTL=(CKPL&0x00) | (SSEL1&0xff) | (URXSE&0x00) | (TXWAKE&0x00) | (TXEPT&0x00);
    //时钟极性控制位,UCLKI信号与UCLK信号极性相同,确定波特率发生器的时钟源为SMCLK(即为1MHz)

    U0BR0=0x68;
    U0BR1=0x00;
    U0MCTL=0x88;   
   
    U0CTL&=~SWRST;

    ME1|=(UTXE0&0xff) | (URXE0&0xff);   //USART0发送允许,USART0接收允许
    IE1|=(UTXIE0&0xff) | (URXIE0&0xff);  //USART0发送中断使能,USART0接收中断使能
    IFG1 &=0x7f;       //清0发送中断标志位
}


/*指针指向要发送的字符串,及要发送的数据长度*/
void Sent_Uart0(unsigned char *p,unsigned char length)        //USART0串口发送函数
{
        TX0_pointer = p;         //指针指向要发送的内容数组
        TX0_length = length;      //定义要发送的数据长度      

        IFG1|=UTXIFG0;   //发送中断置位
         
        while( TX0_complete_flag ==0);//等待所有发送完成

        while((U0TCTL&TXEPT)==0);  //判断当前数据是否发送完成
        IFG1&=~UTXIFG0;   //清除中断标志
        TX0_complete_flag =0;  //清除发送完成标志位        
}


#pragma vector=UART0TX_VECTOR          //USART0串口发送中断
__interrupt void usart0_tx(void)
{      
      if(TX0_length)
      {               
          U0TXBUF=*(TX0_pointer++);
          while (!(IFG1&UTXIFG0)); // 判断:发送是否完成
      }
       TX0_length --;                           
      if(TX0_length==0)
      {         
          TX0_complete_flag =1;  //所有字节发送完成
      }
                  
}
沙发
androidbus| | 2017-5-31 20:57 | 只看该作者
void Sent_Uart0(unsigned char *p,unsigned char length)   
这个函数是在主程序里?
估计经常会被串口中断打断

使用特权

评论回复
板凳
litengg| | 2017-5-31 20:58 | 只看该作者
这个选用的波特率也是很关键的

使用特权

评论回复
地板
litengg| | 2017-5-31 21:03 | 只看该作者

你这串口助手,一看就很山寨。。

使用特权

评论回复
5
qiangweii| | 2017-5-31 21:09 | 只看该作者
U0TXBUF=*(TX0_pointer++);
          while (!(IFG1&UTXIFG0)); // 判断:发送是否完成

使用特权

评论回复
6
shashaa| | 2017-5-31 21:12 | 只看该作者

推荐用匠人的串口猎人

使用特权

评论回复
7
xia00| | 2017-5-31 21:15 | 只看该作者
理论上,不应该串口助手影响的。。。

使用特权

评论回复
8
hfdy01| | 2017-5-31 21:22 | 只看该作者
看看串口软件是不是可以接受这么多。

使用特权

评论回复
9
CallReceiver| | 2017-5-31 21:27 | 只看该作者
上位机软件不行,推荐,串口猎人

使用特权

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

本版积分规则

424

主题

1616

帖子

1

粉丝