2203|1

173

帖子

1

TA的资源

一粒金砂(高级)

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

基于 GD32L233C使用RTThread_rt_kprintf

​①:在rtconfig.h中打开console

image.png  

②:魔术棒中勾选USB MicroLIB

image.png  

③: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

回复
举报

6319

帖子

0

TA的资源

五彩晶圆(高级)

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

printf打印简单不少

此帖出自GD32 MCU论坛

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
2007年全国大学生电子设计竞赛 电子产品类题目 讨论专用帖

本帖最后由 paulhyde 于 2014-9-15 09:19 编辑 2007年全国大学生电子设计竞赛 电子产品类题目 讨论专用帖 题目稍后

单片机控制飞梭的原理

有搞过这方面的朋友吗?能否给个AVR控制这个元件的原理

实用电子秤(C)(山东省电子设计大赛)

摘 要 本系统采用单片机AT89S52为控制核心,实现电子秤的基本控制功能。系统的硬件部分包括最小系统板,数据采集、人机交 ...

【赛题大汇总】选录09及往年各省、地区竞赛题目

【赛题大汇总】选录09及往年各省地区竞赛题目,各位有兴趣可以拿来练习预热哦~~ 2008年广西省大学生电子设计竞赛试题 A题:宽带 ...

【NUCLEO-F746ZG学习】构建工程-基于RT-Thread

本帖最后由 annysky2012 于 2021-1-21 15:56 编辑 有几天没有更新学习的进度了,因为一直在忙着解决问题。基于对RT-Thread的 ...

电源充电电路

本人想弄一个充电电路,用TYPEC 接口给1860电池充电,由于充电器的型号很多,想实现能适应宽泛电压的充电电路,从而保护后级电路 ...

[GD32L233C] + 6.使用软件SPI驱动OLED

本帖最后由 chrisrh 于 2022-2-19 16:05 编辑 使用IO模拟SPI驱动0.96'的OLED 查看数据手册: 588930 选用 ...

直播FAQ:如何在几分钟之内完成高效可靠的USB PD电源设计—PI Expert™分步教程

直播主题:如何在几分钟之内完成高效可靠的USB PD电源设计—PI Expert™分步教程 内容简介: USB PD充电器/ ...

【智能网络台灯】5. ESP32-S2 使用sntp进行网络校时

# 过往分享 (https://bbs.eeworld.com.cn/thread-1212955-1-1.html "【2022得捷电子创新设计大赛】最晚开箱帖") (【2022得捷电 ...

41“万里”树莓派小车——ROS学习(ROSBridge控制小乌龟)

本帖最后由 lb8820265 于 2022-11-3 22:29 编辑 前面介绍了使用键盘控制小乌龟,使用指令控制小乌龟,使用自己编写的C语言 ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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