你好,
我正在使用DA14681基本开发套件,并愉快地通过串行和JTAG上传示例。然而,无论终端中设置的波特率如何,都会向串行终端打印到串行终端的一切。只有在/startup/config.c中将波特率设置为9600(默认为115200)后,才能运行良好。
无法以更高的波特率打印不一定是调试的问题,但它确实将我击中奇数。另外三个板和计算机具有同样的问题。在57600的靴子期间,董事会确实将其名称吐了四次,因此它似乎以更高的速度沟通。我假设UART配置在引导加载程序完成后的CONFIG.C中的PARAMS配置。可能是某些东西没有正确初始化或某些时钟是不稳定的吗?
干杯,
Jeroen.
设备:
我们一直在摆弄它有点,发现以下速度工作:
4800
9600(4800 x 2)
19200(4800 x 4)
38400(4800 x 8)
波特率不起作用4800不起作用。144000(4800 x 3),57600(4800 x 12)和115200(4800 x 24)都吐出来凝血......
嗨Jeroenlqd,
这是因为基本套件不是使用FTDI芯片作为UART端口,而是JLINK调试器的UART,因为JLINK没有将其输出UART引脚设置为高,除非是从PC传输到电路板的东西。PIN状态通过电平移位器保持后的液位复位。配置PIN作为UART_RX无法打开上拉电阻,因此RX线保持低,此状态通常被驳除为断裂状态。无论如何,周围的工作是调用以下指导:
hw_gpio_configure_pin(hw_gpio_port_2,hw_gpio_pin_3,hw_gpio_mode_output,hw_gpio_func_gpio,1);
使用该函数只是在将PIN UART函数中设置PERIPH_INIT()之前,您将能够操作基本套件的UART,您可以检查下面的片段:
静电void periph_init(空白)
{
hw_gpio_configure_pin(hw_gpio_port_2,hw_gpio_pin_3,hw_gpio_mode_output,hw_gpio_func_gpio,1);
hw_gpio_set_pin_function(hw_gpio_port_1,hw_gpio_pin_3,hw_gpio_mode_output,
hw_gpio_func_uart2_tx);
hw_gpio_set_pin_function(hw_gpio_port_2,hw_gpio_pin_3,hw_gpio_mode_output,
hw_gpio_func_uart2_rx);
}
此外,您还可以使用FTDI电缆并将UART引脚连接到电缆而不是JLink的UART。
谢谢mt_dialog.
嗨mt_dialog,
感谢您的解释!我们测试了它,现在港口现在适用于所有波特率。仍然特殊的是,它以前的波特率为4k8 * 2 ^ x,但我现在很高兴它现在运作。
干杯,
Jeroen.