STM32
文章平均质量分 70
本专栏提供关于我在STM32 的学习过程当中所积累的一些知识,欢迎大家前来一同交流探讨。
诺亚方包
这个作者很懒,什么都没留下…
展开
-
STM32 >> OLED 小屏幕(Code)
我的OLED 屏幕使用I2C 通讯需要注意的是:把控好通讯的方式及时序准确性即可。oled.h/** ****************************************************************************** * @file oled.h * @author Waao * @version V1.0.0 * @d...原创 2019-02-22 19:58:57 · 2507 阅读 · 0 评论 -
记一次错误:Error: Flash Download failed - "Cortex-M4" 和 flash timeout. reset the target and try it again
今天一大早起床,写了一小段程序,刚要下载进芯片,于是就出现了这两个错误…Error: Flash Download failed - “Cortex-M4” 和 flash timeout. reset the target and try it again从这两个错误字面意思来看,就是程序不能被正确下载进芯片的Flash,首先猜测可能是芯片被锁住了,可能睡眠或停止等。并且伴随着以下现象发生...原创 2019-02-22 15:49:58 · 3731 阅读 · 2 评论 -
STM32 的中断配置很烦人怎么办?
可能大家在进行STM32 中断配置的时候经常感觉非常麻烦,总是这里配置一下,那里配置一下,又很容易发生缺漏。那我教大家一种非常容易的办法应付这种情况:1. 首先,你把STM32 的中断看作是一个人进入一个公司就职;2. 你要想进入一个公司工作,对于普通人(相当于普通的STM32 外设,例如GPIO、SPI 等)来说,那你要有业界大牛的推荐信(就是NVIC 和EXTI 的结构体配置和中断使能...原创 2019-02-20 22:42:11 · 649 阅读 · 0 评论 -
STM32F429 >> 20. CAN 通讯(Code)
本工程配置CAN 为回环模式。bsp_can.h/** ****************************************************************************** * @file bsp_can.h * @author Waao * @version V1.0.0 * @date 21-Feb-2019 *...原创 2019-02-21 16:34:14 · 794 阅读 · 0 评论 -
STM32F429 >> 20. CAN 通讯(二)
STM32 的 CAN 外设简介STM32 的芯片中具有 bxCAN 控制器 (Basic Extended CAN),它支持 CAN 协议 2.0A 和2.0B 标准。该 CAN 控制器支持最高的通讯速率为 1Mb/s;可以自动地接收和发送 CAN 报文,支持使用标准 ID 和扩展 ID 的报文;外设中具有 3 个发送邮箱,发送报文的优先级可以使用软件控制,还可以记录发送的时间;具有 2 个...原创 2019-02-21 15:32:36 · 3388 阅读 · 1 评论 -
STM32F429 >> 20. CAN 通讯(一)
CAN 是控制器局域网络(Controller Area Network)的简称,是国际上应用最广泛的现场总线之一。简介物理层与 I2C、SPI 等具有时钟信号的同步通讯方式不同,CAN 通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有 CAN_High 和 CAN_Low 两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。CAN 物理层的形式主要有两种:闭环总线网络...原创 2019-02-21 10:50:52 · 1592 阅读 · 0 评论 -
STM32F429 >> 19. RTC_实时时钟(Code)
配置及读取日期和时间此工程没有读取亚秒值。若想让时钟断电后持续计时,则不要使能RTC_Config() 函数中的后备域访问。bsp_rtc.h/** ****************************************************************************** * @file bsp_rtc.h * @author Waao...原创 2019-02-20 21:48:50 · 1738 阅读 · 0 评论 -
STM32F429 >> 19. RTC_实时时钟
简介RTC—real time clock,实时时钟,主要包含日历、闹钟和自动唤醒这三部分的功能,其中的日历功能我们使用的最多。日历包含两个 32bit 的时间寄存器,可直接输出时分秒,星期、月、日、年。功能框图1. 时钟源RTC 时钟源 —RTCCLK 可以从 LSE、LSI 和 HSE_RTC 这三者中得到。其中使用最多的是 LSE。LSE 由一个外部的 32.768KHZ(6...原创 2019-02-20 22:04:26 · 1966 阅读 · 0 评论 -
STM32F429 >> 18. 电源管理_实现低功耗(Code)
睡眠进入睡眠的方式很简单:只需要调用WFI 或WFE 命令,在睡眠模式中,内核停止,但是所有外设,包括M4 核心的外设均处于工作状态中。唤醒睡眠的方式:任一中断;唤醒事件。// Wait For Interrupt__WFI();// Wait For Event__WFE();停止进入停止的操作为:调用 PWR_EnterSTOPMode(uint32_t PWR...原创 2019-02-19 15:12:18 · 1245 阅读 · 0 评论 -
当stm32 进入睡眠、停止、待机状态下强行下载程序
当stm32 进入睡眠、停止、待机状态下是不能正常进行程序下载的,因为此时内核会停止,具体信息可查看:STM32F429 >> 18. 电源管理_实现低功耗故在此,想要重新下载程序的话,将其唤醒是首选,但是可能由于程序上的纰漏等原因,不能将其成功唤醒,我们就只能强制下载了,即:按住stm32 复位键不松手,然后点击"Download" 下载程序,随后松开复位键。经过实际测验,这...原创 2019-02-19 14:39:18 · 2652 阅读 · 0 评论 -
STM32F429 >> 18. 电源管理_实现低功耗
STM32 的电源简介STM32 有专门的电源管理外设监控电源并管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。电源监视器: STM32 芯片主要通过引脚 VDD 从外部获取电源,在它的内部具有电源监控器用于检测 VDD 的电压,以实现复位功能及掉电紧急处理功能,保证系统可靠地运行。1. 上电复位与掉电复位(POR 与PDR)当检测到 VDD 的电压低于阈值 VPOR 及 VP...原创 2019-02-19 11:41:37 · 4285 阅读 · 0 评论 -
STM32F429 >> 17. 利用MPU6050 进行姿态检测(Code)
mpu6050.h/** ****************************************************************************** * @file mpu6050.h * @author Waao * @version V1.0.0 * @date 16-Feb-2019 * @brief This f...原创 2019-02-17 10:14:21 · 1586 阅读 · 1 评论 -
STM32F429 >> 17. 利用MPU6050 进行姿态检测
姿态角的关系坐标系间的旋转角度说明载体自身旋转偏航角(Yaw)Y 轴与标准方向的夹角绕载体Z 轴旋转 可改变俯仰角(Pitch)Z 轴与标准方向的夹角绕载体X 轴旋转可改变横滚角(Roll)X 轴与标准方向的夹角绕载体Y 轴旋转可改变利用陀螺仪检测角度最直观的角度检测器就是陀螺仪了,见图 47-3,它可以检测物体绕坐标轴转动的“角速度”,如同...原创 2019-02-17 09:21:43 · 2801 阅读 · 0 评论 -
STM32F429 >> 16. WWDG_窗口看门狗
窗口看门狗和独立看门狗最大的不同就是,独立看门狗的喂狗限制是在计数器递减为零前,而窗口看门狗的喂狗限制则是在一个窗口期内,即喂狗时间必须在一个时间段内,在狗饱腹时和饥饿时喂狗都会触发复位这个窗口期的下限为0x40,上限小于或等于0x7FRLR 是重装载寄存器,用来设置独立看门狗的计数器的值。TR 是窗口看门狗的计数器的值,由用户独立设置,WR 是窗口看门狗的上窗口值,由用户独立设置。WWD...原创 2019-02-15 21:27:33 · 566 阅读 · 0 评论 -
STM32F429 >> 15. IWDG_独立看门狗
STM32 有两个看门狗,一个是独立看门狗,另一个是窗口看门狗独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。IWDG...原创 2019-02-15 15:12:09 · 858 阅读 · 0 评论 -
STM32F429 >> 14. TIM_(二)_高级定时器 (Code)
输出PWM 信号在该例程中,我将PWM 信号输出管脚连接至LED 管脚,以此观察PWM 信号输出是否正常。注意:若要对LED 管脚进行初始化配置,对应LED 不能设置为熄灭,否则PWM 信号不能点亮LEDbsp_tim_advanced.h/** **********************************************************************...原创 2019-02-02 23:39:04 · 743 阅读 · 0 评论 -
STM32F429 >> 14. TIM_(二)_高级定时器
高级控制定时器(TIM1 和 TIM8)和通用定时器在基本定时器的基础上引入了外部引脚,可以输入捕获和输出比较功能。高级控制定时器时基单元包含一个 16 位自动重载计数器 ARR,一个 16 位的计数器CNT,可向上/下计数,一个 16 位可编程预分频器 PSC,预分频器时钟源有多种可选,有内部的时钟、外部时钟。还有一个 8 位的重复计数器 RCR,这样最高可实现 40 位的可编程定时。STM...原创 2019-01-31 14:15:56 · 3613 阅读 · 0 评论 -
STM32F429 >> 14. TIM_(一)_基本定时器
将定时器和GPIO 结合起来使用可以实现非常丰富的功能,例如测量输入信号的脉冲宽度、产生输出波形、产生PWM 控制电机状态等。STM32F42xxx 系列控制器有 2 个高级控制定时器、10 个通用定时器和 2 个基本定时器,还有 2 个看门狗定时器。控制器上所有定时器都是彼此独立的,不共享任何资源。其中最大定时器时钟可通过 RCC_DCKCFGR 寄存器配置为 90MHz 或者 180M...原创 2019-01-29 21:11:17 · 2049 阅读 · 0 评论 -
STM32F429 >> 13. SPI 通讯(code)
SPI 详细教程在这bsp_spi_flash.h/** ****************************************************************************** * @file stm32f4xx_spi.h * @author MCD Application Team * @version V1.5.1 * @...原创 2019-01-20 18:14:42 · 995 阅读 · 0 评论 -
STM32F429 >> 13. SPI 通讯
SPI 物理层SPI 通讯使用3 条总线及片选线,3 条总线分别是SCK、MOSI、MISO,片选线为SS,其作用分别为:SS:片选信号线,也称NSS、CS。当有多个SPI 从设备与SPI 主机相连时,设备的其他信号线 SCK、MOSI及 MISO同时并联到相同的 SPI总线上,即无论有多少个从设备,都共同只使用这 3 条总线;而每个从设备都有独立的这一条 NSS 信号线,本信号线独占主机的...原创 2019-01-20 18:08:34 · 3701 阅读 · 0 评论 -
STM32F429 >> 12. I²C 通讯(Code)
I²C 详细讲解在https://blog.csdn.net/weixin_40973138/article/details/86498401硬件I²C在此我们使用硬件I²C 通讯,即使用I²C 外设帮助我们控制数据的发送和时钟的规律跳变。若是使用模拟I²C 即是51 风格的编程,用程序手动控制两根总线的数据和时钟变化。编程指南初始化I²C GPIO引脚;初始化I²C;根据事件相应...原创 2019-01-17 21:09:54 · 491 阅读 · 0 评论 -
STM32F429 >> 12. I²C 通讯
本工程板级支持包文件适用于野火stm32f429 开发板。I²C 物理层一个I²C 总线只使用两条总线线路,一条双向串行数据线(SDA),一条串行时钟线(SCL)。I²C 协议层1. I²C基本读写过程其中黑色表示数据由主机传输至从机。S 表示传输开始信号;SLAVE_ADDRESS 表示从机地址;白色表示数据由从机传输至主机。R/W 表示传输方向选择位,1为读,0为写;A/A 表...原创 2019-01-16 20:39:52 · 879 阅读 · 0 评论 -
STM32F429 >> 11. ADC 模数转换
本工程板级支持包文件适用于野火stm32f429 开发板。STM32F429IGT6 有 3 个 ADC,每个 ADC 有 12位、10 位、8 位和 6位可选,每个ADC 有 16个外部通道。另外还有两个内部 ADC 源和 V BAT 通道挂在 ADC1上。ADC具有独立模式、双重模式和三重模式。ADC 功能框图1. 电压输入范围ADC 输入范围为:V (REF-) ≤ V (I...原创 2019-01-15 14:21:16 · 5949 阅读 · 0 评论 -
有关STM32 外设USART 的一个小问题
今天在调试USART 时,偶然发现了USART 数据寄存器状态是可以被打断的,即数据A 在发送过程中当出现了其他的数据寄存器请求B 时,该数据A 的发送会被中断,然后A 不能发送出来,而B 会被正常发送。...原创 2019-01-01 23:27:38 · 303 阅读 · 0 评论 -
STM32F429 >> 10. DMA_直接存储器访问
DMA 传输实现高速数据移动过程无需任何CPU 操作控制其支持以下三种传输方式:外设到存储器传输;存储器到外设传输;存储器到存储器传输。功能框图:① 外设通道选择DMA1 请求映射:DMA2 请求映射:每个外设请求都占用一个数据流通道,相同外设请求可以占用不同数据流通道。② 仲裁器仲裁器管理数据流方法分为两个阶段。第一阶段属于软件阶段,我们在配置数据流时可以通...原创 2019-01-12 09:04:44 · 1497 阅读 · 0 评论 -
STM32F429 >> 9. USART_串口通讯
串口通讯是一种设备间常用的串行通讯方式通讯协议基本分为物理层和协议层:物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体间的传输;协议层:主要规定通讯逻辑,统一收发双方的数据打包、解包标准。物理层主要分析RS-232该通讯方式中,两个通讯设备的“DB9接口” 之间通过串口信号线建立起连接,串口信号线中使用“RS-232标准” 传输数据信号。由于RS-232...原创 2018-12-29 23:28:39 · 3719 阅读 · 0 评论 -
STM32F429 >> 8. 系统定时器
bsp_systick.c/** ****************************************************************************** * @file bsp_systick.c * @author Waao * @version V1.0.0 * @date 22-Dec-2018 * @brief ...原创 2018-12-22 23:31:47 · 591 阅读 · 0 评论 -
STM32F429 >> 7. 中断
STM32 的中断主要涉及两个部分,NVIC 和EXTINVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能;外部中断/事件控制器(EXTI)可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。EXTI 可分为两大功能:产生中断 和 产生事件当其产生中断时,其中断线路将输入信号输入到NVIC,进一步运行中断服务函数,实现功能;而当其产生事件时,则是...原创 2018-12-22 09:50:28 · 897 阅读 · 1 评论 -
STM32F429 >> 6. RCC-使用HSE, HSI 配置时钟
本工程板级支持包文件适用于野火stm32f429 开发板。bsp_clk.c/** ****************************************************************************** * @file bsp_clk.c * @author Waao * @version V1.0.0 * @date 2...原创 2018-12-21 13:15:48 · 1419 阅读 · 0 评论 -
STM32F429 >> 5. 按键控制LED 开关
本工程板级支持包文件适用于野火stm32f429 开发板。本工程中涉及bsp_led.c, bsp_led.h 等文件,请前往STM32F429 >> 4. 使用固件库点亮LED进行查看bsp_key.c/** ****************************************************************************** * ...原创 2018-12-21 07:30:09 · 1060 阅读 · 0 评论 -
STM32F429 >> 4. 使用固件库点亮LED
在这一节的当中,最核心的内容就两点:学会创建自己的项目;学会创建板级支持包;STARTUP :放置启动文件STM32F4xx_StdPeriph_Driver 和CMSIS :放置库文件,不需要改动DOC :放置说明文件USER :放置用户创建或要进行改动的文件bsp_led.h#include "stm32f4xx.h"#define LED1_原创 2018-12-20 19:26:17 · 1411 阅读 · 0 评论 -
STM32F429 >> 3. STM32 固件库
CMSIS 标准中最主要的为 CMSIS 核心层,它包括了:内核函数层:其中包含用于访问内核寄存器的名称、地址定义;设备外设访问层:提供了片上的核外外设的地址和中断定义。库目录,文件简介在STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 文件中:Libraries:文件夹下是驱动库的源代码及启动文件。Project :文件夹下是用驱动库写的例子和工程模板。...原创 2018-12-18 12:58:53 · 3134 阅读 · 0 评论 -
STM32F429 >> 2. LED_Library_Function
本文代码已上传到GitHub:https://github.com/Waao666/STM32-2.-LED_Library_Functionmain.c#include <stm32f4xx.h>#include <stm32f4xx_gpio.h>int main(void){ GPIO_InitTypeDef InitStruct; RCC->...原创 2018-12-18 12:30:02 · 240 阅读 · 0 评论 -
STM32F429 >> 1. LED_RGB
stm32f4xx.h//外设寄存器#define PERIPH_BASE ((unsigned int)0x40000000) //总线寄存器#define APB1PERIPH_BASE PERIPH_BASE#define APB2PERIPH_BASE (PERIPH_BASE + 0x00010000)#define AHB1PERIPH_...原创 2018-12-16 22:31:36 · 927 阅读 · 0 评论