打印
[STM32F0]

stm32f070串口接受中断进入硬件错误

[复制链接]
446|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
地瓜patch|  楼主 | 2025-3-25 22:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 地瓜patch 于 2025-3-25 23:07 编辑

为了解决stm32f407与stm32f070串口通信六七个小时后串口数据恒定不变的问题。
用cubeMX重新建立工程,生成项目代码。070用串口2中断接受407的数据。
出现的问题是在进入HAL_UART_RECEIVE_it()函数时,程序进入硬件错误HardFault_Handler 函数。
然后就没有然后了


使用特权

评论回复
沙发
地瓜patch|  楼主 | 2025-3-26 16:37 | 只看该作者
结帖,犯了个致命低级错误,加载文件startup_stm32f070x6.s搞成startup_stm32f030x6.s了,问题解决

使用特权

评论回复
板凳
peterLaw| | 2025-3-26 16:45 | 只看该作者
学习一下,一般启动函数会导致问题

使用特权

评论回复
地板
失物招領| | 2025-4-24 01:24 | 只看该作者
数组越界或指针非法访问,UART 接收缓冲区地址无效(如未初始化或越界)

使用特权

评论回复
5
她已醉| | 2025-4-24 02:35 | 只看该作者
中断嵌套或递归调用耗尽栈空间(STM32F070 的栈较小,默认约 1KB

使用特权

评论回复
6
将爱藏于深海| | 2025-4-24 03:36 | 只看该作者

时钟配置错误也可能会这样,UART 波特率或时钟源配置不匹配

使用特权

评论回复
7
捧一束彼岸花| | 2025-4-24 04:34 | 只看该作者
UART 中断优先级配置不当,导致嵌套中断触发 HardFault

使用特权

评论回复
8
故意相遇| | 2025-4-24 05:36 | 只看该作者
HardFault_Handler 中添加调试代码,读取 SCB 寄存器 确定错误类型

使用特权

评论回复
9
春日负喧| | 2025-4-24 06:36 | 只看该作者
确保传入HAL_UART_Receive_IT()的缓冲区地址有效且未被释放

使用特权

评论回复
10
春日负喧| | 2025-4-24 07:35 | 只看该作者

CubeMX中确认 USART2 的时钟源(如 PCLK1)和 波特率 与 STM32F407 一致(如 115200


使用特权

评论回复
11
白马过平川| | 2025-4-24 08:36 | 只看该作者
检查 USART2_TX/RX 引脚是否冲突(如被其他外设占用)

使用特权

评论回复
12
风凉| | 2025-4-24 09:36 | 只看该作者
避免 UART 中断被高优先级中断阻塞,在startup_stm32f070xx.s 中增大栈大小(如从 1KB 改为 2KB

使用特权

评论回复
13
西洲| | 2025-4-24 10:34 | 只看该作者
UART 错误回调函数中处理错误状态,HardFault 寄存器的具体值(CFSR/HFSR/MMFAR

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1507

主题

13887

帖子

27

粉丝