stm32使能DSP,开启FPU

一、CUBEMX操作

软件中配置DSP

 

 生成的代码中可以找到两个DSP库 一个是HAL库生成MDK代码自带的在\Drivers\CMSIS\DSP中,另一个是刚刚配置的在\Middlewares\ST\ARM\DSP中。

开启软件的FPU

通过这段初始化代码知道需要两个宏定义,__FPU_PRESENT已经在stm32g473xx.h中自动定义好了,而__FPU_USED可以用两个办法定义

1.软件定义

2.代码定义

在stm32g473xx.h中#define __FPU_PRESENT             1U       /*!< FPU present  下方添加

#define __FPU_USED             1U       /*!< FPU present  

而按照之前看到的别的文章在魔术棒中添加,会不停的报重定义的警告,应该是cubemx都配置好了,后续手动加DSP库再添加

二、手动添加DSP

不在CUBEMX中添加DSP Library,可以自行在\Drivers\CMSIS\DSP中找到合适的静态库添加

b代表大端,l代表小端,f代表浮点

添加宏定义

,__FPU_PRESENT=1,__FPU_USED=1,ARM_MATH_CM4,__CC_ARM

参考博客:

基于STM32 HAL库的FFT计算与数学运算:幅值、频率、均方根、平均值、最大值、最小值、峰峰值与标准差_stm32 fft采样点数-优快云博客
STM32 HAL库 CUBEMX FPU 和 DSP库-优快云博客
在STM32中使用DSP库 - 封狼居胥的文章 - 知乎
https://zhuanlan.zhihu.com/p/462911261

 

<think>嗯,用户问的是关于STM32F103C8T6在Keil5环境下设置魔术棒(Magic Wand)的方法或教程。首先,我需要回忆一下魔术棒在Keil中的用途,它主要是用来配置项目的各种选项,比如目标芯片、编译选项、调试工具等等。用户可能刚接触Keil,所以需要详细的步骤说明。 首先,我应该先确定用户使用的是STM32F103C8T6,这款芯片属于Cortex-M3内核,所以在Keil中需要选择对应的设备型号。然后,魔术棒设置里关键的部分包括Target(目标选项)、Output(输出选项)、C/C++(编译器选项)、Debug(调试器配置)以及Utilities(编程工具设置)。可能需要分步骤讲解每个选项卡的设置要点。 接下来,用户的参考引用里提到了引用[1]和引用[2],其中引用[1]是关于Keil5配置STM32C8T6的基础,以及如何在Keil5上编辑Keil4的文件和配置其他板子。而引用[2]则涉及新建工程模板,包括基于寄存器和标准库的开发。这说明用户可能已经创建了工程,但需要进一步配置项目选项。 我需要确保提到的设置步骤正确,比如在Target选项卡中选择正确的晶振频率,启用正确的浮点单元(如果有的话),在C/C++中定义芯片型号相关的宏,比如STM32F10X_MD,并且包含头文件路径。调试部分,用户可能使用的是ST-Link或者J-Link,需要指导他们选择对应的调试器,并配置正确的设置,比如Reset and Run,以方便程序下载后自动运行。 另外,用户可能遇到的问题包括无法编译、调试器无法连接、生成的hex文件不正确等,所以在注意事项里需要提醒检查设备型号是否选对,调试器驱动是否安装,以及宏定义是否正确。 最后,生成的相关问题需要考虑用户可能的后续需求,比如如何优化代码大小,如何配置其他调试工具,或者如何添加第三方库等。这些问题应该围绕项目配置和调试展开,帮助用户进一步深入学习。</think>关于STM32F103C8T6在Keil5中的魔术棒(Options for Target)设置方法,以下是详细配置步骤: ### 一、基础配置流程 1. **打开魔术棒配置界面** 右键工程名 → 选择`Options for Target`(快捷键Alt+F7) 2. **Target选项卡设置** - 选择芯片型号:`STM32F103C8`(系统自动匹配C8T6) - 晶振频率:输入实际硬件值(默认8MHz) - 浮点单元:根据需求选择`Use Single Precision`(C8T6无硬件FPU) - 存储器配置: ``` IROM1: 0x8000000(起始地址) Size: 0x10000(64KB Flash) IRAM1: 0x20000000 Size: 0x5000(20KB SRAM) ``` 3. **Output选项卡** - 勾选`Create HEX File`生成烧录文件 - 选择输出文件夹:建议新建`/Output`目录 4. **C/C++选项卡** - 预定义宏(重要): ``` STM32F10X_MD, USE_STDPERIPH_DRIVER ``` - Include路径添加:标准库/寄存器开发对应的头文件目录[^2] ### 二、调试器配置(以ST-Link为例) 1. **Debug选项卡** - 选择调试器:`ST-Link Debugger` - 勾选`Reset and Run`实现自动复位运行 - 点击`Settings`→`Flash Download`添加芯片FLASH算法: `STM32F10x Med-density Flash` 2. **Utilities选项卡** - 勾选`Use Debug Driver` - 点击`Settings`→`Programming Algorithm`确认FLASH算法匹配 ### 三、关键配置示例代码 ```c // 时钟配置验证(需与魔术棒设置一致) RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON); while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET); ``` ### 四、注意事项 1. 若使用标准库开发,必须包含`stm32f10x.h`头文件路径[^2] 2. 寄存器开发需在预处理器中删除`USE_STDPERIPH_DRIVER`宏定义 3. 调试失败时检查ST-Link驱动是否安装`STSW-LINK009`最新版本[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值