如何利用调试打印?

6个员额/ 0个新员额
最后发表
VesaN
离线
最后看到:5年11个月前
大师 主
加入:2014-06-26 08:49
如何利用调试打印?

你好,

我想要能够从我的项目打印到串行监视器。怎么做呢?我想有类似的功能,利用外围设备的例子,但它说(不要使用为您的设计)。

最好的问候,视频电子设备标准协会

VesaN
离线
最后看到:5年11个月前
大师 主
加入:2014-06-26 08:49
你好,

你好,

我还需要答案。任何建议吗?

BR,视频电子设备标准协会

VesaN
离线
最后看到:5年11个月前
大师 主
加入:2014-06-26 08:49
我尝试将uart.c添加到我的

我尝试将uart.c添加到我的项目中,并在项目包含路径中包含驱动程序路径。我不能编译项目,然后我得到许多错误:
src\plf\refip\src\driver\uart\uart.c
Extern const uint32_t jump_table_struct[];
. . \ \…\ src \ plf \ uart \ \ refip \ src \司机uart.c(290):错误:# 65:预计”;“
Extern const uint32_t jump_table_struct[];
. . \ \…\ src \ plf \ uart \ \ refip \ src \司机uart.c(296):错误:# 18:预计“)”
PtrFunc = (my_function) (jump_table_struct [uart_init_pos]);
. . \ \…\ src \ plf \ uart \ \ refip \ src \司机uart.c(346):错误:# 18:预计“)”
PtrFunc = (my_function) (jump_table_struct [uart_flow_on_pos]);
...

JE_Dialog
离线
最后看到:3个月2个星期前
工作人员
加入:2013-12-05 14:02
对不起,耽误了,我马上去接

抱歉耽搁了,我去找人看看。BR JE_Dialog

RvA
离线
最后看到:2个月2周以前
工作人员
加入:2014-02-07 14:10
嗨视频电子设备标准协会,

嗨视频电子设备标准协会,
你看过我们的串行端口服务参考设计吗?它是一个DA14580串口服务参考应用程序,仿真串口电缆的通信。这可能非常适合您的串行监视器项目。
最好的问候,
RvA(对话框)

VesaN
离线
最后看到:5年11个月前
大师 主
加入:2014-06-26 08:49
谢谢RvA,

谢谢RvA,

我终于解决了这个问题。由于某些原因,打印还不能与我自己的项目,这是一个template_fh的副本,我只是包括电池服务。打印使用template_fh:

  1. 我定义CFG_PRINTFda14580_config.h行~ 30。这个定义将使GPIO保留并配置GPIOperiph_setup.c
    periph_setup.c

    # ifdef CFG_PRINTF_UART2
    Reserve_gpio (uart2_tx, gpio_port_0, gpio_pin_4, pid_uart2_tx);
    Reserve_gpio (uart2_rx, gpio_port_0, gpio_pin_5, pid_uart2_rx);
    # endif
    //
    # ifdef CFG_PRINTF_UART2
    gpio_configurein (GPIO_PORT_0, GPIO_PIN_4, OUTPUT, PID_UART2_TX, false);
    GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_5, INPUT, PID_UART2_RX, false);
    # endif
  2. periph_init ()功能:必须使能UART时钟,UART init也可以执行:
    periph_setup.c

    # ifdef CFG_PRINTF_UART2
    SetBits16 (CLK_PER_REG UART2_ENABLE 1);
    uart2_init (UART_BAUDRATE_115K2 3);
    # endif
  3. 然后我做了宏定义app_template_proj.c根据UM-B-004:
    app_template_proj.c

    #定义DBG_PRINT (str) \
    uart2_flow_on ();\
    uart2_flow_off ();\
    uart2_finish_transfers ();\
    uart2_write((uint8_t *)str, sizeof(str), NULL)
  4. 我不确定流量控制和FTDI,但它是有效的。

编辑:我注意到我不小心使用了uart_finish_transfers()而不是uart2_finish_transfers()。这是固定现在和一切似乎工作的方法,我上面的方法。出于某种原因,在这两种情况下,甚至uart.c都没有包含在我的项目中(在项目中实现了uart_finish_tranfers()函数)。

主题锁定