标题: 用串口调节助手发送字符串,代码如下,但是接收不到,这是为什么呢,波特率没错 [打印本页]

作者: yingzhen    时间: 2019-4-5 09:36
标题: 用串口调节助手发送字符串,代码如下,但是接收不到,这是为什么呢,波特率没错
void InterruptUART() interrupt 4
{
static unsigned int *ptr;
static unsigned int tmr = 0;
static unsigned char i = 0;
static unsigned char cnt = 0;
unsigned char ptm = 20;
if(RI)
{
  while(ptm--)
  {
   RI = 0;
   RxdByte[i] = SBUF;
   i++;
   if(i > 6)
   {
    i = 0;
    break;
   }         
  }
  ptr = RxdByte;
  for(i = 0; i < 6; i++)
  {
   if(*ptr >= 'a' && *ptr <= 'z')
   {
    rest = *ptr;
    if(tmr >= 1000)
    {
    tmr = 0;
    ptr = ptr + 1;
    }
   }
   else
    continue;
  }
}
if(TI)
{
  if(cnt < 6)
  {
   SBUF = RxdByte[cnt];
   cnt++;   TI = 0;
  }
}
}



作者: yingzhen    时间: 2019-4-5 12:01
各位大佬,帮帮忙
作者: wtf3505    时间: 2019-4-5 14:10
请不要在中断函数里面处理数据,谢谢!
作者: yingzhen    时间: 2019-4-5 16:41
wtf3505 发表于 2019-4-5 14:10
请不要在中断函数里面处理数据,谢谢!

将处理数据的代码去掉之后,还是只能发送,接收不到数据
作者: wtf3505    时间: 2019-4-6 06:43
yingzhen 发表于 2019-4-5 16:41
将处理数据的代码去掉之后,还是只能发送,接收不到数据

unsigned char cSbuf;
void usart(void) interrupt 4        
{        
   if(1==RI)  
   {
        RI = 0;
        cSbuf=SBUF;
   }
   else
   {
        TI = 0;     
   }                                                      
}  
先不搞那么复杂,这样能否收发?

作者: yingzhen    时间: 2019-4-6 08:45
wtf3505 发表于 2019-4-6 06:43
unsigned char cSbuf;
void usart(void) interrupt 4        
{        

还是只能发送,不能接收




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1