你好
我试图实现硬件流控制的UART。我注意到CTS和RTS引脚是低活跃。
是否有任何代码样本可用于如何初始化硬件流控制的UART ?我已经完成了GPIO配置,还有什么需要做的吗?我没有找到如何启用硬件流控制,以及它会影响什么。
作为一个问题:
在AN-B-026中,在“使用UART CTS信号唤醒DA14580”部分中,我注意到CTS默认为低电平,然后切换高低。这是否意味着它是活跃的,万一我想用它醒来?如果它是高效的,以便用作唤醒,我如何配置它以继续使用硬件流量控制接收数据,这需要CTS致电高电平
设备:
嗨ankitdaf,
您可以使用DSP示例实现UART流量控制,请选中此项目作为参考。
当你完成操作与唤醒程序和引脚不需要用作唤醒引脚,你重新配置它作为你的UART的CTS引脚。当CTS线路低,你可以发送数据,一旦CTS高,你应该停止发射机。
由于MT_dialog
谢谢你的提示,尝试它。
我已经打电话给:
“UART2_READ((UINT8_T *)UART2_RX_BUFFER,1,UART2_READ_COMPLETION_CB); //读取一个字符”
并实现了UART2_READ_COMPLETION_CB函数。
我已将GPIO配置为RTS和CTS功能,并且由于GPIO0 IRQN,他们被称为。但是,基于DSP示例,我可以看到信令仅用于控制BLE数据流。
我想要了解的是,如果有内置的机制,可以处理低电平的CTS(以及可能呼叫的中断),如果可以使用它来触发RTS信号?我目前通过设置GPIO非活动手动处理此操作。所有这一切似乎非常手动,目前,引脚几乎表现为GPIO。,没有太多使用将别针定义为RTSN和CTSN,所以我想知道我是否错过了一些东西。
谢谢
嗨ankitdaf,
不确定您的意思,在UART FIFO中有数据后将调用UART2_Handler回调(取决于您在将触发中断的硬件中设置的数据有多少)。在DSP示例中,通过GPIO0 IRQN调用580 CTS引脚,580 RTS由UART的硬件处理,具体取决于FIFO的设置(在流关闭之前接受多少个字节)。中断从UART中的FIFO状态触发,在切换CTS时,没有中断。当CTS上升时,UART发射机只暂停向另一侧发送数据时,UART不会导致中断,因为CTS切换。
由于MT_dialog
嗨mt_dialog.
谢谢回复。这让我比以前更困惑。让我试着改写我的问题。
我正在尝试使用RTS和CTS功能。如何在从另一个处理器接收一个字节消息的应用程序中实现这一点?我不需要传输任何数据,只需接收。
2.有一个方法UART_MCR_PACK和UART2_MCR_PACK,并提出自动侵蚀件,自动转换和RTS。那种方法和那个注册都是什么?我发现没有关于这一点的文件。
3. DSPS应用程序并不高兴,因为它似乎通过BLE的流量控制信令。
4.通过GPIO0_IRQN调用CTS的目的是什么?我可以通过通过外部处理器拉动它来使580触发/不触发UART2_READ回调来使用CTS引脚吗?是否会切换CTS引脚甚至影响该处理程序是否被调用?
请帮帮我!
P.S.也许有关这一点的应用程序说明将有助于,只是为了记录UART可用于uarts的硬件控制,如果它对您的人来说不是太多
谢谢你的耐心
嗨ankitdaf,
1.我不确定我是否得到这个,可以在1个字节深度级别设置UART的FIFO,并使自动流控制如果您这样做,每次都会看到您的RTS信号将设置为高电平你的FIFO中的字节。您可以使用DSP示例测试此方法,刚刚将UART_IIR_FCR_REG设置为0x7,当您在FIFO中收到一个字节时,将触发中断,如果使用逻辑分析仪检查,则会在接收一个字符时看到RTS切换。如果使用DSPS测试此功能,您将看到RTS将每8个字符切换每8个字符,因为FIFO的DSPS设置为1/2完整。
2.没有记录有关函数的信息,检查寄存器地址的数据表中,每个比特都有一个描述。
3.如上所述,在DSPS中硬件操作UART的传输/接收,没有对应用程序的指示,当CTS将被UART的另一边切换,因此,为了给我们的应用程序提供指示,我们使用了一个普通的IRQ,以便在流中断信号应该发送到BLE链接的另一边时给应用程序发出信号。
4.如上所述,来自外部Proccessor的CTS的断言或断开断言不会触发任何UART中断。如果在UART_IIR_FCR_REG上检查数据表的UART部分,则可用的UART中断是特定寄存器指示的UART中断。
关于应用说明,数据表包含大多数Nessecary信息。
由于MT_dialog