【软件RT-Thread Studio下配置STM32H743xx串口发送数据-基础样例】

(1)叙述

有段时间 不调试RT-Thread Studio,相关配置也忘得差不多了,自己记录笔记的好处是,可用按照以前方式再走一遍,很容易实现。
但是在实现过程中,如下,是我自己之前写的,发后续有些部分是有问题的,之前有人评论没太在意,这次再次尝试,也补全这些。

软件RT-Thread Studio下配置STM32F4xx串口uart2和uart4发送数据-基础样例

(2)环境

软件环境:PC - win
软件环境:RT-Thread Studio
在这里插入图片描述

硬件环境:STM32H743xxx(正点开发板)
其它硬件:j-link下载器,usb转接type线,两根杜邦线。
在这里插入图片描述

(3)步骤说明-相关说明

1、步骤说明

操作流程,对我这样初学者非常关键,操作步骤的执行下虽然没有固定步骤,但是有些关键没做到,那么就可以会失败。
讲个以前笑话,把大象装进冰箱需要几步,答案是三步,第一步:将冰箱打开,第二部:将大象装进冰箱,第三步:将冰箱门关上。
讲个例子,有点像Linux读写文件,需要几步呢,还是三步,第一步:找到文件,第二步:读写文件,第三步:关上文件。
上面两个例子是为了更好理解接下来要做的事情,就是RT-thread下串口发送数据需要几步,答案是三步,第一步找到串口,第二部找到串口设备了配置,第三步,发送数据。

2、相关说明-问题说明。

首先,还是稍微有些歉意的,因为之前的文章,存在一些误导,当时调完F4后,就继续弄,后来才发现,代码有问题。

软件RT-Thread Studio下配置STM32F4xx串口uart2和uart4发送数据-基础样例

自己在实际调试过程中,在main里运行代码时,不会反复发送,如下图所示。
在这里插入图片描述
下完后,只运行一遍。

3、问题解决方式。

因为我只在H7上进行实验的,发现这个问题,对比了下官网代码,应该是某些代码确实,配置不对导致的
https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/uart/uart_v1/uart

所以我最后使用了官网的代码调通了。

在这里插入图片描述

4、补充说明。

我自己在生活中,尽可能把自己遇到的问题都说明出来,帮大家避开,但受限自己的能力及其,不可能穷尽。所以只能遇到就记录,有时候,网友遇到问题,我可能因为不了解情况,没办法解决。

如下,是当时f4的评论区,当时很多问题没有验证,所以不知道,请谅解,社区大家维护,才能一点点给他人帮助。
在这里插入图片描述

(4) 前期准备

1、实验说明

本次我们打算开三个额外串口,分别是 uart2 uart3 uart4 .
然后让其发送数据。只有发送数据,说明其中配置。

2、实验过程

想要实现串口,我们需要一些基本配置,使用RT-thread studio 配置基本样例。
(1)使用软件建立基础工程
在这里插入图片描述

(2)根据自己单片机样例配置,调试器有j-link就选默认就好,其他的就修改下。
在这里插入图片描述
建立过程中
在这里插入图片描述
(3)更改代码,修改时钟频率为480,
其实在开始的时候,也提示了,开发板默认使用内部的时钟。
在这里插入图片描述
我们找到之前收到配置的480工程。复制里面的代码。

【软件STM32cubeIDE下STM32H743xx使用:看门狗iwdg+复位标志位-基础样例】

RTC配置好的代码:https://download.csdn.net/download/qq_22146161/88356935

在这里插入图片描述
具体情况再截个图。
在这里插入图片描述

然后还有个地方需要改写下
在这里插入图片描述

(4)编译,硬件连接自己开发板子,或者demo板子,使用串口工具测试通信 ,这里因为是开发板,直接使用开发板上的串口。
在这里插入图片描述

如下图所示是硬件连接
在这里插入图片描述

至此基础样例基本可以,我们继续向下

(5)代码配置情况

1)代码配置

(1)基本参数配置

在这里插入图片描述

(2)确认引脚

查原理图或者手册,确定uart2和uart4引脚,因为我用的是正点开发板,所以查对应原理图如下

在这里插入图片描述

简单说

 - PA2  >>  uart2-TX 
 - PA3  >>  uart2-RX 
 - PB10 >> uart3-TX
 - PB11 >> uart3-RX
 - PC10  >>  uart4-TX
 - PC11  >>  uar4-RX

在board.h文件下加入如下代码
在这里插入图片描述

(3)配置文件

在文件rt-thread>>components>>drivers>>include>>drivers找到serial.h串口文件,很多配置其实rt-thread帮我们做好,我们需要自己连接下,如下图,找到文件后包含两个头文件。

#include <completion.h>
#include <dataqueue.h>

在这里插入图片描述

这步做完了了需要使用配置连接下,让编译器找到文件。
在这里插入图片描述

打开后选择文件洗头,选择对应目录
“{你建立工程下}rt-thread\components\drivers\include\drivers”

”{你建立工程下}rt-thread\components\drivers\include\ipc“
选择这个文件夹,因为以上其中一个文件在这里,我选择默认的所以添加的目录为
“C:\RT-ThreadStudio\workspace\demo-test\rt-thread\components\drivers\include\drivers”

”C:\RT-ThreadStudio\workspace\demo-test\rt-thread\components\drivers\include\ipc“

在这里插入图片描述

如下图,包含文件然后确定应该,同理找到第二个文件
在这里插入图片描述

选择好了后,进行编译,如何在这个过程中进行编译,那么会有很多错误,现在再编译可以消除
在这里插入图片描述

配置这自己配置的时候也老报错,多尝试,确保文件连接进来了,否则就会蒙圈。文件需要一个个连接。

(4)代码功能段

在这里插入图片描述
然后在while 里加入相关代码

在这里插入图片描述

2)硬件连接

(5)连接设备,开发板条线连接,现在因为使用串口,没有额外的串口工具的话,我们可以用uart1的串口232,需要我们跳线。
在这里插入图片描述
当然如果你没有这样的开发板,可以找个usb转串口硬件连接起来,记得共地,串口工具也有便宜点的,在网上淘就行了。
在这里插入图片描述

3)验证

1、硬件连接-uart2

在这里插入图片描述

2、代码验证-uart2

uart2如图所示,在串口上看到结果

在这里插入图片描述

3、硬件连接-uart3

在这里插入图片描述

4、代码验证-uart3

在这里插入图片描述

5、硬件连接-uart4

在这里插入图片描述

6、代码验证-uart4

uart4如图所示,在串口上看到结果
在这里插入图片描述

(6)代码说明以及代码样例

很多配置地方rt-thread帮我们写好了,我们只要调用就行。
(1)配置在结构体内,如下图,有需要再复制更改就行。
在这里插入图片描述

在这里插入图片描述

(7)代码部分

所用代码连接,觉得有价值,需要的话就拿走吧。
https://download.csdn.net/download/qq_22146161/88756287

(8)细节部分

(1)串口线不导通问题

有个细节需要主要下,有时候代码下进去了,串口软件也打开了,但是发现没有任何串口,这可能是串口驱动问题,或者串口线本身问题,当时测试时自己使用的串口线发现线本身不能用。

j-link下载下图所示
在这里插入图片描述

如下图所示,系统初步没有问题,每隔1s打印信息,控制台是Finsh,默认是设置了的。
在这里插入图片描述
我们可以在RT-Tread Settings内找到它,没配置的话可以勾选上。
在这里插入图片描述
如下图在组件节目内可以勾选上。
在这里插入图片描述

(2)串口打印软件,无输出,但是在打印问题

如下所示,发现在打印,但是没有任何数据,后来靖哥哥确认是波特率原因
在这里插入图片描述
如下图波特率更改后,可用了
在这里插入图片描述

(3)代码编译报错

复制粘贴的时候,很容易出现忘记改名字情况。
在这里插入图片描述

在实际编写过程中,发现报错,如下图,有地方重名了。
在这里插入图片描述

(9)总结

求真求实~~

<think>好的,我现在需要帮助用户解决RT-Thread Studio串口终端无法输入的问题。根据用户提供的引用资料,我需要先分析可能的原因,然后逐步给出解决方案。首先,用户提到在引用[1]和[2]中,串口终端无法连接或没有输出,甚至可能导致程序挂掉。这可能涉及到配置错误、硬件问题或者软件冲突。 首先,我应该检查串口配置是否正确。引用[3]提到需要修改宏定义和GPIO设置,这可能意味着用户的UART驱动程序没有正确配置如,是否在board.h中启用了UART2,并设置了正确的引脚?另外,用户是否在RT-Thread Settings中打开了对应的串口设备,并配置了正确的参数,比如波特率? 其次,CubeMX的使用可能影响工程。根据引用[4],如果在使用CubeMX生成代码后没有正确关闭,可能会导致RT-Thread Studio无法正常操作。用户需要确认是否在生成代码后关闭了CubeMX,再重新打开工程进行编译。 另外,硬件连接问题也是常见的。用户需要检查串口线是否接触良好,或者是否使用了正确的USB转串口模块。同时,是否有其他软件占用了串口,比如串口调试助手未关闭,导致端口被占用? 还有可能中断冲突或优先级问题。如果用户启用了中断接收,但中断配置不正确,可能导致程序卡死。需要检查中断服务函数是否正确注册,中断优先级是否合理,以及是否在接收数据时处理得当,避免死锁或资源竞争。 最后,用户可能需要查看终端配置,比如是否选择了正确的串口端口,是否在RT-Thread Studio的终端设置中启用了流控制等。有时,关闭流控制(如RTS/CTS)可以解决无法输入的问题。 综合这些可能性,我应该分步骤引导用户逐一排查,从软件配置到硬件连接,确保每个环节都正确无误。同时,参考提供的引用资料中的解决方案,如修改宏定义、检查CubeMX的使用流程、验证串口调试助手的使用情况等,帮助用户找到问题根源并解决。</think>以下为RT-Thread Studio串口终端无法输入问题的逐步解决方案: ### 一、检查硬件配置 1. **确认硬件连接** - 检查USB转串口模块与MCU的UART引脚连接是否正确(TX接RX,RX接TX) - 使用万用表测量串口电压是否正常(通常3.3V电平) 2. **排查硬件冲突** - 尝试更换USB接口或串口模块,排除硬件故障 - 使用其他串口调试工具(如PuTTY)验证串口功能是否正常[^2] --- ### 二、验证软件配置 1. **CubeMX与工程配置冲突** - 若使用CubeMX生成代码,必须关闭CubeMX后再操作RT-Thread Studio[^4] - 在`board.h`中添加UART宏定义(示): ```c #define BSP_USING_UART2 #define UART2_TX_PIN PA2 #define UART2_RX_PIN PA3 ``` 2. **驱动配置检查** -RT-Thread Settings中启用UART设备驱动 - 确认`drv_usart.c`中已注册对应串口的中断服务函数[^3] --- ### 三、排查软件冲突 1. **端口占用问题** - 关闭其他串口调试工具(如SecureCRT、Xshell) - 通过设备管理器检查串口是否被异常占用 2. **终端参数设置** ```python # RT-Thread终端默认参数应匹配代码配置 波特率 = 115200 数据位 = 8 停止位 = 1 校验位 = None ``` -Studio终端设置中关闭流控制(RTS/CTS选项) --- ### 四、调试代码逻辑 1. **中断配置验证** - 检查中断优先级设置是否冲突(建议UART中断优先级设为中等级别) - 添加调试语句验证中断触发情况: ```c void UART2_IRQHandler(void) { rt_kprintf("UART2 Interrupt Triggered\n"); // 调试输出 /* 中断处理逻辑 */ } ``` 2. **内存溢出检测** - 使用`list_thread`命令查看线程栈使用情况 - 检查串口接收缓冲区是否溢出(可通过减小接收缓冲区大小测试) --- ### 五、特殊场景处理 若出现**打开终端后程序挂起**的现象: 1. 检查`rt_hw_console_getchar()`函数实现 2. 确认未在中断服务程(ISR)中调用阻塞式API 3. 使用`hard_fault`调试工具定位异常位置 --- ### 典型解决方案流程图 ```mermaid graph TD A[无法输入] --> B{硬件检测} B -->|正常| C[CubeMX配置验证] B -->|异常| D[更换硬件] C --> E[驱动层检查] E --> F[终端参数匹配] F --> G[中断配置调试] G --> H[功能验证] ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好奇龙猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值