OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3644|回复: 4

CMSIS-RTOS printf调试串口输出问题请教

[复制链接]

1

主题

4

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2013-12-17
在线时间
5 小时
发表于 2017-5-25 16:24:44 | 显示全部楼层 |阅读模式
1金钱
问题 : 使用printf串口1没有任何输出

已经在RTE_device.h中启用USART功能
已经添加Compiler(I/O:STDOUT)
已经调用stdout_init初始化

附代码
串口初始化代码:
[mw_shl_code=c,true]
#include "Driver_USART.h"
#include "stdout_usart.h"
#include "stdio.h"

//-------- <<< Use Configuration Wizard in Context Menu >>> --------------------

// <h>STDOUT USART Interface

//   <o>Connect to hardware via Driver_USART# <0-255>
//   <i>Select driver control block for USART interface
#define USART_DRV_NUM           1

//   <o>Baudrate
#define USART_BAUDRATE          115200

// </h>


#define _USART_Driver_(n)  Driver_USART##n
#define  USART_Driver_(n) _USART_Driver_(n)

extern ARM_DRIVER_USART  USART_Driver_(USART_DRV_NUM);
#define ptrUSART       (&USART_Driver_(USART_DRV_NUM))


/**
  Initialize stdout

  \return          0 on success, or -1 on error.
*/
int stdout_init (void) {
  int32_t status;

  status = ptrUSART->Initialize(NULL);
  if (status != ARM_DRIVER_OK) return (-1);

  status = ptrUSART->PowerControl(ARM_POWER_FULL);
  if (status != ARM_DRIVER_OK) return (-1);

  status = ptrUSART->Control(ARM_USART_MODE_ASYNCHRONOUS |
                             ARM_USART_DATA_BITS_8       |
                             ARM_USART_PARITY_NONE       |
                             ARM_USART_STOP_BITS_1       |
                             ARM_USART_FLOW_CONTROL_NONE,
                             USART_BAUDRATE);
  if (status != ARM_DRIVER_OK) return (-1);

  status = ptrUSART->Control(ARM_USART_CONTROL_TX, 1);
  if (status != ARM_DRIVER_OK) return (-1);

  return (0);
}


/**
  Put a character to the stdout

  \param[in]   ch  Character to output
  \return          The character written, or -1 on write error.
*/
int stdout_putchar (int ch) {
  uint8_t buf[1];

  buf[0] = ch;
  if (ptrUSART->Send(buf, 1) != ARM_DRIVER_OK) {
    return (-1);
  }
  while (ptrUSART->GetTxCount() != 1);
  return (ch);
}
[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

这个是标准函数 应该不用重定义的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2013-12-17
在线时间
5 小时
 楼主| 发表于 2017-5-25 16:24:45 | 显示全部楼层
so 发表于 2017-5-26 02:07
printf这个函数不是要重定义吗

这个是标准函数 应该不用重定义的
回复

使用道具 举报

0

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2014-12-22
在线时间
39 小时
发表于 2017-5-26 02:07:09 | 显示全部楼层
printf这个函数不是要重定义吗
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2013-12-17
在线时间
5 小时
 楼主| 发表于 2017-5-26 11:00:58 | 显示全部楼层
已经解决
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-11-28
在线时间
3 小时
发表于 2020-8-25 10:42:49 | 显示全部楼层
请问下是怎么解决的呢?我调用了就卡死
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 17:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表