软件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)总结
求真求实~~