UART2传输保持寄存器总是满的

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
4个职位/ 0个新
最后发表
提到
离线
最后看到:2天13小时前
加入:2017-05-12 04:18
UART2传输保持寄存器总是满的

嗨,对话框
我们用SDK V1.06的pxp_reporter进行演示。在BLE广告的每个结尾之后,我们使用UART2来打印tf字符串。首先,它可以正常打印字符串。但是我们发现它会卡在" while (hw_uart_write_buf_full(uart));”之后。系统从长时间睡眠模式苏醒后,uart似乎出现了问题。我们的代码如下:

静态孔隙periph_init(空白)

hw_gpio_set_pin_function (HW_GPIO_PORT_1 HW_GPIO_PIN_0 HW_GPIO_MODE_OUTPUT,
HW_GPIO_FUNC_UART2_TX);
hw_gpio_set_pin_function (HW_GPIO_PORT_1 HW_GPIO_PIN_2 HW_GPIO_MODE_INPUT,
HW_GPIO_FUNC_UART2_RX);

空白retarget_init(空白)

Uart_config uart_init = {
.baud_rate = HW_UART_BAUDRATE_115200,
. data = HW_UART_DATABITS_8,
鸡毛蒜皮= HW_UART_STOPBITS_1,
.parity = HW_UART_PARITY_NONE,
.use_dma = 0,
.use_fifo = 1,
.rx_dma_channel = HW_DMA_CHANNEL_INVALID,
.tx_dma_channel = HW_DMA_CHANNEL_2,
};

hw_uart_init (HW_UART2 &uart_init);


...
hw_uart_send (HW_UART2,“\ \ n123412341234 \ r \ n”);
...

无效hw_uart_write(HW_UART_ID uart, uint8_t data)

//如果发送保持寄存器已满则等待
而(hw_uart_write_buf_full (uart));/ /这里卡住了

//向发送FIFO写入数据
非洲联合银行(uart) - > UART2_RBR_THR_DLL_REG =数据;

我的代码有问题吗?

设备:
MT_dialog
离线
最后看到:4个月2周之前
工作人员
加入:2015-06-08 34
嗨提到,

嗨提到,

直接使用低级别的hw函数(hw_ prefix函数)来与68x的外设交互,一般不建议对任何外设使用,这就是创建适配器的原因。对于调试或常规打印,因为您想使用UART2,所以可以使用CONFIG_RETARGET标志,这将把printf功能重定向到UART2(或UART,取决于配置)。您可以查看custom_config_qspi.h文件中的ble_multi_link,并检查CONFIG_RETARGET是如何配置的,这是使用CONFIG_RETARGET标志的示例之一。如果你不想使用RETARGET标志,那么你应该使用适配器而不是低级别驱动程序。

由于MT_dialog

提到
离线
最后看到:2天13小时前
加入:2017-05-12 04:18
嗨,对话框

嗨,对话框
我们想同时使用uart1和uart2。现在uart1被配置为retarget端口,它工作得很好,我还发现它使用低水平的hw功能,但不是适配器。因此,我根据retarget_init()代码配置了uart2。关于使用uart适配器,我如何学习使用它?

MT_dialog
离线
最后看到:4个月2周之前
工作人员
加入:2015-06-08 34
嗨提到,

嗨提到,

您可以在UM-B-044用户手册中查看如何使用适配器:DA1468x软件平台参考,你也可以找到关于适配器和可用的信息功能doxygen (SDK doc文件夹和搜索索引html),你会发现所有可用的函数如何使用适配器和也有SDK演示的例子。如果您想使用两个uarts,我建议使用适配器的使用在您的应用程序。

由于MT_dialog