STM32F103ZET6 UART4无法进入中断无法进入中断
调了两天UART4,现象是查询方式收发都正常。但是无法使用中断方式,仿真检查了UART4的寄存器配置完全
正常,NVIC寄存器配置也正常。接收数据后NVIC的IABR也相应置位。
更换3.5.0库的startup_stm32f10x_hd.s也不行实在没有办法。网上查可以REMAP USART3串口使用。于是使用USART3、和
库自带的startup_stm32f10x_hd.s编译下载,现象和UART4一样无法进入中断。更换回中断生成的 STM32F10x.s 后成功进入
USART3中断。由此判断库自带的startup_stm32f10x_hd.s存在问题。对比STM32F10x.s 和startup_stm32f10x_hd.s文件发现
处理XXX_Handler以外还有很多不同的地方。于是把不同的地方改成与STM32F10x.s一样后,再配置UART4就可以进入中断
了。
修改完成的代码贴出来:
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
;* File Name : startup_stm32f10x_hd.s
;* Author : MCD Application Team
;* Version : V3.5.0
;* Date : 11-March-2011
;* Description : STM32F10x High Density Devices vector table for MDK-ARM
;* toolchain.
;* This module performs:
;* - Set the initial SP
;* - Set the initial PC == Reset_Handler
;* - Set the vector table entries with the exceptions ISR address
;* - Configure the clock system and also configure the external
;* SRAM mounted on STM3210E-EVAL board to be used as data
;* memory (optional, to be enabled by user)
;* - Branches to __main in the C library (which eventually
;* calls main()).
;* After Reset the CortexM3 processor is in Thread mode,
;* priority is Privileged, and the Stack is set to Main.
;* <<< Use Configuration Wizard in Context Menu >>>
;*******************************************************************************
; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
;*******************************************************************************
; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; Stack Configuration
评论0