|
MCU是STM32F407IGT6,使用的是cubemx自动生成,CUBEIDE编译环境: flash如下配置: MEMORY { CCMRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 64K RAM (xrw) : ORIGIN = 0x20000010, LENGTH = 0x0001FFE0 FLASH_BOOT (rx) :ORIGIN = 0x08000000, LENGTH = 48K /放入boot程序/ FLASH_DATA (rx) :ORIGIN = 0x0800C000, LENGTH = 16K /数据区,存放密码/ FLASH_APP (rx) : ORIGIN = 0x08010000, LENGTH = 960K / 从第4扇区开始(0x08010000) 960K/ } system_stm32f4xx.c中如下更改: define VECT_TAB_BASE_ADDRESS FLASH_BASEdefine VECT_TAB_OFFSET 0x10000SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; int main(void) { / USER CODE BEGIN 1 / SCB->VTOR = 0x08010000; / USER CODE END 1 / / MCU Configuration--------------------------------------------------------/ / Reset of all peripherals, Initializes the Flash interface and the Systick. / HAL_Init(); / USER CODE BEGIN Init / / USER CODE END Init / / Configure the system clock / SystemClock_Config(); / USER CODE BEGIN SysInit / MX_TIM12_Init(); LL_TIM_EnableCounter(TIM12); SetResetBit(); MX_DMA_Init(); MX_I2C2_Init(); MX_CRC_Init(); EEPROMInit(0); } 做如上配置后,每次烧录后的第一次运行都是正常的,在cubeide中点击复位能运行到main,然后,再运行,就不进tick中断,IIC读EEPROM也会卡死在while循环中,请问什么原因? |
STM32CUBE调试中出现没有 “uwTickPrio() at 0x20000004” 对应的源文件
有没有大佬更新了CubeIDE2.0.0,在软件内更新后体积大了一倍
关于STM32Cubemx 6.15版本生成工程的文件编码的问题
在STM32CUBEIDE中配置完以后直接编译然后再运行出现《没有 “_end() at 0x20000108” 对应的源文件》
在STM32CUBEIDE中配置完以后直接编译出现《没有 “huart2() at 0x20000108” 对应的源文件》
我最近在用stm32f407做CAN通讯的回环+静默,但是现在显示可以成功发送数据,FIFO接收不到数据,这是什么原因啊
STM32CubeMX每次打开后第一次从Board新建工程
关于加密环境下使用STM32CubeIDE for VSCode的问题
DMA传输完成后,串口与DMA一直处于忙状态
CubeAI如何加载caffe模型
微信公众号
手机版
终于解决了,是bootloader跳转时关闭了中断,所以到APP程序初始化时需要打开中断。多谢各位👍
检查一下中断向量表的状态,是不是因为boot里面产生的中断导致出错。重新初始化tick后,是否可以解决该问题。
观测到向量表的值是正确的:
SCB->VTOR volatile uint32_t 0x8010000 (Hex)
/ USER CODE BEGIN 1 /
SCB->VTOR = 0x08010000;
HAL_DeInit();
/ USER CODE END 1 /
/ MCU Configuration--------------------------------------------------------/
/ Reset of all peripherals, Initializes the Flash interface and the Systick. /
HAL_Init();
/ USER CODE BEGIN Init /
/ USER CODE END Init /
/ Configure the system clock /
SystemClock_Config();
/ USER CODE BEGIN SysInit /
HAL_InitTick (TICK_INT_PRIORITY);
MX_TIM12_Init();
LL_TIM_EnableCounter(TIM12);
SetResetBit();
MX_DMA_Init();
MX_I2C2_Init();
MX_CRC_Init();
EEPROMInit(0);
增加了HAL_DeInit以及有重新HAL_InitTick (TICK_INT_PRIORITY);还是不对。
STM32 IAP应用时的跳转注意事项