野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 30710|回复: 1

野火开发板串口问题(中断模式)

[复制链接]
发表于 2013-5-22 13:04:15 | 显示全部楼层 |阅读模式
例程在中断处理中是直接收到一个字符然后通过串口打印输出,语句为:printf("%c",c);程序运行没问题,但我加了一个换行符之后就不行了printf("%c\n",c);     输出跟输入相比是一个隔一个输出的,少了一半,谁能告诉我这是为什么?  
顺便请教一下该怎么把串口接收到得字符合成一个字符串并打印输出?下面这样为什么不行?
void USART1_IRQHandler(void)
{
u8 c;
char Cmd[10];
const char *str;
static char i=0;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{  
      c=USART1->DR;
      if((i<10)&&(c!=0x0D))
     {
            Cmd[i]=c;
            i++;
     }
    else
             i=0;
str=Cmd;
printf("\r\n  %s  !\r\n",*str);
         
}
  
}
回复

使用道具 举报

发表于 2013-5-23 09:33:08 | 显示全部楼层
接收到一个就触发中断。所以仅接收到一个。

可以接收到触发中断后,等待接收超过一定时间才认为没有继续发送了,才退出
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 06:09 , Processed in 0.028200 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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