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的CAN电机驱动板设计 uart串口DMA的实现