首页 » 通讯 » 嵌入式进修6_存放器_浮点

嵌入式进修6_存放器_浮点

admin 2024-12-09 03:43:13 0

扫一扫用手机浏览

文章目录 [+]

1、MDK安装和获取STM32所有芯片

安装芯片包

嵌入式进修6_存放器_浮点 通讯

1、第一步

2、第二步

搜索STM32 (其他芯片类似)

3、第三步

①双击对应的芯片系列②点击install

4、第四步

①下载中②下载完成后,打开MDK窗口,重新加载一下即可

芯片包下载和安装目录

keil安装路径:Kile_5\ArmPacks.Download例如:D:\Program Files\Kile_5\ArmPacks.Download

芯片包安装目录

keil安装路径:Kile_5\Kile_5\ArmPacks\Keil例如:D:\Program Files\Kile_5\ArmPacks\Keil

2、GPIO->ODR与GPIO_Pin同作为实现输出时的差异是什么?GPIO->ODR是32位的输出数据寄存器(高16位保留,低16为依次对应某个GPIO口的16个引脚)。
对ODR赋值是一次操作16位的,也便是同时设置了16个引脚的输出电平;而GPIO_PIN是指某个端口的详细某一个引脚,是位操作,可以通过设置BSRR或BRR寄存器来设置某一特定引脚的输出电平,而保持其他引脚输出不变,速率快,效率高。
详细可以看看stm32参考手册关于GPIO寄存器的解释。

3、STM32F4 的 FPU

FPU 即浮点运算单元(Float Point Unit)。
浮点运算,对付定点 CPU(没有 FPU 的 CPU)来说必须要按照 IEEE-754 标准的算法来完成运算,是相称耗费韶光的。
而对付有 FPU 的 CPU来说,浮点运算则只是几条指令的事情,速率相称快。
STM32F4 属于 Cortex M4F 架构,带有 32 位单精度硬件 FPU,支持浮点指令集,相对付Cortex M0 和 Cortex M3 等,赶过数十倍乃至上百倍的运算性能。

STM32F4 硬件上要开启 FPU 是很大略的,通过一个叫:协处理器掌握寄存器(CPACR)的寄存器设置即可开启 STM32F4 的硬件 FPU,该寄存器各位描述如图。

这里我们便是要设置 CP11 和 CP10 这 4 个位,复位后,这 4 个位的值都为 0,此时禁止访问协处理器(禁止了硬件 FPU),我们将这 4 个位都设置为 1,即可完备访问协处理器(开启硬件 FPU),此时便可以利用 STM32F4 内置的硬件 FPU 了。
CPACR 寄存器这 4 个位的设置,我们在 system_stm32f4xx_c 文件里面开启,代码如下:

void SystemInit(void)

{

/ FPU settings ------------------------------------------------------------/

#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)

SCB->CPACR |= ((3UL << 102)|(3UL << 112)); / set CP10 and CP11 Full Access /

/(3UL << 102)|(3UL << 112)代表将CP10和CP11的位置1,个中102代表位置移动10位,112代表移动11位/

#endif

……//省略部分代码

}

此部分代码是系统初始化函数的部分内容,功能便是设置 CPACR 寄存器的 20~23 位为 1,以开启 STM32F4 的硬件 FPU 功能。
从程序可以看出,只要我们定义了全局宏定义标识符__FPU_PRESENT 以及__FPU_USED 为 1,那么就可以开启硬件 FPU。
个中宏定义标识符__FPU_PRESENT 用来确定处理器是否带 FPU 功能,标识符__FPU_USED 用来确定是否开启FPU 功能。

实际上,由于 F4 是带 FPU 功能的,以是在我们的 stm32f4xx.h 头文件里面,我们默认是定义了__FPU_PRESENT 为 1。
大家可以打开文件搜索即可找到下面一行代码:#define __FPU_PRESENT 1

但是,仅仅只是解释处理器有 FPU 是不足的,我们还须要开启 FPU 功能。
开启 FPU 有两种方法,第一种是直接在头文件 STM32f4xx.h 中定义宏定义标识符__FPU_USED 的值为 1。
也可以直接在 MDK 编译器上面设置,我们在 MDK5 编译器里面,点击魔术棒按钮,然后在 Target选项卡里面,设置 Floating Point Hardware 为 Use Single Precision,如图 51.1.1.2 所示:

经由这个设置,编译器会自动加入标识符__FPU_USED 为 1。
这样碰着浮点运算就会利用硬件 FPU 干系指令,实行浮点运算,从而大大减少打算韶光。
末了,总结下 STM32F4 硬件 FPU 利用的要点:

1, 设置 CPACR 寄存器 bit20~23 为 1,使能硬件 FPU。

2, MDK 编译器 Code Generation 里面设置:Use FPU。

经由这两步设置,我们的编写的浮点运算代码,即可利用 STM32F4 的硬件 FPU 了,可以大大加快浮点运算速率。

4、Julia 分形简介

Julia集是一种在复平面上非发散点形成的分形点的凑集。

例如,对付复变函数的一个通项公式,

假设这里的常数C总是小于2 ,当我们迭代次时,创造。
那么很显然,之后的会变得越来越大,以是这样的点是发散的。
同理,也存在无论迭代多少次都不会发散,这样的点就构成Julia集。
然而,按照这种判断方法,我们不可能精确找出所有的非发散点。
由于如果当我们迭代次时,仍旧有,但是随着迭代次数连续增大,发散点总有一次会超过这个限定,而这个次数可能会很大,超过我们设置的迭代次数,以是这样的判断是不足准确的 。
但这不妨碍我们可以利用这种方法近似找出Julia集的点。
由于随着的增加,这样判断出的点集会不断逼近Julia集,从而我们可以得到一个近似的Julia凑集。
详细思路为:

设置迭代次数 、收敛半径 、次数 和常数 ;设置一个复数点集为初始点集 ,带入公式 打算 ;找出 的点,记录这些点的位置矩阵 ;重复2、3步骤 次;画出矩阵 ,即Julia集的图像。
标签:

相关文章

IT猎头,人才选拔与配置的智慧桥梁

在当今这个信息化时代,IT行业作为推动社会进步的重要力量,其人才的需求量日益增长。而IT猎头作为连接企业与人才的桥梁,发挥着越来越...

通讯 2024-12-26 阅读0 评论0

IT狂人重启,介绍科技巨头的新篇章

在科技的浪潮中,IT狂人始终以其敏锐的洞察力和前瞻性的思维引领着行业的发展。随着IT狂人重启,我们不禁要问:这一次,这位科技巨头的...

通讯 2024-12-26 阅读0 评论0

IT现场服务,企业数字化转型的关键保障

随着信息技术的飞速发展,企业数字化转型已成为必然趋势。在这个过程中,IT现场服务发挥着至关重要的作用,为企业的稳定运营提供有力保障...

通讯 2024-12-26 阅读0 评论0

IT电脑程序,技术革新与未来展望

随着科技的飞速发展,电脑程序已经渗透到我们生活的方方面面。从简单的文字处理到复杂的工业自动化,电脑程序在提高生产效率、优化工作流程...

通讯 2024-12-26 阅读0 评论0