⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
7个职位/ 0个新职位
最后发表
迪特尔•福尔克
离线
最后看到:4个月3个星期前
加入:2019-10-12 33
Uart适配器异步

看看ad_uart.c中的代码,我可以看到以下内容:

Void ad_uart_write_async(uart_device dev, const char *wbuf, size_t wlen, ad_uart_user_cb cb,
void * user_data)

Uart_device_config *device = (Uart_device_config *) dev;
Uart_bus_dynamic_data *data =设备->bus_data;

if ((device->flags & AD_UART_DEVICE_FLAGS_LOCKING_ASYNC)) {
ad_uart_bus_acquire_ex (dev, AD_UART_RES_TYPE_WRITE);

数据- > write_cb = cb;
数据- > write_cb_data = user_data;

Hw_uart_send (device->bus_id, (const uint8_t *) wbuf, wlen, ad_uart_write_callback, dev);

当设置AD_UART_DEVICE_FLAGS_LOCKING_ASYNC时,似乎会调用“ad_uart_bus_acquire_ex(..)”函数。

我对这段代码的解释是,当使用async call函数时,如果设置了设备标志,我不需要自己调用ad_uart_bus_acquire_ex(..)。

如何配置UART或适配器,以设置此标志?

致以最亲切的问候

迪特尔

设备:
PM_Dialog
离线
最后看到:3天11小时前
工作人员
加入:2018-02-08 11:03
嗨,迪特尔,

嗨,迪特尔,

让我检查一下你的问题,然后尽快回复你。

谢谢,PM_Dialog

PM_Dialog
离线
最后看到:3天11小时前
工作人员
加入:2018-02-08 11:03
嗨,迪特尔,

嗨,迪特尔,

你能不能解释一下你的问题,并分享更多关于你想要实现的目标的信息?通常,我强烈建议您不要修改适配器和SDK文件。适配器应该在SDK提供的时候使用。如果您做了任何修改,也不能保证它们将按预期工作。

谢谢,PM_Dialog

迪特尔•福尔克
离线
最后看到:4个月3个星期前
加入:2019-10-12 33
你好,

你好,

我想知道如何在异步情况下使用uart适配器。传输模式。文档中的示例仅显示了普通(阻塞)模式。

因此,我查看了适配器代码(我肯定不想更改),我不清楚如何正确使用这段代码。这可以是像示例中那样的代码序列,也可以是在预期的用途是异步传输时如何正确配置UART的一些提示。

我希望这能让你明白我的问题。如果你需要更多的细节来回答我的问题,请告诉我。

致以最亲切的问候

迪特尔

PM_Dialog
离线
最后看到:3天11小时前
工作人员
加入:2018-02-08 11:03
嗨,迪特尔,

嗨,迪特尔,

请问你指的是哪个例子?您应该使用所需的UART配置打开适配器,应该使用ad_uart_open()来打开适配器。然后,您应该执行ad_uart_write_async()用于异步UART写。最后,您应该使用,直到所有UART事务完成并关闭适配器(ad_uart_close)。

谢谢,PM_Dialog

迪特尔•福尔克
离线
最后看到:4个月3个星期前
加入:2019-10-12 33
你好,

你好,

我所讨论的示例在您的文档中:DA1468x软件平台参考文档

你在回答中描述的顺序正是我所执行的。所以这并没有真正的帮助。因此,我仔细研究了AD_UART_DEVICE_FLAGS_LOCKING_ASYNC的定义。这个标志在ad_uart_write_async(..)函数中被检查,以执行必要的调用ad_uart_bus_acquire_ex(dev, AD_UART_RES_TYPE_WRITE);

我最初的问题是如何配置这个标志设置的UART。现在我自己发现了它,我的应用程序现在按照预期运行。

问题的答案是:

不是在platform_devices.h文件中使用宏“UART_BUS(..)”,而是必须使用宏UART_DEV(..),因为这个宏也将接受“_flags”参数,在这里我可以放置AD_UART_DEVICE_FLAGS_LOCKING_ASYNC定义。

如果用户想要使用UART的_async -函数,最好将这个提示作为注释添加到文档中。

致以最亲切的问候

迪特尔

MHv_Dialog
离线
最后看到:2个月2周以前
工作人员
加入:15 2013-12-06
嗨,迪特尔,

嗨,迪特尔,

谢谢分享你的解决方案。我已经要求在下次发布的文件中执行你提出的对文件的补充。

/ MHv