RT-Thread多串口调试

Posted 绵绵呀。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RT-Thread多串口调试相关的知识,希望对你有一定的参考价值。

文章目录


前言

本人大三通信工程小白一枚,近期学习RTOS,为了能够巩固所学习的知识,且方便日后查询,故将学习中遇到的困难记录下来。
文章中若有错误之处,恳请大佬们指点更正!


一、遇到的困难(UART1串口中断无法进入)

在调试串口的时候,一直使用的是系统的FinSH控制台做为串口输出,于是想使用另一个串口来进行其他命令的输入。但是在实际的配置过程中,发现定义了UART1之后,却一直无法进入串口中断。而在使用命令行后,串口也可以进入中断。

二、发现问题

之后发帖求助后,才得知,通常情况下UART1会在新建工程的时候用作FinSH控制台的输出。也就是UART1已经被系统使用了,所以再重新配置会导致程序出错。

三、解决问题

通过以上的分析,解决方法也很明了了:
方法1、将系统的FinSH控制器改为UART2输出;
方法2、将自己使用的串口改为UART2。

1.修改FinSH

1.1配置STM32CubeMX

进入目录“.\\board\\CubeMX_Config”找到CubeMX的配置文件,将UART2的端口使能配置。

1.2修改Kconfig文件

进入目录“.\\board,找到Kconfig的配置文件,将UART2的端口使能配置。

1.3打开ENV进行设置

在程序目录中打开ENV,输入 menuconfig进入配置,依次进入“Hardware Drivers Config->On-chip Peripheral Drivers->Enable UART”,如图所示使能UART2。

再进入“RT-Thread Kernel->Kernel Device object”,如图所示将控制台改为串口2
保存退出至命令行输入,输入“scons --target=mdk5”,配置生成新程序。
至此,修改成功。

2.配置串口2

配置过程同上,只是不需要将串口配置为2。其余相同步骤。

四、代码部分

本文使用的代码为官网提供的示例程序,为大家附上链接,可直接参考。
https://www.rt-thread.org/document/site/programming-manual/device/uart/uart/#
把我的代码也打包给各位。
https://download.csdn.net/download/ethan_33/16818707

以上是关于RT-Thread多串口调试的主要内容,如果未能解决你的问题,请参考以下文章

安利一个适合调试rt thread的串口助手软件

RT-Thread串口接收的BUG(DMA缓存区太小)

基于RT-Thread的CAN电机驱动板设计 uart串口DMA的实现

RTT串口V1版本的使用分析及问题排查指南

先楫HPM6750测评RT-Thread开发环境搭建和Hello World

先楫HPM6750测评RT-Thread开发环境搭建和Hello World