stm32的 IAR 工程升级库函数中遇到的问题

由于产品比较老,使用的stm32的库函数已经很老,有一些新的函数没有,打算升级到3.5.0。

经过导入个人的.h,.c文件,官方的FWLIB库文件,以及CMSIS文件。经过编译,果然有很多错误和警告,一一排除后,最后遇到了

一大堆的"Warning[Pe223]: function "__DSB" declared implicitly E:........\CMSIS\coresupport\core_cm3.h 1723 "
 

stm32的 IAR 工程升级库函数中遇到的问题_第1张图片

在网上查询说是工程配置里面没有选择正确 型号类型。可是看了下,自己明明配置好了。

经过摸索发现, 不用自己导入"core_cm3.h "文件,而在iar的工程配置里面选择好

Use CMSIS,使用IAR自己的CMSIS。这样这些警告就消失了。

stm32的 IAR 工程升级库函数中遇到的问题_第2张图片

还遇到了一个修改,滴答计时器的问题。

    if (SysTick_Config(SystemCoreClock / 1000)) // ST3.5.0库版本

    {         /* Capture error */ 

        while (1);    }

使用上面的函数替换之前的直接写寄存器的语句后,运行程序就会死机,卡死在:

HardFault_Handler
        B HardFault_Handler

最后找到是因为,滴答定时器的中断服务函数,在3.5.0的库中修改为

void SysTick_Handler(void),带一个下划线,之前的函数不带。

你可能感兴趣的:(stm32,硬件调试,SysTick)