完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 222zhumingming 于 2016-11-26 19:08 编辑 前几天收到了电子发烧友发的短信,看后知道自己申请的ST NUCLEO-F412ZG开发板成功了,心里还是特别高兴;本人是一名电子爱好者,自从发现了有开发板试用这个板块,感觉这个事情做得特别好。罗嗦了这么多,言归正传开始STM32f412的开发。 以前手里面都是stm32f1的板子,一直都想玩一玩,由于ARM的Cortex M4具有FPU单元,对运算性能提升很大,因此使用STM32F4系列,一定要使用FPU,否则就像使用M3系列一样了。对于ST NUCLEO-F412ZG开发板,板子上外设资源很少,需要自己扩展外设。首先得去ST官网下载ST NUCLEO-F412ZG开发板原理图,要熟悉一下板子接口。
对于STM32F4开发目前有两种方式,一种是标准库函数,另一种是STM32CubeMX开发。对于这两种开发各有利弊,这要看个人喜好了;这里面用标准库函数进行开发,使用最新库函数。
对于STM32F412,标准库也是支持的,可以在标准库头文件中找到 工程详细搭建这里就不讲了,网上有很多例程,搭建完后如下图:
STM32F4 硬件上要开启 FPU 是很简单的,需要开启一个协处理器控制寄存器(CPACR)的寄存器设置即可开启 STM32F4 的硬件 FPU,我们就是要设置 CP11 和 CP10 这 4 个位,复位后,这 4 个位的值都为 0,此时禁止访问协处理器(禁止了硬件 FPU),我们将这 4 个位都设置为 1,即可完全访问协处理器(开启硬件 FPU),此时便可以使用 STM32F4 内置的硬件 FPU 了。CPACR 寄存器这 4 个位的设置,我们在 system_stm32f4xx_c 文件里面开启,代码如下:
此部分代码是系统初始化函数的部分内容,功能就是设置 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,
|
|
相关推荐
|
|
2272 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2083 浏览 3 评论
4708 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2229 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2773 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 21:48 , Processed in 0.491419 second(s), Total 68, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号