嗨
我试图为UART实现硬件流控制。我注意到CTS和RTS别针是活跃的低。
有什么代码示例可供如何初始化硬件流控制的UART吗?我所做的配置,还有什么要做的吗?我没有找到如何启用硬件流控制,以及影响。
作为一个添加的问题:
- b - 026,在部分“醒来DA14580使用UART CTS信号”,我注意到CTS低默认情况下,然后调整高低。这是否意味着它是活性高的情况下,我想用它醒来?如果它是活跃的高为了用作醒来,我如何配置它继续接收数据与硬件流控制,这需要CTS是活性低
设备:
嗨ankitdaf,
您可以使用dsp实现UART流控制的例子,请检查这个项目作为参考。
当你完成操作唤醒过程和销没有用作醒来销你重新配置它作为CTS UART的销。当CTS线低你可以发送数据一旦CTS高你应该停止发射机。
由于MT_dialog
谢谢你的建议,尝试。
我已经叫:
“uart2_read ((uint8_t *) uart2_rx_buffer 1 uart2_read_completion_cb);/ /读取一个字符”
和实施uart2_read_completion_cb函数。
我配置了GPIOs RTS, CTS函数和它们被感谢GPIO0 IRQn。然而,基于dsp的例子,我可以看到信号只是用来控制数据流!
我想了解的是如果有内置的机制,将处理CTS低(中断可能称之为),如果可以使用RTS信号触发?我正在处理这个手动设置GPIO不活跃。所有这一切似乎非常手册,目前,几乎充当GPIOs别针。,没有多大用处的针脚定义为RTSN CTSN,所以我在想如果我丢失的东西。
谢谢
嗨ankitdaf,
无法确定你的意思,uart2_Handler回调将被称为一旦你有数据的UART FIFO(取决于你有多少数据已经在硬件设置,将触发中断)。在需求方的例子是580年CTS针也被称为通过GPIO0 IRQn和580 UART的RTS是由硬件根据设定的FIFO(多少字节之前会接受流)。中断触发从UART的FIFO的状态,没有打断玩家CTS时被调用。当CTS uart发射机只停顿将数据发送到另一方,没有中断引起的uart因为CTS连接。
由于MT_dialog
嗨MT_dialog
谢谢你的回复。这让我比以前更加困惑。让我试着解释我的问题。
1。我试图使用RTS和CTS功能。我如何在应用程序中实现这个从另一个处理器接收一个字节的消息吗?我不需要传递任何数据,只是接受。
2。有一个方法uart_mcr_pack uart2_mcr_pack,提到autorts, autoct和rts。这方法和登记做什么,到底是什么?我没有发现任何文档。
3所示。dsp应用程序是有用的不多,因为它似乎将流控制信号在祝福。
4所示。什么叫通过GPIO0_IRQn CTS的目的究竟是什么?我可以用把它用CTS销高或低通过外部处理器使580触发/不触发Uart2_read回调呢?是否切换CTS销影响处理程序调用或不呢?
请帮我在这里!
注:也许这将有助于应用程序注意,只是记录什么样的硬件控制uart是可用的,如果它不是太多的为你们工作
谢谢你的耐心
嗨ankitdaf,
1。我不确定如果我得到这个,你可以设置1个字节的UART的FIFO深度水平和启用自动流量控制如果你这样做你会发现您的RTS信号将设置为高每次你得到一个字节FIFO。可以通过使用需求方测试这个示例中,将UART_IIR_FCR_REG设置为0 x7这将触发一个中断当你收到一个字节在FIFO和如果检查逻辑分析仪时你会看到RTS切换接收一个字符。如果你与需求方测试这个你会发现你的RTS将切换每8个字符由于需求方FIFO的设置是半满的。
2。信息功能不记录,检查在寄存器地址的数据表描述每一位做什么。
3所示。如上所示在dsp硬件运作则/ UART的接待和没有迹象表明应用程序CTS何时切换UART的另一边,所以为了表明我们的应用程序中我们使用正常的IRQ为了信号应用程序流时信号应该发给另一边的BLE链接。
4所示。如上所示的断言或de-assertion CTS从外部proccessor不触发任何UART中断。如果你检查的UART部分数据表在UART_IIR_FCR_REG可用的UART中断是由特定的寄存器。
关于应用程序,数据表包括大部分nessecary信息。
由于MT_dialog