发布时间:2025-10-15 17:04:44    次浏览
各位大神,我现在移植一套程序到stm32F4上,之前是在PC机上跑的,考虑到这款芯片有FPU所以选的这款,在DEBUG的时候发现很多问题,除了设置FPU外,发现一些很简单的运算也会出问题,不知道有没有遇到同样问题的人,经常会跳到HardFault_Handler这个函数中去,有没有人知道这怎么解决的?之前是因为FPU设置没有开启,所以遇到浮点运算就会崩溃,一些简单的浮点赋值语句就会崩溃,但是现在开启了,但是现在一些简单的计算还是会崩溃,有没有人遇到过这种情况的?今天也在找这个问题,看到这个还是12年的帖子,帖子中还没有解决问题的方法。我把我找到的分享一下:这是ST的库的问题,在systeminit的函数里,加上以下这一句就行了,就是打开fpu的意思,没有这一句,选了 keil的选项也没用的,另外你试试keil的软仿貌似也是不行的,从0x00000无法跳转,总之太新了,bug太多。void SystemInit(void){/* FPU settings ------------------------------------------------------------*/#if (__FPU_PRESENT == 1) (__FPU_USED == 1)SCB-CPACR |= ((3UL 10*2)|(3UL 11*2)); /* set CP10 and CP11 Full Access */#endif原文链接:http://www.eeworld.com.cn/mcu/article_2016101230379.html