GD32F103的串口中断USART_INT_IDLE开启的条件是什么
<p>我在uart初始化的时候,增加了idle的设置,</p><pre>
<code class="language-cpp">usart_enable(USART0);
/* enable USART0 receive interrupt */
usart_interrupt_enable(USART0, USART_INT_RBNE);
usart_interrupt_enable(USART0, USART_INT_IDLE);</code></pre>
<p>但是,在接收到数据后,中断可以进入,但是USART_INT_IDLE从来都没有发生</p>
<pre>
<code class="language-cpp">void USART0_IRQHandler(void)
{
uint8_t uart_data;
if(RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE)){
usart_interrupt_flag_clear(USART0, USART_INT_FLAG_RBNE);
/* read one byte from the receive data register */
uart_data= (uint8_t)usart_data_receive(USART0);
rx_buffer = uart_data;
}
if(RESET != usart_interrupt_flag_get(USART0, USART_INT_IDLE))
{
usart_interrupt_flag_clear(USART0, USART_INT_IDLE);
rx_idel = TRUE;
}
if(RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_TBE)){
usart_interrupt_flag_clear(USART0, USART_INT_FLAG_TBE);
}
}
</code></pre>
<p>请问各位,GD32F103中断USART_INT_IDLE的开启条件是什么。</p>
是不是想做不定长接收呀,你是说进入中断的条件吧? lugl4313820 发表于 2022-6-3 12:25
是不是想做不定长接收呀,你是说进入中断的条件吧?
<p>是的,我在stm32中就是使用的这个中断,但是GD32一旦打开,不但不能中断,而且还是各种的不正常。</p>
bigbat 发表于 2022-6-3 17:18
是的,我在stm32中就是使用的这个中断,但是GD32一旦打开,不但不能中断,而且还是各种的不正常。
<p>空闲中断,不同的产品、芯片,对于空闲中断的定义不同,具体还是以实践为准,其实最好的实现方式是定时器检测方式,通用,STM32的空闲中断相比来讲适用一些,我上次用过CH582就跟STM32的相差较远!</p>
lugl4313820 发表于 2022-6-3 21:38
空闲中断,不同的产品、芯片,对于空闲中断的定义不同,具体还是以实践为准,其实最好的实现方式是定时器 ...
<p>这个是我看过GD32的手册:"该中断是在收到数据后,就是USART_INT_FLAG_RBNE被置标志后,如果总线出现一个周期的‘空闲’就会产生该中断,这个好象和stm32的理解是一样的,有说:需要在USART_INT_RBNE中断前检测,说usart_interrupt_flag_get函数会清除该标记,这个也试了没有用。</p>
bigbat 发表于 2022-6-4 10:13
这个是我看过GD32的手册:"该中断是在收到数据后,就是USART_INT_FLAG_RBNE被置标志后,如果总线出现一 ...
<p>你设置空闲中断的长度是1就可以进中断</p>
<p> </p>
lugl4313820 发表于 2022-6-4 10:20
你设置空闲中断的长度是1就可以进中断
<p>给点提示,怎么设置?说一下代码,stm32中是不需要USART_INT_RBNE的只要USART_INT_IDLE就可以,但是我也没有成功。</p>
bigbat 发表于 2022-6-4 10:51
给点提示,怎么设置?说一下代码,stm32中是不需要USART_INT_RBNE的只要USART_INT_IDLE就可以,但是我也 ...
<p>等等,我研究一下,到时写个帖子吧。</p>
lugl4313820 发表于 2022-6-4 15:45
等等,我研究一下,到时写个帖子吧。
<p>我已经发帖子了,你过去参考一下就OK了:</p>
<p><a href="https://bbs.eeworld.com.cn/thread-1205730-1-1.html">【GD32F310G-START】USART 不定长接收 - GD32 MCU - 电子工程世界-论坛 (eeworld.com.cn)</a></p>
页:
[1]