⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
7个帖子/ 0个新
最后发表
迪特尔•福尔克
离线
最后看到:5个月2周之前
加入: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 = device->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(..)”函数。

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

如何配置设置了这个标志的UART或适配器?

致以最亲切的问候

迪特尔

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

嗨,迪特尔,

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

谢谢,PM_Dialog

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

嗨,迪特尔,

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

谢谢,PM_Dialog

迪特尔•福尔克
离线
最后看到:5个月2周之前
加入:2019-10-12 33
你好,

你好,

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

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

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

致以最亲切的问候

迪特尔

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

嗨,迪特尔,

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

谢谢,PM_Dialog

迪特尔•福尔克
离线
最后看到:5个月2周之前
加入: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
离线
最后看到:3个月5天前
工作人员
加入:15 2013-12-06
嗨,迪特尔,

嗨,迪特尔,

谢谢分享你的解决方案。我已要求在下一个文件版本中执行你所建议的附加文件。

/ MHv