普诚科技论坛

 找回密码
 立即注册
搜索
热搜: PT32 RF MCU Motor USB PLC
查看: 147|回复: 0

UART从PC连续接收多组0~9的数字字符,并将字符回传给PC

[复制链接]

57

主题

62

帖子

453

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
453
发表于 2017-4-1 16:56:14 | 显示全部楼层 |阅读模式
PC 到串口数据为:
87   563    7685   9297


123    57663  0

1

       35455
457

串口回传PC数据为:
87 563 7685 9297 123 57663 0 1 35455 457


串口终端服务函数的源码如下:
void UART0_IRQHandler(void) //irq 4
{
static uCHAR num=0;
static uCHAR rxdbuf[10]={0};
uCHAR  tdata= 0,cnt=0;
//------------------------------------------------
tdata = pUART0Ctrl->UART_RBR_THR_DLL;
if(tdata >= 0x30 && tdata <= 0x39) // 0~9数值字符
{
  rxdbuf[num++]  =  tdata;
}
else
{
  if(tdata == 0x20 || tdata == 0x0D || tdata == 0x0A)  // 0x20 空格  // 0x0D 0x0A 回车换行
  {
   if(num > 0)
   {
    for(cnt=0;cnt < num;cnt++)
    {
     UARTByteWr(UART0,rxdbuf[cnt]);
    }
    UARTByteWr(UART0,0x20);   // 空格
    num = 0;
   }
  }
}

//------------------------------------------------------
pUART0Ctrl->UART_ISC = pUART0Ctrl->UART_RIS;
}











回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普诚科技公司|小黑屋|普诚科技论坛  

GMT+8, 2017-6-26 14:59 , Processed in 0.235787 second(s), 26 queries .

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