前言:

上一节,我们完成了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. 知乎热议:28岁郭宇期权过亿,彪悍从字节退休,旅居日本开温泉酒店
  2. https是如何保证数据传输的安全
  3. Linux kernel 3.10内核源码分析--进程上下文切换
  4. DBCHM-最简单、实用的数据库表列批注维护工具
  5. 2-5:套接字(Socket)编程之从内核角度深入理解套接字
  6. seajs学习一天后的总结归纳
  7. 网页下载CAB文件总结
  8. 【angularjs】pc端使用angular搭建项目,实现导出excel功能
  9. Atitit ForkJoinTask的使用以及与futuretask的区别 1.1. Forkjoin原理图 1 1.2. Fork/Join使用两个类完成以上两件事情:ForkJoinTask
  10. dmz和端口映射_端口映射和DMZ的区别
  11. 解决Visio和office365安装兼容问题
  12. webx3对请求的处理流程详解一
  13. 论“黄海和渤海开凿人工运河的分析”(最新)
  14. [渝粤教育] 天水师范学院 人文地理学 参考 资料
  15. 计算机键盘优点,机械键盘有哪些优点
  16. C#:CAN通讯上位机的简单示例Ⅱ
  17. Python/虚数or复数的表示
  18. 《Java 并发编程实践》导图笔记
  19. 浅识k8s中的准入控制器
  20. mysql innodbrowlocktime_MySQL innodb行锁测试

热门文章

  1. Chrome 100发布:启用全新图标,修复28个安全漏洞
  2. 那个名为 XROS 的操作系统,倒在了元宇宙浪潮中!
  3. 全球Top 1000计算机科学家h指数公布,中国顶尖计算机科学家人数进入前三
  4. 2 万字长文详解 10 大多线程面试题|原力计划
  5. Go语言潜力有目共睹,但它的Goroutine机制底层原理你了解吗?
  6. 云原生开发环境初探 | CSDN 博文精选
  7. 如何简单粗暴地上手 TensorFlow 2.0?
  8. 全面解析腾讯最新开源 loT 操作系统 TencentOS tiny!
  9. Facebook 实时聊天架构日均处理数十亿条消息!
  10. 乔纳森离开苹果;李彦宏被泼水;Windows 公开 Linux 内核源代码 | 开发者周刊