STM32 | STM32F4开始你的Discovery

拿到STM32F4 Discovery已经很长时间了,最近想用它做一些数字信号处理的实验,今天花些时间熟悉了其基本的使用用法,写此教程共勉之。 STM32 Discovery的相关资料可以在官网上获得:www.st.com/stm32f4-discovery,这里我们以官方的演示工程Demonstration为例,介绍其工程配置与程序下载方法,该工程实际上就是Discovery出厂时的默认代码。 […]

STM32 | 串口初始化发送0xFE的Bug

最近在使用STM32F103串口功能时,发现第一个发出的串口数据帧总是不能被正确识别,在监听串口的原始报文后,我发现原来是数据帧前面多了一个0xFE。在经过一些尝试性的程序调整之后,我发现这个问题竟然和串口时钟初始化所在的位置有关。 这是存在问题的初始化程序: 这是修改后工作正常的代码: 这两者唯一的区别在于后者将串口时钟初始化放在了GPIO引脚初始化之前! 我现在还没有办法解释这种情况发生的原因 […]

STM32 | STM32的低功耗设计

在谈到低功耗处理器时,我们第一个想到的总是MSP430,但其实STM32也能拥有不错的低功耗特性。通过合理的进行软件设置,STM32在工作时的功耗可以降至数十mA,而待机功耗可以降到数uA。总的来说,降低STM32功耗的方法主要有以下三种: 1. 关闭不需要的外设时钟 STM32的所有外设都可以独立开启和关断,通过将不需要的AHB/APB的时钟关闭,可以起到降低总待机功耗的作用。各个模块的典型功耗 […]

STM32 | STM32F4 Discovery开发板简介

不久之前在淘宝上购买了一块STM32F4-Discovery开发板,根据自己的使用情况以及官方提供的说明手册,撰写了这篇关于该开发板的初步介绍,以供初学者参考。 Figure 1. F4-Discovery外观与包装 F4-Discovery是ST公司推出的官方开发套件,从开发板板载的资源来看,该开发板在设计上着重突出了F4的数字信号处理能力。其板载的芯片有1片STM32F407VGT6,1个三轴 […]

串行Flash芯片w25x16使用心得

这一段时间因项目需要使用了Winbond公司的w25x16/w25x32串行Flash存储芯片,对Flash芯片的使用方法略有心得,现整理成文。 在Flash中存储数据与在EEPROM中存储数据不同,不仅需要考虑数据的存储结构,还需要针对Flash独有的特性进行特殊处理。其中最显著的不同点在于Flash在编程前,必须保证待写入区域全部为空(0xFF),否则无法正常执行写入操作;并且Flash在操作 […]

挑战低功耗7小时纪实

今天,我的一位同事在低功耗设计上遇到了麻烦,他所设计的一个电池供电的设备不到几天就将电池消耗殆尽。经过测量,我发现这个设备的待机功耗过大,达到6.6mA,经核算,按照该功耗,即使设备一直处于休眠状态也只能工作2天。 按照低功耗设计的一般分析方法,可以从硬件和软件两个方面减小设备的功耗。 首先,我怀疑是所用的一些模块功耗较大,于是我把一些可插拔的模块断开,但是功耗没有明显下降,可见功耗损失不来自这些 […]

STM32 | 为什么选择STM32

自从1976年Intel 8048诞生以来,单片机经历了8位、增强型8位、16位三个时代。 最早的电子工程师使用8位机作为硬件平台,利用汇编语言编写程序。当时的单片机程序空间有限,一般只有1-2KB的ROM可供使用。之后出现了8051单片机,程序空间提高到了4KB,使高级语言的使用也成为了可能。近十年来,增强型8位机发展迅猛,有加强型8051单片机、AVR单片机、PIC单片机等,这些单片机具有很大 […]

解决丢失固件后的JLINK及体会

假前的最后几天,准备调试STM32的液晶显示用于示波器项目。可是JLINK插上电脑后指示灯一直不亮,并且在设备管理器中显示为“Unknown Device”。Baidu了一下,网上说有可能是USB线的质量问题,但我更换了四条后还是无果。 后来得知有可能是固件丢失了,需要重新下载固件,我想这下麻烦了,我只有一个JLINK,无法给这个JLINK下载固件啊。在我准备重买一个之前,我还是看了一下如何刷JL […]