查看: 1457|回复: 2
收起左侧

RISC-V单片机快速入门03-基于RT_Thread Nano添加控制台

[复制链接]
发表于 2020-6-26 20:14:52 | 显示全部楼层 |阅读模式

有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 小飞飞 于 2020-8-28 19:47 编辑

RISC-V单片机快速入门01-开发环境搭建
RISC-V单片机快速入门02-移植RT_Thread Nano
RISC-V单片机快速入门03-基于RT_Thread Nano添加控制台
RISC-V单片机快速入门04-基于RT_Thread Nano添加FinSH
RISC-V单片机快速入门05-串口助手发送AT指令启动TCP Server
RISC-V单片机快速入门06-控制ESP8266启动Http Server
RISC-V单片机快速入门07-板载LCD显示ESP8266数据




本系列上一篇:RISC-V单片机快速入门02-移植RT_Thread Nano完成了GD32VF103在RT_Thread Nano上的移植,

本篇我们为其增加控制台输出功能,以及通过FinSH组件和用户交互功能。

一,基础知识

1.FinS H简介

RT-Thread FinSH 是 RT-Thread 的命令行组件(shell),提供一套供用户在命令行调用的操作接口,主要用于调试或查看系统信息。它可以使用串口 / 以太网 / USB 等与 PC 机进行通信,使用 FinSH 组件基本命令的效果图如下所示:

基于RT_Thread Nano添加控制台_01.png

二,添加步骤

1.导入工程

将上一节内容进行复制,修改.project中工程名字为lesson3

基于RT_Thread Nano添加控制台_02.png
重新import进来新的工程

基于RT_Thread Nano添加控制台_03.png

2.控制台输出

适配号控制台输出,就可以使用RT_Thread中rt_kprintf()函数进行串口信息的打印,方便调试Bug、获取系统当前运行状态。

(1) 串口初始化

在gd32vf102c_start.c中定义调试串口初始化函数void uart_debug_init(void),同时在gd32vf103c_start.h中声明。

基于RT_Thread Nano添加控制台_04.png

然后再board.c中rt_hw_board_init()函数中调用uart_debug_init()。

基于RT_Thread Nano添加控制台_05.png

(2) 实现 rt_hw_console_output

在gd32vf102c_start.c文件中,实现rt_hw_console_output如下:
  1. void rt_hw_console_output(const char str)
  2. {
  3.     rt_enter_critical();
  4.     while(str != '\0')
  5.     {
  6.         if ('\n' == *str)
  7.         {
  8.             usart_data_transmit(EVAL_COM0, '\r' );
  9.             while ( usart_flag_get(EVAL_COM0, USART_FLAG_TBE)== RESET);
  10.         }
  11.         usart_data_transmit(EVAL_COM0, (uint8_t) *str++ );
  12.         while ( usart_flag_get(EVAL_COM0, USART_FLAG_TBE)== RESET);
  13.     }
  14.     rt_exit_critical();
  15. }
复制代码

(3) 修改main.c中led_process_thread_entry函数
  1. void led_process_thread_entry(void parameter)
  2. {
  3.     rt_err_t ret = RT_EOK;
  4.     while(1)
  5.     {
  6.         / insert 500 ms delay /
  7.         rt_thread_mdelay(500);
  8.         / toggle the LED /
  9.         gpio_bit_write(GPIOA, GPIO_PIN_1, (bit_status)(1-gpio_input_bit_get(GPIOA, GPIO_PIN_1)));
  10.         rt_kprintf("toggle the LED\r\n");
  11.         / insert 500 ms delay */
  12.         rt_thread_mdelay(500);
  13.     }
  14. }
复制代码

增加rt_kprintf("toggle the LEDrn");函数,每隔1S打印一次数据。

三,运行结果

运行结果如下所示

基于RT_Thread Nano添加控制台_06.png

四,QQ交流群:728522642 (备注:物联网项目交流)

本篇完*

相信自已,未来是自已创造的。
点评回复

使用道具 举报

发表于 2020-6-27 09:49:57 | 显示全部楼层
能跟第三方调试软件结合起来,高手啊!!
全球首家只专注于RISC-V单片机行业应用的中文网站
发表于 2020-6-27 12:17:41 | 显示全部楼层
大佬,带带我呗!!!
全球首家只专注于RISC-V单片机行业应用的中文网站
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

关闭

RISC-V单片机中文网上一条 /2 下一条



版权及免责声明|RISC-V单片机中文网

GMT+8, 2025-11-18 02:24 , Processed in 0.216279 second(s), 33 queries .

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