OpenEdv-开源电子网

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

STM32串口通信数据丢失问题

[复制链接]

7

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
261
金钱
261
注册时间
2015-10-8
在线时间
36 小时
发表于 2016-2-21 08:38:57 | 显示全部楼层 |阅读模式
STM32利用两个串口通信,串口1通过RS422只接受电脑发送的数据(是中断接受),串口2通过RS422与触摸屏通信(接受数据时也是中断接受),当串口1和串口2同时工作时,串口1接受的数据帧有时候会丢失字节。

下面是两个中断的函数:
u8 RS_485_RECEIVE(u8 * temp,u8 n);
void RS485_SHUCHU(void);
extern u8 temp_value[12];
extern u8 flag_num;
extern u8 xianshi_shuchu;
extern u8 flag_num1;
  u16 temp_test;
void USART1_IRQHandler(void)
{
  u8 temp,temp1,temp2;
  USART1->CR1&=0XFFFFFFDF;
  if (USART1->SR&0x00000020)
  {
    temp=USART1->DR;
    if(temp==0x41)
    {
      flag_num=0;
      temp_value[flag_num]=temp;
      while (USART1->SR&0x00000020);
      temp_test=0xffff;
      while ((temp_test!=0)&&(temp_value[flag_num]!=0x42))
      {
        if (USART1->SR&0x00000020)
        {
        flag_num++;
      temp_value[flag_num]=USART1->DR;
      while (USART1->SR&0x00000020);        
        }
        temp_test--;
      }
    if (temp_value[flag_num]==0x42)
    {
      if (temp_value[1]!=0x31&&temp_value[1]!=0x32&&temp_value[1]!=0x33&&temp_value[1]!=0x34&&temp_value[1]!=0x35)
        asm("nop");
      xianshi_shuchu=RS_485_RECEIVE(temp_value,flag_num+1);
         flag_num1++;
      if (flag_num1>10)
        flag_num1=1;  
    }
    }
  }
      temp1=USART1->SR;
      temp2=USART1->DR;
      temp_value[0]=0;temp_value[1]=0;temp_value[2]=0;temp_value[3]=0;
      USART1->CR1|=0X00000020;
}


void USART2_IRQHandler(void)
{
  u8 temp1=0,temp2=0;
  LEDCLOSE=!LEDCLOSE;
  if (USART2->SR&0x00000020)
  {

  asm("nop");
    u8 RS485_2;
    RS485_2=USART2->DR;
   if (RS485_2==0x10)
     RS485_SHUCHU();
  }
   temp1=USART2->SR;
   temp2=USART2->DR;
}


请求各位大神的帮助
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
236
金钱
236
注册时间
2015-6-7
在线时间
39 小时
发表于 2016-2-21 09:40:50 | 显示全部楼层
while??
这是中断函数吗
回复 支持 反对

使用道具 举报

7

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
261
金钱
261
注册时间
2015-10-8
在线时间
36 小时
 楼主| 发表于 2016-2-21 09:55:45 | 显示全部楼层
yklstudent 发表于 2016-2-21 09:32
好奇葩的中断接收处理;

求指导啊
回复 支持 反对

使用道具 举报

7

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
261
金钱
261
注册时间
2015-10-8
在线时间
36 小时
 楼主| 发表于 2016-2-23 10:57:30 | 显示全部楼层
问题解决了  是我的优先级没有设置好
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 00:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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