2867|1

181

帖子

1

TA的资源

一粒金砂(高级)

楼主
 

[GD32L233C] + 4.使用RTThread的rt_kprintf或stdio的printf [复制链接]

基于 GD32L233C使用RTThread_rt_kprintf

​①:在rtconfig.h中打开console

 

②:魔术棒中勾选USB MicroLIB

 

③:board.c中头文件添加:

#include <rthw.h>
#include "systick.h"
#include <rtthread.h>
#include "gd32l23x.h"
#include "gd32l233c_start.h"
#include "gd32l23x_usart.h"

④:在rt_hw_board_init()中添加:

//通过"gd32l233c_start.h"中的函数初始化串口0
gd_eval_com_init(EVAL_COM);

 

⑤:屏蔽#error "TODO 2“

//#error "TODO 2: Enable the hardware uart and config baudrate."

⑥:屏蔽#error "TODO 3“,重映射串口DEBUG_USARTx到rt_kprintf()函数

void rt_hw_console_output(const char *str)
{
//#error "TODO 3: Output the string 'str' through the uart."
/**
  * [url=home.php?mod=space&uid=159083]@brief[/url] 重映射串口DEBUG_USARTx到rt_kprintf()函数
  *   Note:DEBUG_USARTx是在bsp_usart.h中定义的宏,默认使用串口1
  * @param  str:要输出到串口的字符串
  * @retval 无
  * [url=home.php?mod=space&uid=1020061]@attention[/url] */
	/* 进入临界段 */
	rt_enter_critical();

	/* 直到字符串结束 */
	while (*str!='\0')
	{
		/* 换行 */
		if (*str=='\n')
		{
			usart_data_transmit(EVAL_COM, '\r'); 
			while (usart_flag_get(EVAL_COM, USART_FLAG_TC) == RESET);
		}

		usart_data_transmit(EVAL_COM, *str++); 				
		while (usart_flag_get(EVAL_COM, USART_FLAG_TC) == RESET);	
	}	

	/* 退出临界段 */
	rt_exit_critical();
}

⑦:修改完便可以使用rt_kprintf打印了

 

 

基于 GD32L233C使用printf

main中添加如下,可使用printf

①:头文件添加stdio:

#include "stdio.h"

②:在最后添加:

/* retarget the C library printf function to the USART */
int fputc(int ch, FILE *f)
{
	usart_data_transmit(USART0, (uint8_t) ch );              //发送字符
	while (usart_flag_get(USART0,USART_FLAG_TC) == RESET);   //检查是否发送完毕
	return (ch);
}

③:便可以使用printf打印了

 

此帖出自GD32 MCU论坛

最新回复

RTThread的rt_kprintf或stdio的printf打印差别还不小, printf打印简单不少   详情 回复 发表于 2022-2-8 07:29
点赞 关注
 

回复
举报

6802

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

RTThread的rt_kprintf或stdio的printf打印差别还不小,

printf打印简单不少

此帖出自GD32 MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表