STM32L072RB有两个BANK,
按参考手册的说法,在对一个Bank进行擦写的时候不会影响到另一个Bank的写。 也就是说可以在写Bank2的EEPROM时可以响应中断(中断服务函数等都是放在Bank1的Flash中),对吗? http://www.eemaker.com/stm32l0-eeprom-nvm.html这份帖子也是这么认为的。 但是我实际测试的时候发现写Bank2的EEPROM,串口RX中断会使MCU死机。 Why????? int main(void) { uint32_t primask_bit; uint32_t i; uint32_t *wAddr; /* Configure the system clock to 16 MHz */ SystemClock_Config(); /* Initialize LED2 */ LED_Init(); /* Set LED2 Off */ LED_Off(); /* Initialize button in EXTI mode */ UserButton_Init(); /* Configure USARTx (USART IP configuration and related GPIO initialization) */ Configure_USART(); primask_bit = __get_PRIMASK(); __disable_irq(); FLASH->PEKEYR = FLASH_PEKEY1; FLASH->PEKEYR = FLASH_PEKEY2; __set_PRIMASK(primask_bit); /* Infinite loop */ while (1) { wAddr=(uint32_t *)(DATA_EEPROM_BANK2_BASE); LL_mDelay(1000); LED_On(); for(i=0;i<100;i++) { *wAddr++=0x99887766; } LED_Off(); } } |
评分
查看全部评分
没问题吧
我写的地址是EEPROM
评分
查看全部评分
谢谢大神!