OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3357|回复: 2

有关串口通讯问题,以回车键作为回现数据标志。为何按好多次才能通过调试助手回现发送的数据(源码)

[复制链接]

28

主题

73

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
224
金钱
224
注册时间
2014-1-14
在线时间
3 小时
发表于 2014-1-22 19:58:14 | 显示全部楼层 |阅读模式
u16 USART2_Buffer[254];
u8  USART2_Sta=0;
u16 data=0;
u16 re=0;

void USART2_IRQHandler()
{
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
 USART_ClearITPendingBit(USART2, USART_IT_RXNE);
 USART2_Buffer[data]=USART_ReceiveData(USART2);
 if(data==0xfe||'\r'==USART2_Buffer[data])
 {
 //USART_ITConfig(USART_COMx,USART_IT_RXNE,DISABLE);
  USART2_Buffer[data]='\0';
  USART2_Sta=1;
 }
 data++;
}
/*if((USART2_Buffer[0]==0x5A)&& (USART2_Buffer[data-1]==0x5A))
{
USART2_Sta=1;
}
if(USART_GetFlagStatus(USART2,USART_FLAG_ORE==SET))
{
USART_ClearFlag(USART2,USART_FLAG_ORE);
USART_ReceiveData(USART2);
}*/
if(USART2_Sta)
{
for(re=0;re<data;re++)
{
USART_SendData(USART2, USART2_Buffer[re]); 
}
data=0;
//re=0;
USART2_Sta=0;
}
 //USART_SendData(USART2, data); 
while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET)
 {
 }
}

希望出现此类问题的高手指点。谢谢。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-1-24 14:31:23 | 显示全部楼层
我们不是有现成的例程么?
战舰/mini,串口实验。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2014-2-17
在线时间
0 小时
发表于 2016-8-23 10:35:02 | 显示全部楼层
然而我现在 调不用中断接收数据  发生了一样的事情。请教会是怎么个问题
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-30 23:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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