10163|17

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何进入IDLE中断 [复制链接]

USART的配置如下
USART_InitStructure.USART_BaudRate = 4800;
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  USART_InitStructure.USART_StopBits = USART_StopBits_1;
  USART_InitStructure.USART_Parity = USART_Parity_No;
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  USART_InitStructure.USART_Clock = USART_Clock_Disable;
  USART_InitStructure.USART_CPOL = USART_CPOL_Low;
  USART_InitStructure.USART_CPHA = USART_CPHA_2Edge;
  USART_InitStructure.USART_LastBit = USART_LastBit_Disable;
  
  USART_Init(USART1, &USART_InitStructure);
  
  /*enable the usart1*/
  USART_Cmd(USART1, ENABLE);
  USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
  USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);
照道理应该这个时候没有发送数据的,会一直产生IDLE中断,但是现在看下来,IDLE的那一位一直处于0的状态,请教一下,这个bit在什么情况下变成1吗?
此帖出自stm32/stm8论坛

最新回复

                                 这样可以排除所有其它的影响因素,如果这个新的项目还有同样的问题,你把这个项目挂上来,我帮你看看。   详情 回复 发表于 2008-9-16 10:22
点赞 关注
 

回复
举报

84

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

没人知道吗?

                                 查了一下之前的帖子,有人用过这个中断的。但是没看出来设置上有什么不同。还请用过的指教指教
此帖出自stm32/stm8论坛
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

哇! 很容易的啊!

                                  
此帖出自stm32/stm8论坛
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

5
 

IDLE的定义是一个字符结束后一个字符长度的高电平

                                 注意是“一个字符结束后”,不是所有时间。
此帖出自stm32/stm8论坛
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

6
 

呵呵

说说我目前的发现,确实要进入IDLE 中断是比较容易的,但这是在没有设置其他内容的时候,我在使用时,之前已经设置了USART中的一个模式,目前还没有确定是肯定与这个有关系,但是我把这个设置关了以后,进入IDLE中断确实是相当容易了。
那我到底是设置了什么呢?由于看到STM32有一个Multiprocessor的功能,所以就是用了一下,其中设置了Address Mark Detect的设置,在以上功能使用的时候,就产生了无法产生IDLE中断的事情,不过还需要进一步验证一下。
呵呵,顺便问一下,netjob你接受的时候每一个字符后面接了空白符,是使用了LIN Mode吗?
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

7
 

古道122同学

                                 是我把 DMA通道 设置为 16位模式了!
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

9
 

呵呵,原来是这样地

刚才又试了一下,现在进IDLE就可以了,看来是Multiprocessor里的两个模式不能共存- -!
但是现在又有了一个问题,我发送一串数据的时候,开了发送中断,然后在中断中发送,但是发送了一些数据之后,发现会进入IDLE中断,为什么呢?照道理这个时候是在不停地发送,怎么会莫名地出来一个IDLE标志呢?
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

10
 

中断没有及时被响应

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

11
 

浪哥

是指发送中断没有响应吧,发送中断的响应难道可以调整吗?还是有其他方式可以解决吗?
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

12
 

发送的时候为什么要开放IDLE中断?有什么意义吗?

                                 发送中断的响应时间无法调整。
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

13
 

这个倒不是说发送的时候一定要进

既然IDLE中断会出来,那么就是在发送的时候中间会出来一个IDLE的时间。主要是并不是单对单的通信,是1对多的通信,在一开始的时候检测第一个字符是不是address,然后作出反应,是的开始接受,不是的则进入MuteMode,而退出MuteMode的方式则是检测到一个IDLE信号。所以在发送的时候IDLE出现的话,会影响其他几个的通信,而有可能导致其他的产生误响应。
对于这种情况有什么解决方法吗?难道要改变通信的方式?
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

14
 

相应提高中断的抢夺优先级

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

15
 

呵呵,香主也来啦

                                 现在只有用到两个中断,一个TIM2,一个USART的中断,而且已经设定USART的两个优先级都为高了。- -!看来是没有什么好的方案了吗?
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

16
 

哈......

                                  
此帖出自stm32/stm8论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

17
 

xwj那么早就开始逛啦

                                 目前还不太明白为什么发送的时候会出来9个bit的空闲时间而进入IDLE中断,我设置的baudrate是4800的,如果说是中断响应的时间的问题的话,难道说中断响应需要那么长时间吗?
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

18
 

做一个最简单的项目,去除所有其他内容,只包含这个USART的

                                 这样可以排除所有其它的影响因素,如果这个新的项目还有同样的问题,你把这个项目挂上来,我帮你看看。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表