野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5682|回复: 51

利用IDLE方式串口中断接收不定长字符串程序

[复制链接]
发表于 2018-10-5 18:01:09 | 显示全部楼层 |阅读模式
本帖最后由 litianma 于 2018-10-5 18:09 编辑

初学者,折腾了两天终于搞定了怎么使用串口接收不定长字符串。中断程序程序如下:void DEBUG_USART_IRQHandler(void)
{
        
  if(USART_GetITStatus(DEBUG_USARTx, USART_IT_RXNE) != RESET)
  {
    /* Read one byte from the receive data register */
                /* Disable the USARTy Receive interrupt */
                //USART_ITConfig(DEBUG_USARTx, USART_IT_RXNE, DISABLE);
    RxBuffer1[RxCounter1++] = USART_ReceiveData(DEBUG_USARTx);
               
                //printf("RxCounter1= %d",RxCounter1);
                //LED_RED;
        }
else if(USART_GetFlagStatus(DEBUG_USARTx,USART_FLAG_IDLE) != RESET)
   {
                 //USART_ITConfig(DEBUG_USARTx, USART_IT_RXNE, DISABLE);
              USART_ReceiveData(DEBUG_USARTx);    //读SR寄存器
        USART_ClearFlag(DEBUG_USARTx,USART_FLAG_IDLE);     //读DR寄存器(先读SR再度DR,可以清除IDLE中断)
                 
                 LED3_ON;
                 flag=1;
                 printf("Flag= %d,RxCounter1= %d",flag,RxCounter1);
}
  if(flag)               
        {
               
               
                printf("数据是:%s",RxBuffer1);
                flag=0;
                RxCounter1=0;
                memset(RxBuffer1, 0, sizeof RxBuffer1);
               
        }
  
}

实验结果:



捕获.JPG
回复

使用道具 举报

发表于 2018-10-8 08:50:28 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2018-10-10 15:16:30 | 显示全部楼层
参观学习学习哈哈
回复 支持 反对

使用道具 举报

发表于 2018-12-12 21:48:04 | 显示全部楼层
dasdas客户根据官方和经济
回复 支持 反对

使用道具 举报

发表于 2018-12-13 01:19:35 | 显示全部楼层
学习下      
回复 支持 反对

使用道具 举报

发表于 2018-12-13 08:48:10 | 显示全部楼层
谢谢分享 谢谢分享
回复 支持 反对

使用道具 举报

发表于 2018-12-16 23:53:21 | 显示全部楼层
楼主辛苦了,下来学习学习!
回复 支持 反对

使用道具 举报

发表于 2018-12-20 15:42:23 | 显示全部楼层
试了好久  就是接收不了  还是下载个程序试试吧  
回复 支持 反对

使用道具 举报

发表于 2018-12-28 14:15:50 | 显示全部楼层
谢谢分享谢谢分享谢谢分享
回复 支持 反对

使用道具 举报

发表于 2018-12-29 09:01:51 | 显示全部楼层
过来借鉴哈,看有没有啥不同
回复 支持 反对

使用道具 举报

发表于 2019-1-2 08:41:06 | 显示全部楼层
学习学习下
回复 支持 反对

使用道具 举报

发表于 2019-1-2 09:26:04 | 显示全部楼层
就喜欢这种
回复 支持 反对

使用道具 举报

发表于 2019-1-14 09:54:44 | 显示全部楼层
学习学习。。。。。。。。。。
回复

使用道具 举报

发表于 2019-1-14 09:59:36 | 显示全部楼层
学习下,感谢!!!!!
回复 支持 反对

使用道具 举报

发表于 2019-1-14 10:45:08 | 显示全部楼层
学习学习学习学习学习学习学习学习
回复 支持 反对

使用道具 举报

发表于 2019-1-15 13:58:21 | 显示全部楼层
看起来很有用唉
回复 支持 反对

使用道具 举报

发表于 2019-1-22 11:51:49 | 显示全部楼层
感谢楼主
回复

使用道具 举报

发表于 2019-1-22 12:14:05 | 显示全部楼层
楼主,为什么串口接收到数据,请问一下哪里出问题了?

TIM截图20190122121229.png
TIM截图20190122121222.png
回复 支持 反对

使用道具 举报

发表于 2019-1-28 18:25:14 | 显示全部楼层
参观参观,学习学习
回复 支持 反对

使用道具 举报

发表于 2019-2-11 18:33:43 来自手机 | 显示全部楼层
感谢楼主分享,参观学习
回复 支持 反对

使用道具 举报

发表于 2019-2-16 22:14:02 | 显示全部楼层
666666666666666666
回复 支持 反对

使用道具 举报

发表于 2019-5-30 19:03:27 | 显示全部楼层
感谢楼主的分享!!!!!
回复 支持 反对

使用道具 举报

发表于 2019-5-31 08:54:57 | 显示全部楼层
本帖最后由 289466080 于 2019-5-31 08:56 编辑

如果接收超过设定值最大值呢
回复 支持 反对

使用道具 举报

发表于 2019-5-31 08:57:42 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2019-5-31 09:03:44 | 显示全部楼层
nice,好贴
回复

使用道具 举报

发表于 2019-5-31 13:55:07 | 显示全部楼层
谢谢分享~
回复

使用道具 举报

发表于 2019-5-31 16:42:43 | 显示全部楼层
看看看看膜拜
回复 支持 反对

使用道具 举报

发表于 2019-6-14 09:50:05 | 显示全部楼层
学习学习!!!!!!!!!!!!!!!!
回复

使用道具 举报

发表于 2019-6-14 10:01:40 | 显示全部楼层
mark 一下111
回复 支持 反对

使用道具 举报

发表于 2019-6-26 19:20:35 | 显示全部楼层
学习一下,不知道与字节中断有什么区别
回复 支持 反对

使用道具 举报

发表于 2019-7-9 21:30:33 | 显示全部楼层
谢谢,学习一下,感谢
回复 支持 反对

使用道具 举报

发表于 2019-7-30 15:20:51 | 显示全部楼层
XX看三克油啥啥啥
回复 支持 反对

使用道具 举报

发表于 2019-8-4 10:11:23 | 显示全部楼层
谢谢谢谢谢,无私分享
回复 支持 反对

使用道具 举报

发表于 2019-11-1 09:02:21 | 显示全部楼层
学习一下
谢谢
回复 支持 反对

使用道具 举报

发表于 2019-11-2 23:21:38 | 显示全部楼层
666666666帮顶
回复 支持 反对

使用道具 举报

发表于 2019-11-5 11:20:07 | 显示全部楼层
666666666666666666666
回复 支持 反对

使用道具 举报

发表于 2019-11-5 12:37:53 | 显示全部楼层
感謝樓主分享
回复 支持 反对

使用道具 举报

发表于 2019-11-7 21:28:20 | 显示全部楼层
66666学习,学习
回复 支持 反对

使用道具 举报

发表于 2019-11-9 10:34:50 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2019-11-11 08:50:20 | 显示全部楼层
学习学习。。。。。。。。。。
回复

使用道具 举报

发表于 2019-11-26 15:59:55 | 显示全部楼层
lkjhlk;j'l;kj'\;kl;k;'k
回复 支持 反对

使用道具 举报

发表于 2019-12-3 20:40:36 | 显示全部楼层
谢谢楼主分享.................
回复 支持 反对

使用道具 举报

发表于 2019-12-7 20:07:13 | 显示全部楼层
ring buffer with idle interrupt
回复 支持 反对

使用道具 举报

发表于 2019-12-9 09:54:57 | 显示全部楼层
非常感谢分享,正在找相关资源
回复 支持 反对

使用道具 举报

发表于 2020-1-12 09:48:37 来自手机 | 显示全部楼层
66666666666666
回复 支持 反对

使用道具 举报

发表于 2020-1-16 12:36:29 | 显示全部楼层
学习了,谢谢楼主
回复 支持 反对

使用道具 举报

发表于 2020-1-19 11:45:19 | 显示全部楼层
学习了,谢谢楼主
回复 支持 反对

使用道具 举报

发表于 2020-1-19 11:48:13 | 显示全部楼层
在串口中断服务程序中写那么一大堆代码,是一个不好的习惯,printf语句完全可以放到主程序中去执行呀!而且发送前的准备工作也应该移到主程序中,违背了中断服务程序越短越好的原则。
回复 支持 反对

使用道具 举报

发表于 2020-2-12 22:10:46 | 显示全部楼层

参观学习学习哈哈
回复 支持 反对

使用道具 举报

发表于 2020-3-17 11:05:15 | 显示全部楼层
感谢分享,学习学习
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2020-8-3 20:16 , Processed in 0.246374 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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