你好,
我们已根据模板项目创建了一个自定义项目。我们需要实现的一些事情是自定义配置文件(我们已成功创建了基于示例128的启动开头)和UART通信,该通信将用于与另一个微处理器接口。
使用默认值初始化UART1 - 115.2K,奇偶校验,1个停止位,8个数据位
Tx分配给p0.4
rx分配给p0.5
我正在使用一个Systick模块来递增特征值,将其更新为测试特性通知,并通过UART输出此值。UART TX立即工作,没有任何问题 - UART_WRITE(BUF,SIZE,NULL)调用是main的呼叫。下一步是实现通过UART读取命令的基本轮询机制。作为函数参考,我们一直在使用UM-B-004外设驱动程序v1.4。函数UART_READ(BUF,SIZE,NULL)调用是由MAIN搭配的MAIN搭配。到目前为止,我们还没有成功接收任何字符到提供的缓冲区。
已执行以下操作:
- 测试两种不同的松下Pan1740评估套件
- 确保FTDI芯片/电缆通过环回测试正常工作
- 尝试运行运行外设示例项目:能够将菜单输出到控制台,但没有接收字符(位于LSR中准备好的循环等待数据)
- 尝试运行生产测试(主机应用程序始终返回RX超时状态)
将非常感谢进一步的指导。谢谢你。

在那里,对于自定义档案,我将向您发送教程(草案)。我们很快就会发表它,但我相信这将是一个很大的帮助。
对于Pan1740 - 我将循环Panasonic Suport团队(wireless@eu.panasonic.com.)L.
BR JE_DIALOG.
谢谢回复。我们已经能够基于Sample128的自定义档案,以正常工作,但您提供的教程似乎对进一步自定义有用。
截至目前,我们的主要问题是让UART阅读工作。
嗨,有一个具有UART工作的DSP示例,并且在应用程序注意中描述了一点。https://pideu.panasonic.de/files/documents/wm%20documents/pan1740/pan174 ...
最好的问候,Ingo
出于某种原因,我无法让DSP示例正确执行。我相信它与睡眠模式和调试有关,因为它在Arch_System模块中的Sleep_Mode检查期间永久地坐在循环中。
除了额外的UARTTOBLE,BLETOUART环形缓冲功能外,似乎我们的UART与DSP示例类似地配置。主要区别是使用回调函数调用UART_RED的应用程序级UART模块的初始化。根据UM-B-004,我应该能够在没有回调的情况下调用UART_READ。我尝试了接收回调并在init上调用Uart_read,但我仍然没有运气。有一些关于UART处理程序的东西 - 我不应该在存储到recv fifo的第一个字节上收到UART处理程序的中断(UART_IIR_FCR_REG初始化为7)吗?显然没有UART处理程序触发,我也不会看到回调。
除了我可以检查的外围示例和生产工具之外还有另一个例子吗?或任何其他额外洞察力。我很欣赏帮助。
嗨,章节“14.3两个Pan1740 USB Sticks”描述了更改,您需要在Config.h文件中执行。
我实际上在我的最后一个回复之后尝试了这个,但不幸的是没有任何运气,我会在硬故障调试软件断点中获得一个硬故障并停止。调用堆栈指示在UART_SPS_TIMEOUT_DATA_AVAIL ISR期间发生故障(在RF INIT期间发生中断)。进一步调试针对接收缓冲区值设置为读取数据时发生故障。
我没有测试过UART_系列,但UART2_在这里工作好。为了让UART2在Devkit上工作,我做了以下事情:
将#undef cfg_printf更改为da14580_config中的#define cfg_printf.h。
在Periph_setup.c中,在gpio_reservations和set_pad_functions中更改用于UART(GPIO_PORT_0,用于RX的GPIO_PORT_0,GPIO_PIN_5的GPIO_PIN_5)的GPIO端口和引脚。
然后在该应用程序中,现在可以使用UART2_WRITE(或者ARCH_PRINTF如果包含APP_CONSOLE.H),包括UART.H.
呼叫UART2_READ(BUF,LENGLE,READ_CALLBACK),其中BUF是缓冲区,长度是在系统调用READ_CALLBACK之前读取的字节数。至少对于UART2_READ,您无法传递NULL回调,因为assert_err(0)被调用。在read_callback中,您现在可以处理读字节。
我将应用程序更改为使用UART2外设,并且仍未收到中断(UART2_Handler)。
作为Sanity检查,我创建了一个带有SDK v3.0.8.0的新副本的新文件夹,我打开了模板项目。然后,我对DA14580_Config.h和periph_setup.c进行了相同的修改,添加了UART接收回调的UART2_READ调用,在发送到DA14580时仍然没有看到UART2_HANDLER中断。可以注意的事情是,我在启动时看到一个UART2 RX中断,在启动时使用Adition_Available的IDD发生。UART2_REC_DATA_AVAIL_ISR调用UART2_DATA_RDY_GETF返回真实一次,因此如果指定了1个字节的读取大小,则第一个UART2_READ调用将执行回调。
更新:我们决定将Rx映射到0.2作为另一个调试工作,并且在接收字节时触发UART中断。
虽然这是一个好消息,但我们的布局设计具有RX映射到0.5。主要怀疑是某些东西保持0.5个低或高,破坏了使用该引脚的任何外围功能。相同的行为在我们的两个Pan1740 USB设备上都表现出来。