官方社群在线客服官方频道防骗查询货币工具

RT论坛_Thread

2025年01月14日 02:16:49
news.like.tgnews.like.tgnews.like.tgnews.like.tg

LIKE.TG 成立于2020年,总部位于马来西亚,是首家汇集全球互联网产品,提供一站式软件产品解决方案的综合性品牌。唯一官方网站:www.like.tg

大家好,又见面了,我是你们的朋友全栈君。

文章主要参考:https://blog.csdn.net/killercode11/article/details/104290949,借鉴了rt_hw_console_getchar()的定义。

文章目录

  • 将 FinSH源码添加到工程
  • 开启 FinSH
  • 定义终端读取函数
  • 体验 FinSH
  • 遇到的问题

本文不介绍 RT-Thread 的串口配置,如有需要,可以参考:重映射串口到 rt_kprintf 函数

将 FinSH源码添加到工程

FinSH源码在 RT-Thread 源码目录的 components\finsh\ 目录下,

将其导入到工程中,具体操作这里不做介绍,记得要把头文件包含进来,

开启 FinSH

修改 rtconfig.h,开启 finsh config,下面是使用 Configuration Wizard 向导进行图形化配置,

其实就是将 finsh_fonfig.h 头文件包含到工程中,这个头文件里有 FisSH 的基本参数配置,

定义终端读取函数

移植完 FinSH 源码后,初次编译一般会报一个错误,需要将弱化函数 rt_hw_console_getchar() 里的 #error 这行屏蔽掉(记得先把该文件的只读属性关闭)

接着我们在 board.c 文件手动重新定义 rt_hw_console_getchar() 函数,函数内容如下,这是标准库版本,如果需要 HAL库版本,可以参考文章最前面的链接。

代码语言:javascript
复制
char rt_hw_console_getchar(void) { /* Note: the initial value of ch must < 0 */ int ch = -1; if(USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_RXNE) != RESET) { //USART_ClearITPendingBit(USART_DEBUG, USART_FLAG_RXNE); ch = USART_ReceiveData(DEBUG_USARTx) & 0xFF; } else { if(USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_ORE) != RESET) { USART_ClearITPendingBit(DEBUG_USARTx, USART_FLAG_ORE); } rt_thread_mdelay(10); } return ch; }

Jetbrains全家桶1年46,售后保障稳定

体验 FinSH

我使用 SSCOM 来作为终端,效果还不错,命令直接在显示窗口里输入。

或许有人会问为什么不用 PuTTy、XShell 这类常用的终端软件,我也想用,但连接上这类终端软件后,开发板就不运行了。

遇到的问题

1.段错误

导致这种错误的原因有很多种,比如 RT_MAIN_THREAD_STACK_SIZE 太小,而我是因为 RT_THREAD_PRIORITY_MAX 设置得太小(只设置为 8),小于 FINSH_THREAD_PRIORITY 的默认值 21,所以解决办法就是将 FINSH 的线程优先级(数值)改小或者将系统优先级最大值(数值范围)改大。

2.终端工具无法打印

使用 PuTTy、XShell,终端没反应,且开发板会卡住。初步分析的原因是 “正点原子一键下载电路和终端工具冲突”(网上他人结论),所以只能用串口调试助手来操作 Finsh 了。

3.程序不运行

这个问题可能的原因也很多,但需要注意的是:如果要使用 FinSH,就不能开启串口中断,至于为什么,我目前也没去了解。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/210436.html原文链接:https://javaforall.cn

现在关注【LIKE.TG出海指南频道】【LIKE.TG大客户服务频道】,即可免费领取【WhatsApp、LINE、Telegram、Twitter、ZALO云控】等获客工具试用、【住宅IP、号段筛选】等免费资源,机会难得,快来解锁更多资源,助力您的业务飞速成长!点击【联系客服】

本文由LIKE.TG编辑部转载自互联网并编辑,如有侵权影响,请联系官方客服,将为您妥善处理。

This article is republished from public internet and edited by the LIKE.TG editorial department. If there is any infringement, please contact our official customer service for proper handling.


Server deployment全球论坛人工智能论坛全球峰会发展论坛战略论坛开放论坛程序员论坛互联网峰会科技峰会
加入like.tg生态圈,即可获利、结识全球供应商、拥抱全球软件生态圈加入like.tg平台,即可获利、结识全球供应商、拥抱全球营销软件生态圈加入like.tg生态资源圈,即可获利、结识全球供应商、拥抱全球软件生态圈
加入like.tg生态圈,即可获利、结识全球供应商、拥抱全球软件生态圈加入like.tg平台,即可获利、结识全球供应商、拥抱全球营销软件生态圈加入like.tg生态资源圈,即可获利、结识全球供应商、拥抱全球软件生态圈