MDK3.8a + EK-STM3210E开发板 + ST_LINKII 最初用库文件中的USART的interrupt文件作为原型,串口收发正常,把定时器2 加上,也可以。把IO也加上,但一运行根本不会进入MAIN,一直都在HardFault_Handler处。不 明为何,慢慢删除,成了现在模样。我发现如果编译通过出现如下的提示,就会正常: Program Size: Code=2580 RO-data=336 RW-data=152 ZI-data=648 此时增加代码, while (1) { if(vT2_5ms_cnt >= 200) { vT2_5ms_cnt = 0x00; //if(P_OrangeLED_TST() ) P_OrangeLED_CLR(); //else P_OrangeLED_SET(); P_OrangeLED_SET(); P_OrangeLED_CLR(); P_OrangeLED_SET(); // P_OrangeLED_CLR(); //把这句打开,编译后Code加大到2588 // P_OrangeLED_SET(); // P_OrangeLED_CLR(); } } //while (1) 主循环 编译通过出现如下的提示,就会不正常:( Code>2580 就会出现问题 ) Program Size: Code=2588 RO-data=336 RW-data=152 ZI-data=648 是否编译器有问题,还是配置有问题?为什么我做的老跑到HardFault_Handler?还请高人指点指点! 文件路径:stm32f10x_stdperiph_lib_v3.0.0/Project/Template/RVMDK/ |
stm32f10x_stdperiph_lib_v3.0.0.rar
下载1.17 MB, 下载次数: 3, 下载积分: ST金币 -1
RE:换了种方法也会停在 HardFault_Handle ?
2、确定你的stm32芯片ram和flash的大小;
3、你进去的是硬件错误中断,说明你的某个操作引起硬件错误;
4、你说大于2580就会出这样的错误,我怀疑是你的代码超出STM32范围。