单片机第三季-第三课:STM32开发板原理图、配置、浮点运算单元
最佳答案 问答题库658位专家为你答疑解惑
目录
1,开发板原理图
2,浮点运算单元(FPU)
1,开发板原理图
课程视频比较早,介绍了三款开发板。观看视频时用的开发板说和51单片机共板的STM32核心板,将51单片机从底座拆下来后,安装上STM32核心板。
ISP原理回顾:
第1步:先设置BOOT1和BOOT0从系统区启动,执行系统中预设的程序;
第2步:主机通过串口发送要下载的hex文件给STM32;
第3步:系统预设的程序接收到hex后将其烧录到用户区flash中;
第4步:设置BOOT1和BOOT0为从用户区启动,然后复位重启执行刚才下载的hex即可。
如何设置BOOT1和BOOT0使STM32从系统区或者用户区启动,见下图:
核心板的自动下载电路:
核心板通过USB连接电脑后,下载程序的上位机可以通过RTS和DTR分别控制BOOT0和NRST引脚;
自动下载即上位机下载软件通过控制RTS和DTR引脚,间接控制BOOT0和NRST,完成下载程序和复位启动。
复位电路:
复位电路可以实现上电复位和RSTK复位按键复位。
2,浮点运算单元(FPU)
浮点运算即存在float或double类型数据的加、减、乘、除运算;
浮点计算的2种实现方法:软浮点、硬浮点;
编译环境支持浮点库,可以将用C语言写的浮点数运算转成整形运算,对于单片机来说根本不知道float、double这回事,所以单片机不需要有专门的浮点运算单元就可以算浮点数了,但通过编译将浮点运算转化为整形运算时会增加代码量。
STM32F4系列支持硬浮点计算,因为其内部有响应的硬件电路,可以直接输入浮点数进行计算,但其有两个例外:
1、F4内部FPU只能算float不能算double;
2、F4内部FPU只能算float的简单加减乘除,不能算float的sin、cos等复杂运算;
我们编程时不需要考虑CPU的软浮点或者硬浮点特性,直接用C编程实现功能,然后设置好后直接编译,按照这样的规则帮我编译:我的浮点运算可以用硬浮点时用FPU(在编译环境中,如KEIL中有相应的选项可以设置,Single Precision即指只支持float类型运算,有的显示为FPU),如果不能用硬浮点就自动用软浮点来实现。
需要注意的是,只有选择具备FPU的MCU时(例如STM32F4系列),才会出现Floating Point Hardware选项。
项目中用到大量double浮点时或者大量sin cos时,F4的FPU是无效的,这时建议用F1+DSP。
参考《Cortex M3与M4权威指南.pdf》。
99%的人还看了
相似问题
- SMART PLC累计流量功能块(梯形积分法+浮点数累加精度控制)
- 整形数据和浮点型数据在内存中的存储差别
- 浮点数保留指定位数的小数,小数位自动去掉多余的0
- 【ARMv8 SIMD和浮点指令编程】浮点加减乘除指令——四则运算
- js 浮点小数精度问题
- 【ARMv8 SIMD和浮点指令编程】NEON 通用数据处理指令——复制、反转、提取、转置...
- 【ARMv8 SIMD和浮点指令编程】NEON 存储指令——如何将数据从寄存器存储到内存?
- 比较浮点数时,我被绊倒了
- 主流架构(gcc、msvc、x86、x64、arm)中double与float浮点数精度处理
- PostgreSQL12中浮点数输出算法优化带来的小问题
猜你感兴趣
版权申明
本文"单片机第三季-第三课:STM32开发板原理图、配置、浮点运算单元":http://eshow365.cn/6-10533-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: java字符串压缩和字符串解压
- 下一篇: python项目2to3方案预研