ST意法半导体
直播中

李敏

8年用户 1444经验值
私信 关注
[问答]

配置MODER寄存器时STM32CUBEID调试崩溃怎么解决?

你好。我正在使用 STM32L476RG 核。我正在尝试调试裸机代码。遗憾的是,当我的调试到达配置 MODER 寄存器的行时,它停止工作。  
控制台显示如下:Target 没有响应,正在重试...
它一直说,直到调试器失去连接。
debuggur失去连接的那一行:GPIOA->MODER = 0x400;
但是,当我用 OR 调试器编写同一行时,它很好:GPIOA->MODER |= 0x400;
一旦我删除 OR(|) 它就会崩溃。问题在于 OR 它不会更改寄存器值并且我的代码将无法运行。任何解决方案?
  • #include "stm32l4xx.h"                  // Device header
  • void delayMs(int delay);
  • int main(void)
  • {
  •         RCC->AHB2ENR |= 1;                    // enable GPIOA clock, 00000000000000000000000000000001
  •         GPIOA->MODER = 0x400;                // set PA5 as output, 0b 0000 0000 0000 0000 0000 0100 0000 0000, default value //0xABFFF7FF?
  •         while(1){
  •                 GPIOA->ODR = 0x20;                  // set PA5 output data register 1, 0b .... 0010 0000
  •                 delayMs(100);
  •                 GPIOA->ODR &=~ 0x20;
  •                 delayMs(100);
  •         }
  • }
  • void delayMs(int delay)
  • {
  •         int i;
  •         for(; delay>0; delay--){
  •                 for(i = 0; i<3195; i++);
  •         }
  • }




回帖(1)

康伟

2023-1-6 11:31:06
PA13 和 PA14 是 SWDIO 和 SWCLK,即运行调试器的引脚。不要更改它们的默认 GPIO 设置(请参阅 RM 中的 GPIO 章节),否则您将失去调试功能。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分