解决:在STM32的标准库上添加DSP库时error: #247

2023-05-16

DSP库相对于标准的“math.h”对浮点计算做了优化和增强,运算速度更快。

关于STM32如何添加DSP库,网上有很多教程,笔者在实际操作时发现会遇到keil报error: 247的问题。针对于解决过程,在此做一个记录。

【错误原因】

error: 247:有一个同名已经被定义过了。

在这里是因为我们手动复制到工程里边的“cmsis_armcc.h”、“cmsis_compiler.h”,与“core_cm3.h”这个头文件有冲突。

【解决办法】

我们将core_cm3.h这个头文件,从工程目录下移除,或者更改一个名字。

【完整添加过程】

1.配置runtime environment

这里一定要同时勾选“DSP”和“CORE”

2.移除core_cm3.h

按照解决办法,将core_cm3.h从工程文件中删除或者重命名。

3.添加ARM_MATH_CM3宏定义

添加ARM_MATH_CM3宏定义

4.编译

添加头文件:

#include "math.h"
#include "arm_math.h"

5.测试

定义一个全局变量data,在main中使用arm_sin_f32计算30°的正弦值。

<END 文:雷打不动的晴天>


道阻且长,行则将至。

欢迎大家关注“兔子聊电路”,会不定期的分享一些遇到的电路问题和一些有趣的电路设计,更欢迎大家一起交流电路设计上的心得。同时,也会分享一些有意义的非技术类书籍。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决:在STM32的标准库上添加DSP库时error: #247 的相关文章

  • 如何让printf在STM32F103上工作?

    我是 STM32F103 世界的新手 我有一个STM32F103的演示代码 我正在使用arm none eabi来编译它 我尝试了在谷歌上可以找到的内容 但到目前为止没有任何效果 我已经花了三天时间来解决这个问题 任何人都可以给我一个运行良
  • CMSIS 库是否应该包含在版本控制中? [复制]

    这个问题在这里已经有答案了 通常 我曾经在版本控制中包含芯片供应商 ST 提供的设备特定标头和源以及 CMSIS Core 标头 数量不多 也没有更新的习惯 我使用STM32微控制器 但我不使用立方体框架 or the 标准外设库 最近 我
  • 134-基于stm32单片机矿井瓦斯天然气浓度温湿度检测自动通风系统Proteus仿真+源程序...

    资料编号 134 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 ds1302时钟 DHT11温湿度 电机 蜂鸣器 制作一个基于stm32单片机矿井瓦斯天然气浓度温湿度检测自动通风系统Proteus仿真 2 通过DH
  • 140-基于stm32单片机智能晾衣杆控制系统Proteus仿真+源程序

    资料编号 140 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 ds1302时钟 光敏传感器 蜂鸣器 LED灯 制作一个基于stm32单片机智能晾衣杆控制系统Proteus仿真 2 通过光敏传感器
  • rt-thread studio中新建5.0不能用

    文章目录 一 版本对比 二 文件和文件夹打斜杠 在使用RT Thread studio创建新工程5 0版本的时候 结果发现新建完成之后程序不能正常运行 但是创建4 10版本的时候却能运行 那肯定是新版本出现了BUG 一 版本对比 首先对比了
  • Push_back() 导致程序在进入 main() 之前停止

    我正在为我的 STM32F3 Discovery 板使用 C 进行开发 并使用 std deque 作为队列 在尝试调试我的代码 直接在带有 ST link 的设备上或在模拟器中 后 代码最终在 main 中输入我的代码之前在断点处停止 然
  • 匹配 STM32F0 和 zlib 中的 CRC32

    我正在研究运行 Linux 的计算机和 STM32F0 之间的通信链路 我想对我的数据包使用某种错误检测 并且由于 STM32F0 有 CRC32 硬件 并且我在 Linux 上有带有 CRC32 的 zlib 所以我认为在我的项目中使用
  • [MM32硬件]搭建灵动微MM32G0001A6T的简易开发环境

    作为学习单片机的经典 自然是通过GPIO点亮LED 或者是响应按钮的外部中断例程 这我们看看SOP8封装的芯片MM32G0001A6T得引脚 除了VDD和GND固定外 我们可以使用PA14 PA1 PA13 PA15 PA2 PA3这六个G
  • 纯国产DSP,QX320F28335,自研内核指令集,主频150MHz,自研工具链,硬件兼容TMS320F28335

    32位单核CPU 主频150MHz flash 1M SRAM 500KB 单精度浮点运算FPU 3个4M精度12位的ADC 12个ePWM 6个HRPWM 150ps
  • VS Code 有没有办法导入 Makefile 项目?

    正如标题所说 我可以从现有的 Makefile 自动填充 c cpp properties json 吗 Edit 对于其他尝试导入 makefile 的人 我找到了一组脚本 它们完全可以实现我想要实现的目标 即通过 VS Code 管理
  • 1.69寸SPI接口240*280TFT液晶显示模块使用中碰到的问题

    1 69寸SPI接口240 280TFT液晶显示模块使用中碰到的问题说明并记录一下 在网上买了1 69寸液晶显示模块 使用spi接口 分辨率240 280 给的参考程序是GPIO模拟的SPI接口 打算先移植到FreeRtos测试 再慢慢使用
  • STM32 暂停调试器时冻结外设

    当到达断点或用户暂停代码执行时 调试器可以停止 Cortex 中代码的执行 但是 当皮质停止在暂停状态下执行代码时 调试器是否会冻结其他外设 例如 DMA UART 和定时器 您只能保留时间 r 取决于外围设备 我在进入主函数时调用以下代码
  • CMSIS & STM32,如何开始? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在 STM32 上使用 CMSIS 启动项目 网上一搜 没找到具体的教程 有些使用 SPL 开始项
  • 特殊寄存器

    特殊寄存器 文章目录 前言 一 背景 二 2 1 2 2 总结 前言 前期疑问 STM32特殊寄存器到底是什么 特殊寄存器怎么查看和调试代码 本文目标 记录和理解特殊寄存器 一 背景 最近在看ucosIII文章是 里面提到特殊寄存器 这就进
  • 核心耦合内存在 STM32F4xx 上可执行吗?

    尝试从 STM32F429s CCM 运行代码 但每当我命中 CCM 中的第一条指令时 我总是会遇到硬故障 并且 IBUSERR 标志被设置 该指令有效且一致 STM32F4xx 是否可能不允许从 CCM 执行 数据访问效果良好 alios
  • STM32 Nucleo 上的上升沿中断多次触发

    我正在使用 STM32 NUCLEO F401RE 微控制器板 我有一个扬声器 经过编程 当向上 向下推操纵杆时 可以按设定的量改变频率 我的问题是 有时 通常 当向上 向下推动操纵杆时 频率会增加 减少多次 这意味着 ISR 正在执行多次
  • 通过JTAG恢复STM32 MCU磨掉的标记

    我有一块可能带有 STM32 MCU 的板 我想为该板制作定制固件 因为库存板有很多问题 不幸的是 电路板制造商很友善地磨掉了所有标记 有没有办法通过 jtag 获取设备 系列 ID 并将其交叉引用到型号 我能找到的一切都是关于获取芯片的唯
  • STM32 上的 ADC 单次转换

    我正在研究 STM32 F103x 上的 ADC 编程 并从最简单的情况 单次转换开始 测量内部温度传感器 连接到 ADC1 的值 并使用 USART 将其发送到 COM 端口 目标似乎很明确 但是当我尝试将源代码下载到闪存时 它不会向 C
  • STM32内部时钟

    我对 STM32F7 设备 意法半导体的 Cortex M7 微控制器 上的时钟系统感到困惑 参考手册没有充分阐明这些时钟之间的差异 SYSCLK HCLK FCLK 参考手册中阅读章节 gt RCC 为 Cortex 系统定时器 SysT
  • 哪些变量类型/大小在 STM32 微控制器上是原子的?

    以下是 STM32 微控制器上的数据类型 http www keil com support man docs armcc armcc chr1359125009502 htm http www keil com support man d

随机推荐

  • 串口接收完整一帧数据包的3种方法

    本文介绍3种使用串口接受一帧完整数据包的方法 xff0c 串口接收数据是字节接收的 xff0c 串口每接收1字节数据 xff0c 产生一个串口中断 xff0c 我们在中断中将接收到的数据存放到buf中进行保存 xff0c 但是数据的发送和接
  • 补码原码转换

    本文主要讲述补码和原码之间的换算 1 原码 转 补码 xff1a 正整数的补码是它本身 xff0c 即 1的原码是0000 0001 xff0c 补码 还是 0000 0001 负整数的补码是符号位不变 xff0c 其余位按位取反 xff0
  • 有符号数与无符号数之间的转换

    本文讲解有符号数和无符号数之间的转换 针对同一数据类型有符号数和无符号数之间的转换 xff0c 例如 int 和 unsigned int 之间和 char 和 unsigned char 之间 这种情况下 xff0c 二者之间的数据类型长
  • Ubuntu由于修改etc/profile文件导致开机无法登陆问题解决办法(仅供参考)

    在安装jdk或者arm linux gcc等开发工具时需要修改profile xff0c 一不小心导致无法正常登录系统 xff0c 这时候可以试试用以下办法解决 xff1a 1 进入ubuntu登录页面 xff0c 按alt 43 ctrl
  • 一文看懂,用示波器查看串口UART的波形,什么是数据位、起始位、奇偶校验位

    先介绍一些概念 起始位 先发出一个逻辑 0 的 信号 xff0c 表示传输数据的开始 校验位 xff1a 数据位加上这一位后 xff0c 使得 1 的位数应为偶数 偶校验 或奇数 奇校验 xff0c 以此来校验数据传送的正确性 就比如传输
  • Could not get lock /var/lib/dpkg/lock 问题解决方法

    今天在ubuntu上安装sqlite 时 xff0c 执行命令sudo apt get y install sqlite3 时 xff0c 系统提示 xff1a Could not get lock var lib dpkg lock op
  • Linux 应用开发之系统调用

    系统调用 xff08 System Call xff09 是操作系统提供给用户程序调用的一组 特殊 函数接口 Linux 系统分为内核空间和用户空间 xff0c 用户空间只能通过系统调用接口与内核空间进行通信 Linux 系统提供了两种方式
  • Linux Qt 开发之多线程

    Qt 应用程序中所有的界面响应事件都在一个主线程中运行 xff0c 当我们去调用QApplication对象的exec 方法时 xff0c Qt就不断去循环查询当前的事件队列中有没有事件发生 xff0c 如果有则转去执行对应的槽函数 xff
  • Linux根文件系统的制作(转载)

    Linux根文件系统的制作 什么是文件系统 计算机的文件系统是一种存储和组织计算机数据的方法 xff0c 它使得对其访问和查找变得容易 xff0c 文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念 xff0
  • vector

    原网址 xff1a http www cnblogs com zjfdlut archive 2010 11 13 1876409 html 个人菜鸟 xff0c 发表下对头文件包含顺序的看法 xff1a 首先是常规的包含 xff1a 1
  • add_libraries, add_executable, target_link_libraries, link_libraries用法

    相关命令用法 add libraries将指定的源文件生成库文件 add executable将指定的源文件生成可执行文件 target link libraries跟在add xxxx后 xff0c 表示在上述两命令生成的文件后进行外部库
  • cmake 链接动态链接库

    使用相对路径的时候 xff0c 你要让cmake能够搜索到找到你动态库 xff0c 就像直接使用gcc g 43 43 来链接的时候一样 xff0c 要使用 L来指定第三方库所在路径 cmake可以使用 LINK DIRECTORIES 命
  • TI毫米波雷达芯片(AWR2243)MIMO模式设置

    1 AWR 2243 支持的MIMO模式 awr 2243为三发四收 xff0c 支持时分多路复用 xff08 TDM xff09 MIMO模式 xff0c 以及三个发射天线同时工作的BPM MIMO模式 xff08 二进制调制相位调制 x
  • Odroid U3 烧写镜像文件

    点击打开链接 用SD卡烧写镜像文件 1 在liunx 终端建工作目录 xff1a mkdir linux img cd linux img 2 下载镜像 wget http odroid in ubuntu 14 04 1lts ubunt
  • win下批处理控制扩展屏幕

    仅电脑屏幕 displayswitch internal 复制 displayswitch clone 扩展 displayswitch extend 仅第二屏幕 displayswitch external 引用来源 xff1a http
  • ubuntu 安裝deb_.deb文件如何安装,Ubuntu下deb安装方法图文详解

    deb包是Debian xff0c Ubuntu等Linux发行版的软件安装包 xff0c 扩展名为 deb xff0c 是类似于rpm的软件包 xff0c Debian xff0c Ubuntu系统不推荐使用deb软件包 xff0c 因为
  • day3. -2 NX的SPI操作

    1 NVIDIA在线文档 https docs nvidia com jetson l4t index html page Tegra 20Linux 20Driver 20Package 20Development 20Guide hw
  • (二)随处可见的LED广告屏是怎么工作的呢?代码实现

    书接上回 xff0c 上一篇中我们聊到了LED点阵屏的工作原理和一些电气参数 本篇以第一篇为基础 xff0c 对软件层面进行展开 xff0c 同时也为下一篇接入GUI做铺垫 文章较第一篇有所增长 xff0c 大概需要5 7分钟可以看完 目标
  • (三)随处可见的LED广告屏是怎么工作的呢?接入GUI

    续上文 xff0c 本篇我们将尝试接入一个GUI来控制点阵屏 在前两篇中 xff0c 我们相继介绍了点阵屏的控制原理 xff0c 以及如何让点阵屏按照我们所想的进行显示 本篇将在此基础上接入一个GUI xff0c 使点阵屏的控制更加优雅 限
  • 解决:在STM32的标准库上添加DSP库时error: #247

    DSP库相对于标准的 math h 对浮点计算做了优化和增强 xff0c 运算速度更快 关于STM32如何添加DSP库 xff0c 网上有很多教程 xff0c 笔者在实际操作时发现会遇到keil报error 247的问题 针对于解决过程 x