MM32L073串口空闲中断问题
有没有人试过MM32L073的串口空闲中断功能?中断使能部分的代码:NVIC_InitStructure.NVIC_IRQChannel = DMA1_Channel4_5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
UARTx->IER |= 0x0040;
UART的中断处理函数:
void UART2_IRQHandler(void)
{
if((UART2->ISR & 0x40) > 0))
{
UART2->ICR = 0x40;
}
}
现在DMA的其他中断(半字中断和传输正确中断)都能正常工作,但是空闲中断并没有响应,有没有人确认过这个功能的?
不好意思!MM32L073芯片没有支持串口空闲中断功能。 zhu^zhu 发表于 2020-11-21 19:35
不好意思!MM32L073芯片没有支持串口空闲中断功能。
难怪,看文档里面有,例程里面对应的头文件却没有定义。 多谢!我马上查一下。 MM32L073芯片没有支持串口空闲中断功能 zhu^zhu 发表于 2020-11-22 13:53
多谢!我马上查一下。
我看的是这段解释,不知道是不是对应空闲中断。
可以用软件模拟实现这个功能 大锋1234 发表于 2020-11-23 22:25
可以用软件模拟实现这个功能
目前在循环里面不停的读CNTR的数值,也实现了功能,感觉比空闲中断还好用。 这是断开帧(BREAK)的标识,主要用于LIN总线的同步。的确这个可以用于帧同步,但不是空闲帧。空闲帧的定义是一段超过一个有效数据帧的空号(SPACE),认为是空闲帧。 pq113_6 发表于 2020-11-24 08:36
目前在循环里面不停的读CNTR的数值,也实现了功能,感觉比空闲中断还好用。 ...
这个能详细说下吗? zhangjianhu 发表于 2020-11-25 09:30
这个能详细说下吗?
就是DMA里面不停的读入串口数据(CIRCLE的模式),主程序在需要的时候读入CNTR值(即当前的wr indexz值),通过wr index值和rd index变量就知道DMA Buffer中的有效数据,将数据读出后更新rd index即可。就是用到了循环buffer的机制。 空闲中断功能
页:
[1]