STM32启用FPU浮点运算

这篇文章产生背景:其他人的文章太杂了,对我这种菜鸡无法接受;

参考文章:

stm32h743单片机嵌入式学习笔记7-FPU_stmh743vit4-CSDN博客

stm32F407 打开 FPU(浮点运算处理器)_stm32f407开启fpu-CSDN博客

STM32F4+CubeMX+Hal库下使能FPU_stm32cubemx 怎么配置开启fpu-CSDN博客

本人发布文章

2024.9.13

使用STM32G4系列使用cubemax产生工程;

重点:怎么打开FPU浮点硬件运算;

1、不需要多余的操作,不需要去定义宏,也不需要你去写什么打开操作;

重点1:

完毕!可以使用FPU了;我不知道为啥能搞一堆乱糟糟的东西;

触发原理:

不想了解的,可以不用看;

1、首先需要去寄存器打开这个FPU的硬件使能

这个打开在.S文件的上电复位就有,

原函数在

文件:system_stm32g4xx.c

void SystemInit(void)

原型:

cpp 复制代码
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

  /* Configure the Vector Table location add offset address ------------------*/
#if defined(USER_VECT_TAB_ADDRESS)
  SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
#endif /* USER_VECT_TAB_ADDRESS */
}

编译后,编译后,编译后:三次且加粗:为什么需要编译,操作重点1后,没有编译,勾选后不生效;

跳转定义如下两个定义:能跳转,并且都是1,那么就打开FPU:SCB->CPACR这两个寄存器可以查手册;

__FPU_PRESENT

__FPU_USED

尽管跳转后是灰色的:但是跳转过来指示的行,定义是 1,而不是下面的0;所以已经宏开启,FPU已经开启了

相关推荐
悠哉悠哉愿意3 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_11013 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元3 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133973 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315203 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
古译汉书3 天前
【IoT死磕系列】Day 7:只传8字节怎么控机械臂?学习工业控制 CANopen 的“对象字典”(附企业级源码)
数据结构·stm32·物联网·http
Alaso_shuang3 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟3 天前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_918126913 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z20348315204 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机