清空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的相关寄存器 控制寄存器 工作 ...
最新文章
- Settings.System暂存/读取数据
- cin.ignore的用法
- C++中static关键字作用
- 在Ubuntu11.10下构建hadoop实验环境笔记
- matplotlib 散点图_matplotlib画图 绘制散点图案例
- 升级nodejs至最新
- curlopt_ssl_verifypeer后https还是验证不过_为什么 HTTPS 需要 7 次握手和 9 倍时延
- python撩人的代码,老师教已毕业的学生,用Python代码每天不定时撩女友,附源码文件...
- ANDROID cmake版本下载,android studio中为gradle指定cmake版本
- 基于redis的简易单点登录系统
- 西门子g120变频器接线图_西门子变频器G120如何通过速度限幅来避免飞车的发生...
- MySQL中rank函数的使用
- 网线线序和插座插头配线规则和光纤接口分类
- TypeError this.getOptions is not a function 的解决
- excel表格打印每页都有表头_13个关于Excel表格的打印技巧
- 网页显示不正常怎么修复
- 发力“智能马桶”的小米们,选对了目标群体吗?
- InnoDB: space header page consists of zero bytes in tablespace ./mysql/iyikcr32.ibd (table mysql/iyi
- java如何解压rar文件怎么打开,Java压缩与解压rar文件
- DVB-S2 DVB-S2X DVB-DSNG 发射机 接收机FPGA IP
热门文章
- any、never......TypeScript 中这些特殊的类型,你会用了吗?
- 如何进行时间序列的特征工程?
- 由浅入深,解决三道【只出现一次的数】!
- Java变量声明在循环体内还是循环体外,你用哪一个?
- 光刻机的“崛起秘密”,第一本ASML的企业成长传记来了!
- 为何字节跳动、腾讯、阿里都要用Python?CSDN都要对它下手了!
- 两万字 40 张图带你参透并发编程
- 搞 Python 的程序员,不懂这一点,耽误自己成长!现在看还来得及
- 十万开发者票选,顶级当红讲师来了!
- 雷军:4G 手机已清仓,全力转 5G;QQ音乐播放中途插语音广告引热议;Wine 5.9 发布 | 极客头条...