2019-07-14 15:47发布
wen58452035 发表于 2018-11-23 16:52 很常见的问题。 RCC_AHB1ENR |= 1<<2; 将GPIOC的时钟打开,然后紧接着 GPIOC_MODER |= 1<<14; 就操作了GPIOC的寄存器,两次对AHB总线的访问靠得太近了。也就是说RCC修改要延迟一下,还没来得及把GPIOC激活,就对GPIOC的MODER发出了读写请求,导致没读或写成功。 在两条语句中间插一条 __NOP(); 或者 __DMB(); ...
60user58 发表于 2018-11-23 17:04 0x1ff0xxxx是System memory区域。
HNHS 发表于 2018-11-23 16:20 问题解决。 不用调试器就行了。 参考:http://www.keil.com/support/docs/3778.htm
最多设置5个标签!
RCC_AHB1ENR |= 1<<2; 将GPIOC的时钟打开,然后紧接着 GPIOC_MODER |= 1<<14; 就操作了GPIOC的寄存器,两次对AHB总线的访问靠得太近了。也就是说RCC修改要延迟一下,还没来得及把GPIOC激活,就对GPIOC的MODER发出了读写请求,导致没读或写成功。
在两条语句中间插一条 __NOP(); 或者 __DMB(); 等待一下。
多谢提醒。这个我注意到了,但我不明白为什么PC会指向system memory内。
板子的BOOT0、BOOT1都接GND了,启动方式应该也没有问题。
现在发现这是歪打正着了,不过就这样吧...
一周热门 更多>