发送和接收与UART1一起使用

了解更多常见问题解答教程

2个帖子/ 0新
最后一篇
dmeynen
离线
最后一次露面:2年4个月前
加入:2018-01-08 19:42
发送和接收与UART1一起使用

亲爱的对话框,

我正在使用DA14681基本DEV板。

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

但是,当我运行代码(仅使用UART接收)时,代码停止在“asmaphorepm!= null);”

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

我想要的是从UART接收数据,接收中断,解码并将其发送到I2C设备。SICNE我使用基本的DEV板,我想使用UART1端口。

谢谢!

关键词:
依恋:
设备:
PM_DIALOG.
离线
最后一次露面:14小时35分钟前
职员
加入:2018-02-08 11:03
嗨dmeynen,

嗨dmeynen,

根据您的描述,您获得此断言的可能原因以及此问题的一些指南可能是:

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

  1. 请注意,对于所有的外围设备,您应该使用适配器概念,该概念在多任务环境(如Freertos)中提供安全API,在睡眠模式下进入前的意识。请注意,printf()等函数不是适配器图层的一部分。

  1. 您不应该将UART_INIT()调用为periph_init()。唤醒以重新配置GPIOS PAD后执行PERIPH_INIT()。我们的建议是将UART_INIT()调用为任务或进入system_init()

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

谢谢,PM_DIALOG.