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

RT论坛_Thread

RT论坛_Thread伊伊
2025年01月14日📖 4 分钟
LIKE.TG 社交媒体链接LIKE.TG 社交媒体链接LIKE.TG 社交媒体链接LIKE.TG 社交媒体链接
Fansoso粉丝充值系统

LIKE.TG | 发现全球营销软件&服务汇聚顶尖互联网营销和AI营销产品,提供一站式出海营销解决方案。唯一官网: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汇集全球营销软件&服务,助力出海企业营销增长。提供最新的“私域营销获客”“跨境电商”“全球客服”“金融支持”“web3”等一手资讯新闻。

点击【联系客服】 🎁 免费领 1G 住宅代理IP/proxy, 即刻体验 WhatsApp、LINE、Telegram、Twitter、ZALO、Instagram、signal等获客系统,社媒账号购买 & 粉丝引流自助服务或关注【LIKE.TG出海指南频道】【LIKE.TG生态链-全球资源互联社区】连接全球出海营销资源。


Banner广告
Banner广告
Banner广告
Banner广告
全球峰会
Server deployment