RTT-Studio使用CubeMx开发串口报错

Posted Jeck xu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RTT-Studio使用CubeMx开发串口报错相关的知识,希望对你有一定的参考价值。

RTT-Studio使用CubeMx开发串口报错

一、问题描述

在RT-Thread Studio进行开发,建立了基于芯片(STM32F407ZET6)的工程,打开STM32CubeMX进行基本外设配置,配置完成生成代码,回到Studio IDE进行编译时一堆报错,具体如下:

../drivers/drv_usart.c:94:5: error: unknown type name 'UART_HandleTypeDef'
     UART_HandleTypeDef handle;
     ^
../drivers/drv_usart.c: In function 'stm32_configure':
../drivers/drv_usart.c:413:17: error: request for member 'Instance' in something not a structure or union
     uart->handle.Instance          = uart->config->Instance;
                 ^
../drivers/drv_usart.c:414:17: error: request for member 'Init' in something not a structure or union
     uart->handle.Init.BaudRate     = cfg->baud_rate;
                 ^
../drivers/drv_usart.c:415:17: error: request for member 'Init' in something not a structure or union
     uart->handle.Init.HwFlowCtl    = UART_HWCONTROL_NONE;
                 ^
../drivers/drv_usart.c:415:38: error: 'UART_HWCONTROL_NONE' undeclared (first use in this function)
     uart->handle.Init.HwFlowCtl    = UART_HWCONTROL_NONE;
                                      ^
../drivers/drv_usart.c:415:38: note: each undeclared identifier is reported only once for each function it appears in
../drivers/drv_usart.c:416:17: error: request for member 'Init' in something not a structure or union
     uart->handle.Init.Mode         = UART_MODE_TX_RX;

二、原因分析

以上报错都是与串口有关,而移植RT-Thread时使用了串口1作为终端串口,开始时工程默认配置好,但重新配置完Cube后,串口1确没有配置,所以出现报错!

三、解决方法

在STM32CubeMX里面配置一下我们用到的终端串口,例如我这里使用的是串口1,在cubeMX里面点击配置就行

20210503205107

bug解决

20210503210458

以上是关于RTT-Studio使用CubeMx开发串口报错的主要内容,如果未能解决你的问题,请参考以下文章

STM32CubeMX开发04——串口打印

STM32CubeMX之串口配置

STM32多串口实现printf——基于cubemx

STM32F103+CubeMX+ADC采集直流

小熊派开发笔记-串口读取RS485输出的土壤七合一传感器数据(基于STM32CubeMX)

安装STM32CubeMX,stm32串口通信