用cube重新配置uart2后同时打开了exti模块的问题

发表在 BSP2019-3-18 12:44 [复制链接] 9 1109

BSP:用的正点原子F429阿波罗的BSP,官网最新下载的。
8 W1 X, }9 @% q现象:我想用该BSP的uart2作为控制台的输出(默认是BSP),看说明uart2的管脚涉及到复用功能,要用cube进行配置。我用的cube版本是最新的5.1.0,F4固件库默认的是STM32Cube FW_F4 V1.22.0,但是我网上没有下载到,于是下载了最新的F4固件库是V1.24.0版本的。用cube只打开了uart2功能,其他没动,最后编译出错,检查发现stm32f4xx_hal_conf.h文件里打开了宏定义#define HAL_EXTI_MODULE_ENABLED,但是对应的.h头文件却没有包含进来,所以编译出错。
4 T7 T' ^; ~. R+ d7 l& `( F1 |) p% G, F疑问:理论上是不会打开EXTI模块的,是不是我用了1.24.0的库的问题?
# X4 k, H0 e6 ?6 Z* N
/ E9 L5 |9 y7 i" j; d' r
微信截图4.png
微信图片1.png
微信图片2.png
微信图片3.png
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-3-18 14:28:36 | 显示全部楼层
BSP默认都有控制台输出的,为啥要重新配置?
使用道具 举报 回复
发表于 2019-3-18 14:52:41 | 显示全部楼层
本帖最后由 shibinjiech 于 2019-3-18 14:57 编辑
" F; N8 r( n* H. @
misonyo 发表于 2019-3-18 14:28
9 |  z9 d# M* v9 A+ z- Q* rBSP默认都有控制台输出的,为啥要重新配置?

; Y8 D$ i0 I* f" ^2 U3 b  t; ?& a这个不是重点呀。我现在发现啥都不改,重新用cube生成一下代码,stm32f4xx_hal_conf.h文件里这个宏定义#define HAL_EXTI_MODULE_ENABLED    就打开了,导致编译出错
使用道具 举报 回复
发表于 2019-4-16 16:27:00 | 显示全部楼层
我也遇到了这个问题,用cubemx5.1生成代码的时候,会自动声明一个HAL_EXTI_MODULE_ENABLED的宏,在keil中编译会导致没有引用相应的头文件而导致出错,每次使用cubemx以后注释掉这段宏就可以正常使用了
使用道具 举报 回复
发表于 2019-4-16 16:28:42 | 显示全部楼层
misonyo 发表于 2019-3-18 14:28; X( D, k8 f; u) l4 e1 S
BSP默认都有控制台输出的,为啥要重新配置?
  d3 Y' _6 t1 B  S% w
因为是移植的bsp,需要使用cubemx修改默认的串口引脚,可能是cubemx的原因会自动添加一个HAL_EXTI_MODULE_ENABLED的宏,需要手动注释才能在keil中编译通过
使用道具 举报 回复
发表于 2019-4-24 16:31:59 | 显示全部楼层
ZhouJin 发表于 2019-4-16 16:27- ?8 }- Z6 y; J( ?
我也遇到了这个问题,用cubemx5.1生成代码的时候,会自动声明一个HAL_EXTI_MODULE_ENABLED的宏,在keil中编 ...

0 I* [! p  b8 e' U/ i换个低版本的就没有问题,最新版本的有问题。
使用道具 举报 回复
发表于 2019-8-24 13:03:27 | 显示全部楼层
HAL_EXTI_MODULE_ENABLED这个宏定义的是什么功能?
使用道具 举报 回复
发表于 2019-8-24 13:53:12 | 显示全部楼层
这是因为你的 CUBEMX 新版的,生成的 hal_confg.h 里面带了 #define HAL_EXTI_MODULE_ENABLED  会包含 #include stm32f1xx_hal_exti.h 但是 RTT 里面的是库不是最新的,里面没有这个文件,所以就报错了。
7 m! a* n$ {5 N8 W
使用道具 举报 回复
发表于 2019-12-25 07:43:38 来自手机 | 显示全部楼层
你好!楼主,我也是用的cube版本是最新的5.1.0,F4固件库是STM32Cube FW_F4 V1.22.0,想重新配置uart2,但是编译出来的代码是基于Hal库的工程文件啊,没有rt-thread内核什么的,想问一下如何重新配置uart2啊,希望有人能够指点一下。
使用道具 举报 回复
发表于 2020-1-7 09:07:47 | 显示全部楼层
最近刚在学习STM32和RTT,也碰到了楼主相同的问题,经过试验,发现是新版的cubemx新增加的,造成RTT里旧版的库缺少stm32f1xx_hal_exti.h和stm32f1xx_hal_exti.c。
* P) L% _; G) T7 U' w  {1 Q' s
) U" x/ z- V4 Q. m% n6 C7 {" z9 e2 a& V处理方法如下:
& m  c+ `0 D- R7 O  * 法1: 注释掉#define HAL_EXTI_MODULE_ENABLED3 F5 u) t* K6 `, {: x( F# P1 z
  * 法2: ( }' Y' W2 U7 o+ d7 t
  将新生成的bsp\stm32\stm32f103-atk-warshipv3\board\CubeMX_Config\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h拷到RTT对应目录下bsp\stm32\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Inc$ w9 J, R& x( y2 U- U3 Z
6 e$ a7 T. i6 [. ?
将新生成的bsp\stm32\stm32f103-atk-warshipv3\board\CubeMX_Config\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c拷到RTT对应目录下bsp\stm32\libraries\STM32F1xx_HAL\STM32F1xx_HAL_Driver\Src3 Q1 ]) l$ E& k: [% N
( x5 j# V' x; d! ~# d- {2 V1 S
* h, }) T2 s& S4 o

" ^! F& f' I9 ^3 T% H6 B+ G* v; r& `/ _
RTT版本: 4.0.2,用ENV配置。
8 B6 b9 R4 d' |RTT自带的原子战舰V3的BSP:bsp\stm32\stm32f103-atk-warshipv3
! K& c4 B/ A3 M5 e战舰BSP自带的cubemx工程:bsp\stm32\stm32f103-atk-warshipv3\board\CubeMX_Config\CubeMX_Config.ioc$ h- O0 ?2 S; i6 d/ {
cubemx版本: 5.4.0,固件:STM32Cube FW_F1 V1.8.0, }1 d4 N! c" r7 h3 r+ c$ L, T, n
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  1. 4 主题
  2. 114 帖子
  3. 114 积分

Ta的主页 发消息

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表