清空shell控制台内容_RISC-V单片机快速入门03-基于RT_Thread Nano添加控制台
前言:
上一节,我们完成了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添加控制台相关推荐
- 【51单片机快速入门指南】4.2: SSD1306 OLED屏(0.96寸、1.3寸)的I2C控制详解
目录 硬知识 SSD1306简介 I2C 接口 从机地址位(SA0) I2C 总线写数据 命令解码器 晶振电路和显示时间发生器 复位 图形显示数据RAM (GDDRAM) 命令表 基本命令表 部分指令 ...
- 【51单片机快速入门指南】4.6:I2C 与 PCF8563实时时钟日历芯片
目录 硬知识 概述 特性 功能描述 报警功能模式 定时器模式 CLKOUT输出 复位低电压检测器和时钟监视器 低电压检测器和时钟监视器 寄存器结构 寄存器概述 BCD编码格式寄存器概述 Control ...
- 【51单片机快速入门指南】6.3:DS18B20 单总线数字温度计的多路读取
目录 硬知识 DS18B20介绍 时序 初始化时序 写时序 读时序 命令 ROM 操作命令 ROM 搜索举例 存贮器操作命令 示例程序 DS18B20.c DS18B20.h 测试程序 定时器中断服务 ...
- 【51单片机快速入门指南】6.1:LCD1602的八线、四线控制及自定义符号,完美兼容Proteus仿真
目录 硬知识 显示特性 接口定义 操作时序 写操作时序 读操作时序 寄存器 忙标志位BF 地址计数器(AC) 显示数据寄存器(DDRAM) CGROM CGRAM 指令 清屏指令 光标归位指令 进入模 ...
- 【51单片机快速入门指南】5.1:SPI与DS1302时钟芯片
目录 硬知识 DS1302 简介 DS1302 使用 控制寄存器 日历/时钟寄存器 DS1302 的读写时序 电路设计 示例程序 DS1302.c DS1302.h 测试程序 main.c 实验现象 ...
- 【51单片机快速入门指南】4.4.2:Mahony AHRS 九轴姿态融合获取四元数、欧拉角
目录 传感器的方向 源码 Mahony_9.c Mahony_9.h 使用方法 测试 main.c 效果 STC15F2K60S2 22.1184MHz Keil uVision V5.29.0.0 ...
- 【51单片机快速入门指南】4.4.1:python串口接收磁力计数据并进行最小二乘法椭球拟合
目录 硬知识 Python代码 使用方法 串口收集数据 椭球拟合 验证 STC15F2K60S2 16.384MHz Keil uVision V5.29.0.0 PK51 Prof.Develope ...
- 【51单片机快速入门指南】3.3:USART 串口通信
目录 快速使用 硬知识 串行口相关寄存器 串行口控制寄存器SCON和PCON 串行口数据缓冲寄存器SBUF 从机地址控制寄存器SADEN和SADDR 与串行口中断相关的寄存器IE和IPH.IP 串行口 ...
- 【51单片机快速入门指南】3.2:定时器/计数器
目录 快速使用 硬知识 传统51单片机 CPU 时序的有关知识(12T) 51 单片机定时器原理 51 单片机定时/计数器结构 定时器/计数器0/1 定时器/计数器0和1的相关寄存器 控制寄存器 工作 ...
最新文章
- 知乎热议:28岁郭宇期权过亿,彪悍从字节退休,旅居日本开温泉酒店
- https是如何保证数据传输的安全
- Linux kernel 3.10内核源码分析--进程上下文切换
- DBCHM-最简单、实用的数据库表列批注维护工具
- 2-5:套接字(Socket)编程之从内核角度深入理解套接字
- seajs学习一天后的总结归纳
- 网页下载CAB文件总结
- 【angularjs】pc端使用angular搭建项目,实现导出excel功能
- Atitit ForkJoinTask的使用以及与futuretask的区别 1.1. Forkjoin原理图	1 1.2. Fork/Join使用两个类完成以上两件事情:ForkJoinTask
- dmz和端口映射_端口映射和DMZ的区别
- 解决Visio和office365安装兼容问题
- webx3对请求的处理流程详解一
- 论“黄海和渤海开凿人工运河的分析”(最新)
- [渝粤教育] 天水师范学院 人文地理学 参考 资料
- 计算机键盘优点,机械键盘有哪些优点
- C#:CAN通讯上位机的简单示例Ⅱ
- Python/虚数or复数的表示
- 《Java 并发编程实践》导图笔记
- 浅识k8s中的准入控制器
- mysql innodbrowlocktime_MySQL innodb行锁测试
热门文章
- Chrome 100发布:启用全新图标,修复28个安全漏洞
- 那个名为 XROS 的操作系统,倒在了元宇宙浪潮中!
- 全球Top 1000计算机科学家h指数公布,中国顶尖计算机科学家人数进入前三
- 2 万字长文详解 10 大多线程面试题|原力计划
- Go语言潜力有目共睹,但它的Goroutine机制底层原理你了解吗?
- 云原生开发环境初探 | CSDN 博文精选
- 如何简单粗暴地上手 TensorFlow 2.0?
- 全面解析腾讯最新开源 loT 操作系统 TencentOS tiny!
- Facebook 实时聊天架构日均处理数十亿条消息!
- 乔纳森离开苹果;李彦宏被泼水;Windows 公开 Linux 内核源代码 | 开发者周刊