我如何添加uart(printf)到项目(reporter_fh)打印MSG调试

12个职位/ 0个新职位
最后发表
zqinglin
离线
最后看到:7年1天前
加入:2014-07-02 08:11
我如何添加uart(printf)到项目(reporter_fh)打印MSG调试

现在项目reporter_fh可以运行了。使用Ipnone可以发现DA14580。但我想添加uart.c,就像项目peripheral_examples可以打印MSG到PC。我如何添加uart(printf)到项目(reporter_fh)打印MSG用于调试。

MHv_Dialog
离线
最后看到:1个月2个星期前
工作人员
加入:15 2013-12-06
你好,

你好,

这应该会帮助你开始:

uart_init (UART_BAUDRATE_115K2 3);
uart_flow_off ();
uint8_t东西[]= {0 x0a, 0 x0a 0 x0a 0 x0a, 0 x0a 0 x0a 0 x0a 0 x0a 0 x0a 0 x0a 0 x0a 0 x0a 0 x0a 0 x0a 0 x0a 0 x0d,‘R’,‘e’,‘‘,‘d’,‘y’,0 x0d 0 x0a ' > '};
uart_write (NULL), 24日;
uart_finish_transfers ();

我希望这对你有帮助,

zhangwen
离线
最后看到:7年2个星期前
加入:2014-04-15下去


我也想添加uart到项目(reporter_fh)打印一些消息,如果你已经成功添加uart到那个项目,请告诉我,我应该做什么。

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

你好,

uart2.c和uart.c在驱动目录中的区别是什么?

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

编辑:我试图打印到串行监视器与DA14580。我定义了CFG_PRINTF并在项目文件中包含了uart2.c。然后我把上面的代码复制到我的项目源文件中,但我在监视器中没有收到消息。我能得到更详细的说明吗?

asmaitha
离线
最后看到:5年7个月前
专家
加入:2014-11-20时间为
你好,

你好,
即使我想打印一些调试语句app_init_func在文件:fh_proxr_sdk.c在reporter_fh项目。
我从peripheral_examples项目中添加了uart.c和uart.h,但由于SPI_DI和UART_RX坐在相同的端口和相同的PIN上,我禁用了da14580_config.h文件中的BLE_SPOTA_RECEIVER配置文件。
现在代码正在闪烁,但我无法看到任何调试MSGS。

谢谢
asm

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

嗨asmaitha,

我建议您在打印时使用app_console,而不是进行自己的uart操作操作。这应该有点作用:

  1. 添加#定义CFG_PRINTFda14580_config.h
  2. 在你的项目中包括app_console包括路径:. . \ \…\ src \ \ app \ src \ app_utils \ app_console模块
  3. 转到项目视图并右击app /文件夹中。然后,点击Add existing file to Group 'app'并添加app_console.c
  4. 包含文件app_console.h你想使用它的地方:# include“app_console.h”
  5. 使用功能arch_printf打印文本

定义正确的UART引脚非常重要!periph_setup.c文件中拱/文件夹:

储备GPIOGPIO_reservations函数与以下宏:

# 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

而在set_pad_functions函数


# 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

谢谢

asmaitha
离线
最后看到:5年7个月前
专家
加入:2014-11-20时间为
你好,视频电子设备标准协会,

你好,视频电子设备标准协会,
尽管做了上面提到的所有更改,我仍然无法在控制台上看到任何调试msg。
我使用了一个语句arch_printf("Hello");内部app_init_func

谢谢
asm

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

你好asmaitha,

你能否提供更多细节?程序能编译吗?你用的是什么硬件?你的pin配置是什么?

您确定在da14580_config.h中有以下行吗?您检查过没有吗# undef CFG_PRINTF后呢?


/ * UART控制台打印* /
#定义CFG_PRINTF
# ifdef CFG_PRINTF
#定义CFG_PRINTF_UART2
# endif

谢谢!

asmaitha
离线
最后看到:5年7个月前
专家
加入:2014-11-20时间为
你好,视频电子设备标准协会,

你好,视频电子设备标准协会,
在da14580_config.h
#定义CFG_PRINTF
#定义CFG_PRINTF_UART2
已定义。

但我仍然有一个基本的疑问:
在peripher_setup .c文件中:
#如果(BLE_SPOTA_RECEIVER)
Reserve_gpio (spi_clk, gpio_port_0, gpio_pin_0, pid_spi_clk);
Reserve_gpio (spi_do, gpio_port_0, gpio_pin_6, pid_spi_do);
Reserve_gpio (spi_di, gpio_port_0, gpio_pin_5, pid_spi_di);
Reserve_gpio (spi_en, gpio_port_0, gpio_pin_3, pid_spi_en);
# endif

# 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

所以这里在UART2_RX和SPI_DI之间,有一个冲突,这意味着UART端口初始化根本不会发生…

谢谢
asm

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

嗨asmaitha,

实际上,GPIO保留宏根本不重要。他们只是想确保没有冲突。更重要的是你用什么来做GPIO_ConfigurePin功能。你显然与SPI总线有冲突,事情不会工作!

asmaitha
离线
最后看到:5年7个月前
专家
加入:2014-11-20时间为
你好VesaN,

你好VesaN,
非常感谢。

谢谢
asm

LittleBee
离线
最后看到:4年8个月前
加入:2015-07-13 08:38
对不起,我不是新来的

对不起,我不是新手,只是生气而已。任何人都有一个SmartTag的工作示例与功能的UART字符串写出来的基本板。我已经一步一步地玩了VesaN的例子,并与其他uart的例子一起调整了它。但是我总是碰到__asm(“BKPT #0\n”);//这个pin之前没有被保留!..或者根本不工作。我甚至开始删除所有与pin reserve相关的东西,但仍然卡住了。