发送和接收不能与UART1工作

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
2个帖子/ 0个新
最后发表
DMeynen
离线
最后看到:2年8个月前
加入:2018-01-08 19:42
发送和接收不能与UART1工作

亲爱的对话框,

我正在使用DA14681基本开发板。

对于一个应用程序,我想从UART1接收一些数据,并将一些数据发送到I2C设备。来自UART的数据包含I2C设备的地址和数据。

但是,当我运行我的代码(仅与UART接收),代码停止在“ASSERT_WARNING(xSemaphorePM != NULL);”

当我删除所有I2C和UART代码时,代码工作正常(用LED2闪烁进行测试)。

我想要的是从UART接收数据,接收一个中断,解码,然后发送到i2c设备。既然我使用基本的开发板,我想使用UART1端口为此。

谢谢!

关键词:
设备:
PM_Dialog
离线
最后看到:1天20小时前
工作人员
加入:2018-02-08 11:03
嗨DMeynen,

嗨DMeynen,

根据你的描述,你得到这个断言的可能原因和这个问题的一些指导方针可能是:

  1. UART2用一个16字节深度的FIFO实现硬件流控制,所以你不能将它配置为软件UART。只有UART1支持软件实现。对于完整的UART功能,您应该在头文件(J15)中添加RTS - P1_5和CTS - P1_6之间的跳线。请检查UART和UART2DA14680用户手册第16页。

  1. 请注意,对于我们所有的外设,您应该使用适配器的概念,它在多任务环境中提供安全的api(如freertos),在进入睡眠模式前感知。请注意,像printf()这样的函数不是适配器层的一部分。

  1. 你不应该把uart_init()调用到外围init()中。在唤醒后执行peri_init()来重新配置gpio pad。我们的建议是将uart_init()调用到一个任务或system_init()中

  1. 强烈建议不要同时使用控制台、适配器和标准C API,比如prinrf()

谢谢,PM_Dialog