回复
发帖数: 9
注册日期: ‎09-05-2017

uart无法读到数据

EFR32的板子,烧IDE的light程序,通过uart0给板子发消息,板子收不到。

修改点:在emberAfMainInitCallback 中初始化了uart0,。

调试进度:

1、在COM_Init中发现hw流控不会调用enableRxIrq;改成软件流控后有调用

2、调试的时候在某个地方看到说之所以没有开读功能是因为耗电,不记得是在哪里了,或者是在5.8版本

3、现在一直调不出来,然后看代码又看到说新板子都是支持硬件流控的,有几个操作步骤在uartdrv.c后面的文档中。

我是不是要按照硬件流控来?

我对硬件的一些原理不是太了解。

 

发帖数: 9
注册日期: ‎09-05-2017

回复: uart无法读到数据

补充说明下:

之前提到没有开读功能是因为耗电在uartdrv.c中的UARTDRV_InitUart

初始化串口的时候,如果fc_type = hw,不开读

所以之前的方案是改成sw,然后可以cominit时把读中断打开

刚才才注意到还有个hwuart流程方式。

发帖数: 9
注册日期: ‎09-05-2017

回复: uart无法读到数据

硬件流控不可取。

同样的板子,同样的串口做成NCP串口的读写就没问题。

默认的hw应该是没有问题。

Highlighted
发帖数: 185
注册日期: ‎07-13-2016

回复: uart无法读到数据

hi @code_farmer,

 

UARTDRV中uartdrvFlowControlHw是指通过firmware toggle GPIO来实现的硬件流控制, uartdrvFlowControlHwUart是指USART模块本身支持硬件流控制,不需要firmware的干预, EFR32系列支持HwUart.
关于flow control的介绍可能参考以下几个KB

http://community.silabs.com/t5/8-bit-MCU-Knowledge-Base/Make-a-comparison-of-UART-Hardware-Software-...

http://community.silabs.com/t5/32-bit-MCU-Knowledge-Base/EFM32PG1-EFM32JG1-EFM32PG12-EFM32GG11-USART...

 

Thanks