打印
[STM32F1]

STM32F103ZGT6 的 UART1 接收数据时不能触发中断

[复制链接]
490|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
地瓜patch|  楼主 | 2025-4-30 22:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用STM32F103ZGT6 的 UART1 接收数据时触发中断处理程序。
将 STM32CubeIDE 生成的代码,稍微修修改,在状态寄存器 USART1.SR 中设置“Byte Received”标志 RXNE (设置为 1),中断通过控制USART1 位 RXNEIE 启用,在 NVIC 中启用了中断。第 5 位ISER1对应于 USART1 全局中断的中断 37。但是中断处理程序 USART1_IRQHandler() 没能出发中断。
仿真中 USART1_IRQHandler() 处理程序的地址是 0x80007f8。但是中断矢量表中(矢量位于 0x0000_00D4)中的数据是 0x80007f9而不是 0x80007f8,地址相差 1。
在 STM32CubeIDE 中使用 API 调用 HAL_UART_Receive_IT()接收字符。
差 1 是什么问题?可能是 int 处理程序未触发的原因吗?

使用特权

评论回复
沙发
stormwind123| | 2025-5-7 12:34 | 只看该作者
未使能USART1或GPIOA时钟?

使用特权

评论回复
板凳
flycamelaaa| | 2025-5-7 14:09 | 只看该作者
调用GPIO_Init()将PA10配置为浮空输入或上拉输入。

使用特权

评论回复
地板
powerantone| | 2025-5-7 15:06 | 只看该作者
USART_IT_RXNE中断未使能?

使用特权

评论回复
5
stormwind123| | 2025-5-7 19:00 | 只看该作者
检查PA10引脚连接是否正确,信号电平是否匹配。

使用特权

评论回复
6
probedog| | 2025-5-7 22:00 | 只看该作者
启用USART1接收中断。

使用特权

评论回复
7
暖了夏天蓝了海| | 2025-5-12 13:00 | 只看该作者
STM32的中断向量表要求每个中断处理程序的地址按4字节对齐(ARM Cortex-M3规范)。

使用特权

评论回复
8
淡漠安然| | 2025-5-12 13:30 | 只看该作者
如果USART1_IRQHandler的地址是0x80007F8,但向量表中存储的地址是0x80007F9,说明地址未正确对齐。

使用特权

评论回复
9
一秒落纱| | 2025-5-12 15:00 | 只看该作者
编译器可能未强制对齐函数地址,或链接脚本(.ld文件)未正确配置。

使用特权

评论回复
10
光辉梦境| | 2025-5-12 16:03 | 只看该作者
在STM32CubeIDE中,检查链接脚本(通常为STM32F103ZGTx_FLASH.ld),确保中断向量表按4字节对齐

使用特权

评论回复
11
夜阑风雨| | 2025-5-12 16:32 | 只看该作者
建议保证USART1_IRQHandler函数的定义无额外修饰(如__attribute__((aligned(4))))。

使用特权

评论回复
12
冰春彩落下| | 2025-5-12 17:00 | 只看该作者
  如果USART1_IRQHandler被错误地修饰(如使用__attribute__((weak))或未正确声明为中断处理程序),可能导致地址偏移。

使用特权

评论回复
13
江河千里| | 2025-5-12 17:59 | 只看该作者
  向量表偏移寄存器(VTOR):如果启用了向量表重映射(通过SCB->VTOR),需确保VTOR指向正确的起始地址。

使用特权

评论回复
14
远山寻你| | 2025-5-12 18:25 | 只看该作者
检查反汇编代码:在STM32CubeIDE中,右键点击USART1_IRQHandler函数 > Open Call Hierarchy > Disassembly,确认其实际地址是否为0x80007F8。如果地址显示为0x80007F9,可能是编译器优化或对齐问题。

使用特权

评论回复
15
三生万物| | 2025-5-12 18:53 | 只看该作者
在startup_stm32f103xg.s文件中,检查USART1_IRQHandler的条目是否与函数地址一致

使用特权

评论回复
16
别乱了阵脚| | 2025-5-12 19:13 | 只看该作者
一定要确认已启用USART1全局中断,确认UART1的TX/RX引脚(PA9/PA10)无短路或断路,外部设备已正确发送数据。

使用特权

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

本版积分规则

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

1674

主题

14490

帖子

28

粉丝