单片机交流
直播中

李红

7年用户 1186经验值
私信 关注
[问答]

怎样去计算STM32F4的浮点运算单元呢

STM32开发板ISP下载的原理是什么?
STM32F4的浮点运算单元是由哪些部分组成的?

怎样去计算STM32F4的浮点运算单元呢?

回帖(1)

闫雪花

2021-10-22 14:54:52
  3.3.1.STM32开发板详细介绍
  3.3.1.1、开发板整体介绍
  (1)各种外设和主板原理图
  之前在STC51中使用的外设,都可以在这里使用!
  STM32F103C8原理图下载地址
  (2)主板供电部分5V和3.3V兼容设计
  
  3.3.1.2、STM32核心板介绍
  (1)核心板外观介绍
  (2)核心板在底板安装
  如上图
  3.3.1.3、核心板原理图
  (1)晶振
  (2)电源
  (3)CAN接口
  (4)引脚定义和底板的映射关系
  以后可以先去看原理图去分析需要哪些引脚,然后去IO引脚图通过红字找对应的引脚P
  
  
  3.3.2.STM32开发板ISP下载原理分析
  3.3.2.1、USB下载分析
  (1) 下载流程手册
  (2) STM32程序下载实操
  3.3.2.2、ISP下载原理分析
  (1)ISP原理回顾。
  第1步:先设置BOOT1和BOOT0从系统区启动,执行系统中预设的程序
  第2步:主机通过串口发送要下载的hex文件给STM32
  第3步:系统预设的程序接收到hex后将其烧录到用户区flash中
  第4步:设置BOOT1和BOOT0为从用户区启动,然后复位重启执行刚才下载的hex即可
  (2)BOOT引脚设置
  BOOT1始终为0
  BOOT0在ISP时要为1,正常运行时要为0。
  BOOT0和BOOT1是通过挑帽控制的
  3.3.2.3、复位电路设计
  (1)上电复位
  (2)RSTK复位按键复位
  (3)ISP下载后受控复位,被RSTK1控制
  
  3.3.3.STM32F4的浮点运算单元
  3.3.3.1、浮点运算基础—组成原理
  (1)什么是浮点运算:浮点数的运算,并不是所有的CPU都支持浮点运算
  (2)浮点计算的2种实现方法:
  软浮点
  通过浮点库去实现浮点运算的,效率低,成本低!
  编译环境支持浮点库,可以将用C语言写的浮点数运算转成整形运算,对于单片机来说根本不知道float、double这回事,所以单片机不需要有专门的浮点运算单元就可以算浮点数了。
  硬浮点
  通过浮点运算单元(FPU)来完成的,效率高,成本高!
  (3)浮点运算单元的使用
  F4支持FPU,但是不是一定要用,需要配置
  使用的方法:下载FPU库和编译选项,在Keil5中Target中打开/关闭
  
  3.3.3.2、F4的浮点运算学习
  (1)FPU:单精度浮点单元
  参考《Cortex M3与M4权威指南.pdf》
  1、F4内部FPU只能算float不能算double
  2、F4内部FPU只能算float的简单加减乘除,不能算float的sin、cos等复杂运算
  理想效果:我们编程时不需要考虑CPU的软浮点或者硬浮点特性,直接用C编程实现功能,然后设置好后直接编译。
  按照这样的规则编译:浮点运算可以用硬浮点时用FPU,如果不能用硬浮点就自动用软浮点来实现。
  项目中用到大量double浮点时或者大量sin cos时,F4的FPU是无效的,这时建议用F1+DSP(是库函数)介绍链接
  3.3.4.MDK5的开发环境搭建和介绍
  3.3.4.1、MDK5的引入 下载安装注册链接
  (1)MDK5和keil C51的关系
  都是keil公司(现被ARM收购)的两款软件,其安装方法和破解方法一样!
  c51不需要下载器件支持包,MDK5需要根据开发板型号安装对应的器件支持包
  (2)Keil官网中MDK5和keil C51是分离的
  需要分别单独安装破解
  (3)MDK5和Keil C51可以在同一windows中共存
  可以共用一个图标
  (4)MDK5和MDK4的不同
  MDK4下载之后,器件支持包也安装成功,但是有很多用不到,而且有的型号还没有(比如F4系列)
  MDK5下载之后,用户可以选择性的在线/离线安装器件支持包,一般选择离线安装,在线下载的很慢
  3.3.4.2、MDK5的使用体验
  (1)打开工程并且编译、下载
  (2)菜单栏浏览—以及如何新建。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分