跳转到主要内容

STM32F4

STM32F4 HAL库串口同时收发代码卡死问题

cathy 提交于

在使用串口USART1接收数据转手用USART2发送,在发送的同时再将USART2接收的数据使用USART1进行发送,两个串口都为同时进行,在两个串口每个500ms传输一次时,可以正常传输一段时间之后卡死,但间隔20ms甚至更小时,直接卡死,使用标准库就不会出现这样的情况。

关于在ARM MDK 中使用STM32F4xx 硬件浮点单元的话题

judy /

<strong>一. 前言</strong>

有工程师反应说Keil 下无法使用STM32F4xx 硬件浮点单元, 导致当运算浮点时运算时间过长,还有一些人反应不知如何使用芯片芯片内部的复杂数学运算,比如三角函数运算。针对这个部分本文将详细介绍如何使用硬件浮点单元以及相关数学运算。

<strong>二.问题产生原因</strong>

1. ------对于Keil MDK Version 5 版本, 编译器已经完全支持STM32F4xx 的FPU(浮点运算单元),可以直接使用芯片内部的浮点运算单元。

2. ------对于Keil MDK Version 4 版本, 高版本v4,比如当前keil 官网可下载的v4.74.0.0 版本也已经支持
FPU,可以直接使用芯片内部浮点运算。但如果使用低版本v4,如v4.23.0.0 版本, 则需要对软件进行相应设置。

<strong>三. 如何解决问题</strong>

STM32F4的FPU单元讲解

judy /

浮点运算一直是定点CPU的难题,比如一个简单的1.1+1.1,定点CPU必须要按照IEEE-754标准的算法来完成运算,对于8位单片机来说已经完全是噩梦,对32为单片机来说也不会有多大改善。虽然将浮点数进行Q化处理能充分发挥32位单片机的运算性能,但是精度受到限制而不会太高。对于有FPU(浮点运算单元)的单片机或者CPU来说,浮点加法只是几条指令的事情。

现在又FPU或者硬件浮点运算能力的主要有高端DSP(比如TI F28335/C6000/DM6XX/OMAP等),通用CPU(X87数学协处理器)和高级的ARM+DSP处理器等。

STM32-F4属于Cortex-M4F构架,这和M0、M3的最大不同就是多了一个F-float,即支持浮点指令集,因此在处理数学运算时能比M0/M3高出数十倍甚至上百倍的性能,但是要充分发挥FPU的数学性能,还需要一些小小的设置:

STM32F4 新建标准库函数工程

judy /

<strong>前言</strong>

在 STM32 开发中,库函数开发相比寄存器方式具有开发周期短、代码可读性好、便于移植等优点,而使用 Keil 环境的第一步就是新建工程。本文以 STM32F401CE 芯片为例,介绍使用标准库函数新建工程的步骤。

<strong>材料准备</strong>

• STM32F4xx 固件库:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0.rar
• Keil-MDK
• 一点耐心

<strong>新建库函数工程注意事项</strong>

不同芯片在新建工程时的配置略有区别,主要体现在以下几点:

意法半导体STM32F4基本型产品线提升功能集成度和设计灵活性,新增STM32F413/423两个产品线

Lee_ /

<img src="http://mcu.eetrend.com/files/2016-12/wen_zhang_/100004490-14765.png&quot; alt="" width="600" >

意法半导体两个新的微控制器产品线提高STM32F4基本型产品线高端产品的能效、功能集成度和设计灵活性,满足高性能嵌入式设计的技术需求。这些STM32最新微控制器的工作温度高达125°C ,主打始终运行的传感器和通用工业设备,为STM32F1应用提供一个稳健可靠且高成本效益的系统升级方案 。