前言:

上一节,我们完成了GD32VF103在RT_Thread Nano上的移植,本节我们为其增加控制台输出功能,以及通过FinSH组件和用户交互功能。

一、基础知识

1.FinS H简介

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

二、添加步骤

1.导入工程

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

重新import进来新的工程

2.控制台输出

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

(1) 串口初始化

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

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

(2) 实现 rt_hw_console_output

在gd32vf102c_start.c文件中,实现rt_hw_console_output如下:

void rt_hw_console_output(const char str){    rt_enter_critical();    while(str != '0')    {        if ('' == *str)        {            usart_data_transmit(EVAL_COM0, '' );            while ( usart_flag_get(EVAL_COM0, USART_FLAG_TBE)== RESET);        }        usart_data_transmit(EVAL_COM0, (uint8_t) *str++ );        while ( usart_flag_get(EVAL_COM0, USART_FLAG_TBE)== RESET);    }    rt_exit_critical();}

(3) 修改main.c中led_process_thread_entry函数

void led_process_thread_entry(void parameter){    rt_err_t ret = RT_EOK;    while(1)    {        / insert 500 ms delay /        rt_thread_mdelay(500);        / toggle the LED /        gpio_bit_write(GPIOA, GPIO_PIN_1, (bit_status)(1-gpio_input_bit_get(GPIOA, GPIO_PIN_1)));        rt_kprintf("toggle the LED");        / insert 500 ms delay */        rt_thread_mdelay(500);    }}

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

三、运行结果

运行结果如下所示

清空shell控制台内容_RISC-V单片机快速入门03-基于RT_Thread Nano添加控制台相关推荐

  1. 【51单片机快速入门指南】4.2: SSD1306 OLED屏(0.96寸、1.3寸)的I2C控制详解

    目录 硬知识 SSD1306简介 I2C 接口 从机地址位(SA0) I2C 总线写数据 命令解码器 晶振电路和显示时间发生器 复位 图形显示数据RAM (GDDRAM) 命令表 基本命令表 部分指令 ...

  2. 【51单片机快速入门指南】4.6:I2C 与 PCF8563实时时钟日历芯片

    目录 硬知识 概述 特性 功能描述 报警功能模式 定时器模式 CLKOUT输出 复位低电压检测器和时钟监视器 低电压检测器和时钟监视器 寄存器结构 寄存器概述 BCD编码格式寄存器概述 Control ...

  3. 【51单片机快速入门指南】6.3:DS18B20 单总线数字温度计的多路读取

    目录 硬知识 DS18B20介绍 时序 初始化时序 写时序 读时序 命令 ROM 操作命令 ROM 搜索举例 存贮器操作命令 示例程序 DS18B20.c DS18B20.h 测试程序 定时器中断服务 ...

  4. 【51单片机快速入门指南】6.1:LCD1602的八线、四线控制及自定义符号,完美兼容Proteus仿真

    目录 硬知识 显示特性 接口定义 操作时序 写操作时序 读操作时序 寄存器 忙标志位BF 地址计数器(AC) 显示数据寄存器(DDRAM) CGROM CGRAM 指令 清屏指令 光标归位指令 进入模 ...

  5. 【51单片机快速入门指南】5.1:SPI与DS1302时钟芯片

    目录 硬知识 DS1302 简介 DS1302 使用 控制寄存器 日历/时钟寄存器 DS1302 的读写时序 电路设计 示例程序 DS1302.c DS1302.h 测试程序 main.c 实验现象 ...

  6. 【51单片机快速入门指南】4.4.2:Mahony AHRS 九轴姿态融合获取四元数、欧拉角

    目录 传感器的方向 源码 Mahony_9.c Mahony_9.h 使用方法 测试 main.c 效果 STC15F2K60S2 22.1184MHz Keil uVision V5.29.0.0 ...

  7. 【51单片机快速入门指南】4.4.1:python串口接收磁力计数据并进行最小二乘法椭球拟合

    目录 硬知识 Python代码 使用方法 串口收集数据 椭球拟合 验证 STC15F2K60S2 16.384MHz Keil uVision V5.29.0.0 PK51 Prof.Develope ...

  8. 【51单片机快速入门指南】3.3:USART 串口通信

    目录 快速使用 硬知识 串行口相关寄存器 串行口控制寄存器SCON和PCON 串行口数据缓冲寄存器SBUF 从机地址控制寄存器SADEN和SADDR 与串行口中断相关的寄存器IE和IPH.IP 串行口 ...

  9. 【51单片机快速入门指南】3.2:定时器/计数器

    目录 快速使用 硬知识 传统51单片机 CPU 时序的有关知识(12T) 51 单片机定时器原理 51 单片机定时/计数器结构 定时器/计数器0/1 定时器/计数器0和1的相关寄存器 控制寄存器 工作 ...

最新文章

  1. linux定时任务定向到空,Linux 定时任务下 /dev/null 21 相关知识说明
  2. BZOJ1315 : Ural1557Network Attack
  3. php $this self,php this self 用法与区别
  4. 前端设计模式责任链模式
  5. crackme算法分析---CRC32算法的妙用
  6. android 查找字符在字符串的位置
  7. SAP Spartacus 服务器端渲染编程规范
  8. E20170830-mk
  9. 中国象棋程序的设计与实现(五)--回答CSDN读者的一些问题
  10. linux驱动编写(lcd驱动)
  11. hack wifi android,WiFi Hack AIO 2010 - WiFi v1.2
  12. MPEG2简单码流分析
  13. I2C总线协议/地址详解
  14. 【机器视觉】——焦距计算物体实际尺寸计算
  15. Mycat快速入门(六): Mycat管理命令和监控
  16. 在html中进行表单设计,谈谈网页中的表单设计
  17. win7系统的记事本打不开了 怎么解决
  18. 打字游戏c语言easyx,打字小游戏(天降字母)Visual Studio+EasyX
  19. 2018 ACM-ICPC, Syrian Collegiate Programming Contest I. Rise of the Robots 最小圆覆盖 模板
  20. 除夕跨年烟花特效[原创]

热门文章

  1. 百亿美元合同告吹!微软“到嘴的鸭子”飞了
  2. 叫板英特尔,英伟达发布首个 CPU,集齐“三芯”!
  3. 起底 Windows 35 年发展史
  4. Kubernetes v1.19 正式发布!更新 33 项功能
  5. 为信息产业自主化而奋斗,第一本龙芯平台的Linux内核书来了!
  6. Python 爬取近十万条程序员招聘数据,告诉你哪类人才和技能最受热捧! | 原力计划...
  7. 一行命令自动给图片戴上口罩,硬核操作!
  8. 特殊时期,字节跳动高效有序的远程协作办公经验,值得各企业学习!
  9. 余承东吐槽苹果续航;微软 IE 浏览器被曝漏洞;React Native 0.61.0 发布 | 极客头条...
  10. 平均年薪 70 万!刚刚,这类程序员又涨薪了!佩服!