TI中文支持网
TI专业的中文技术问题搜集分享网站

关于串口回调函数触发的条件,调用HalUARTWrite()触发了串口回调函数,什么原因呢?

调用HalUARTWrite()时进入了串口回调函数,LED1闪烁

Yue TANG:

这个是正常的。你自己起的rxCB的名,不表示它不处理串口发送的事件。

你可以看到HalUARTPollDMA() 函数,显然call back 也需要处理HAL_UART_TX_EMPTY,HAL_UART_TX_FULL等发送 事件。

user4713141:

您好请问您的问题解决了吗?我也遇到类似的问题这个怎么解决?

user4713141:

回复 Yue TANG:

您好 我也遇到类似问题 请问怎么修改

one Man:

回复 user4713141:

看上面解释就知道了

user4713141:

回复 Yue TANG:

您好 我遇到和楼主一样的问题,我在HalUARTPollDMA()中的最后一个if判断语句中改成了

if (evt && (dmaCfg.uartCB != NULL))  {    evt &= HAL_UART_TX_N;//0xf7  屏蔽掉HAL_UART_TX_FULL和HAL_UART_TX_EMPTY    dmaCfg.uartCB(HAL_UART_DMA-1, evt);  }
但是还是不行,请指正

one Man:

回复 user4713141:

dmaCfg.uartCB(HAL_UART_DMA-1, evt);这个也要屏蔽,其实思路就是要屏蔽发送产生的事件,或者不去处理产生的事件

赞(0)
未经允许不得转载:TI中文支持网 » 关于串口回调函数触发的条件,调用HalUARTWrite()触发了串口回调函数,什么原因呢?
分享到: 更多 (0)