我是使用对话框SDK的新手,并一直在阅读适配器。我可以看到一个简单的解决方案,让我批量待待待写作,并在单个线程上下文中使用AD_UART_WRITE()处理它们,以便没有其他线程被阻止。我不太确定读...
是否可以同时调用AD_UART_READ()和AD_UART_WRITE()(来自不同的线程)而不会对彼此干扰?我想到了一个简单读取块或超时的UART RX线程,将RX数据传递给应用程序,并重复。我猜这将具有电力影响,保持RX启用,但它仅用于调试目的。
设备:
嗨单自然克里克,
由于您使用的适配器,您无法在不同线程的同时调用AD_UART_READ()和AD_UART_WRITE()。这是适配器的概念。请注意,适配器是LLD(低级驱动程序)顶部的附加图层,并且不作为单独的任务实现。因此,您要么直接使用UART LLD(在HW_UART.H文件中描述)或UART适配器(在AD_UART.H文件中描述),而不会在UART LLD中进行干预。我们建议使用适配器来访问硬件外围设备,因为不仅提供对外设的访问权限,还可以确保当前访问它的其他任务,暂停其操作,直到外围设备再次发布。因此,如果另一个任务在同一时间访问相同的外围设备,则不必担心。我强烈建议你看一下第12.3.1章的UART适配器示例UM-B-044用户手册:DA1468X软件平台参考(HTML)来自我们的支持门户。
谢谢,PM_DIALOG.
感谢您的答复。说实话,我更愿意写自己的裸机驱动程序(这是我用北欧,STM32,EFM32和其他部分所做的),但是在目前对话零件来说太不熟悉,我的主要关注适当管理权力。在我看来非常奇怪的是,UART被迫成为一个适配器的半双工装置:这似乎不受欢迎。
我将透过这个例子。
谢谢。
嗨单自然克里克,
由于它已经在上一篇文章中提及,我们强烈建议使用适配器来访问硬件外围设备。如果您不喜欢使用适配器,则第二个选项是使用LLD。这些是我们可以提供支持的两个选项。在您的情况下,如果您想实现自己的驱动程序,我们将无法提供任何支持。是的,请浏览如何使用UART适配器的推荐示例。
谢谢,PM_DIALOG.