STM32
文章平均质量分 79
飞天小荷叶
这个作者很懒,什么都没留下…
展开
-
RTC
开发平台标准库野火F429开发板蓝桥杯嵌入式板子RTC——实时时钟由RTC框图可以看出,使用日历功能,只需要三步就可以了(1)选择RTC的时钟源如何选择时钟源:有HSE、LSE、LSI,一般使用LSE作为时钟源,LSI稳定性差。但是我选择LSE作为时钟源的时候,RTC初始化失败,原因我也不知道。所以最后我选择了LSI作为时钟源(2)设置RTC的同步分频因子和异步分频因子L...原创 2020-03-05 15:46:35 · 580 阅读 · 0 评论 -
FMC扩展SDRAM
开发平台F429标准库SDARM如何控制SDRAM控制线:控制SDRAM需要命令去控制,控制线在不同状态下形成不同的命令地址线:用来选取地址的,分成A类线和BA类,A是行和列的地址总线,BA是用来选取BANK的独立地线(一般的SDRAM都有4个BANK)。如何选取地址:首先选择BANK的序号,然后再选行和列数据线:用来输入输出数据(一共有16位),这个型号的SDRAM,数据...原创 2020-02-09 20:24:11 · 681 阅读 · 0 评论 -
DMA
开发平台野火开发板F429标准库DMA(直接存储区访问)DMA可以数据的高效传输,数据移动过程无需经过任何CPU的操作和控制。F4支持:存储器到存储器、存储器到外设、外设到存储器F4有两个DMA控制器:DMA1和DMA2,只有DMA2才支持存储器到存储器DMA架构1、外设通道选择(每个数据流的每个通道有对应的外设,不过有一些是没有的)2、数据流的选择3、仲裁器,当有...原创 2020-01-20 17:38:38 · 1092 阅读 · 2 评论 -
SPI
开发平台野火开发板F429标准库SPISPI也是通讯协议,通常会拿去和I2C做比较。SPI比I2C的数据线要多一点,可是通讯速率快了很多SPI总线上也是可以挂载多个外设的,但不同的是SPI外设并没有设备地址,所以每个SPI都有一条线选信号线(CS),当这条信号线被选中时,STM32就和信号线被选中的设备通信SPI总线:MOSI(主设备输出从设备输出入)、MISO(主设备输入从设备...原创 2020-01-19 10:54:55 · 584 阅读 · 0 评论 -
I2C
一提到I2C就会想到是通信协议,两个设备遵守这个协议便可以进行通讯一个I2C总线上可以挂在多个I2C设备,一个I2C总线上有SCL(时钟线)和SDA(数据线)I2C时序I2C的时序,如下图:1.SCL(时钟线)高电平有效。在SCL高电平时,SDA(数据线)由高电平被拉低,表示已经有了起始信号,可以开始通讯2.数据在SCL为高电平时有效,SCL为低电平时无效,在SCL为低电平时,S...原创 2020-01-17 20:48:23 · 3536 阅读 · 2 评论 -
USART——串口通讯
开发平台野火F429开发板标准库通讯基本概念同步通讯和异步通讯同步通讯和异步通讯的区别在于有没有时钟信号线全双工、半双工、单工通讯全双工可以收发同时进行半双工可以收发但不可同时进行单工只能收或发USART三大时序:USART、I2C、SPI,USART是其中之一了现在我使用串口一般都是打印调试信息或者蓝牙通讯 ,只会用到TX和RX如果想要操作寄存器,那就要看功能框...原创 2020-01-13 21:36:39 · 1621 阅读 · 2 评论 -
RCC 使用HSE/HSI配置系统时钟
开发平台野火F429开发板标准库配置系统时钟首先要学会看时钟树,f429主频为180MHZ时钟树查看手册 时钟树如下图现在我需要用到的时钟总线主要是:AHB、APB1、APB2 其他的以后用到的时候再看吧1.HSE外部高速时钟信号HSE由晶振提供,晶振又分有源晶振和无源晶振,无源晶振需要提供时钟电路才可产生振荡。由图中可以看到 OSC_OUT和OSC_IN,采用无源晶振时,时钟...原创 2020-01-11 23:42:01 · 1686 阅读 · 0 评论 -
硬件I2C驱动MPU6050
I2CI2C有两条总线线路,分别是SCL(时钟线)和SDA(数据线)。I2C的时序非常重要:读数据和写数据的时序有点不一样,在写程序的时候就体现得到。I2C的SCL高电平时有效,SDA高电平为1,低电平为0。I2C的驱动:I2C.h#ifndef __I2c__H#define __I2c__H#include "stm32f4xx.h"#define MPU_ADDR...原创 2019-09-27 22:31:04 · 1774 阅读 · 2 评论 -
STM32 高级定时器 输出PWM (用DHT11测得的温度去调节RGB灯的亮度)
开发平台野火STM32F429开发板使用标准库开发高级定时器高级定时器其实就是基本定时器加上输入捕获、输出比较和断路死区,所以有四个初始化函数:定时器时基初始化函数TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);输出比较初始化函数TIM_OC1Init(T...原创 2019-09-06 21:47:02 · 1419 阅读 · 2 评论 -
STM32用寄存器点亮LED灯
寄存器:实际上就是cpu里面的东西 每个单元都有不一样的功能,根据功能给这些存储单位取别名,这个别名就是我们所说的寄存器。寄存器的映射:给寄存器分配地址的过程就叫作寄存器的映射。新建工程:新建工程需要手动创建main.c.h(头文件)头文件:寄存器的映射如何写寄存器的映射:首先找到需要控制外设的IO口,根据这个IO口去寄存器组织架构寻找需要控制外设的IO口在哪里基地址是什么,然后再...原创 2019-03-31 16:00:59 · 5772 阅读 · 0 评论 -
STM32新建工程
固件库:固件库就是把操作寄存器的代码封装成函数给用户操作寄存器实现想要的功能用固件库操作寄存器,新建工程的步骤:1.在本地新建一个文件夹,存放库文件CMSIS存放内核相关的头文件、启动文件和system _stm32f4xx.h system_stm32f4xx.c文件Project存放工程文件STM32F4xx_StdPeriph_Driver存放外设的头文件和源文件User存...原创 2019-04-22 19:40:15 · 364 阅读 · 1 评论 -
RCC—使用HSE配置系统时钟
RCC—使用HSE配置系统时钟芯片提供时钟就要有时钟树什么是晶振?晶振:晶体振荡器,用于各种电路中产生振荡频率,每个单片机里都会有晶振,给单片机提供时钟频率,振荡得越快,时钟频率就越高,单片机运行的速度就越快解析时钟树的方法:(系统时钟)时钟是由晶振提供的,首先要找到时钟的入口点。图中OSC_IN 和 OSC_OUT,这两个是外部晶振的引脚,所以时钟是从这里进入的。接有源晶振时,时钟从...原创 2019-07-23 17:40:42 · 1562 阅读 · 7 评论 -
EXTI——外部中断(按键中断)
STM32F429中有10个系统异常,91个中断。EXTI——外部中断/事件控制器有图可得:EXTI可以产生中断也可以产生事件编写按键——中断驱动程序初始化RGB彩色灯(前面的LED驱动程序已经写好了,直接调用就可以了)打开GPIO的时钟和SYSCFG时钟(SYSCFG是外部中断寄存器,使用EXTI必须开启SYSCFG时钟)配置NVICNVIC是嵌套向量中断控制器,设置...原创 2019-07-28 17:04:45 · 3791 阅读 · 1 评论 -
STM32 DHT11
STM32 DHT111. 开发平台野火STM32F429开发板使用标准库开发2. DHT11介绍DHT11温湿度传感器,是一个单总线传感器。所以DHT11最先输出的是湿度然后在输出温度(最开始我没认真看,以为先输出温度再输出湿度,然后打印出来的数据是反的)3. DHT11的时序先是主机发送开始信号然后就DHT11响应DHT11发送数据最后要把数据线拉高...原创 2019-09-04 16:20:16 · 2184 阅读 · 7 评论 -
GPIO输出——固件库点LED GPIO输入——按键检测
GPIO输出—固件库点亮LED灯点亮led灯的原理:LED的阳极接高电平,阴极接IO口。要LED灯亮就要形成闭合回路,IO口接入低电平就能形成闭合回路,点亮LED一个led驱动的三大功能:LED亮LED灭LED翻转新建led.c led.h 两个文件存放GPIO初始化函数 (加入工程后记得添加路径!!!)编写头文件格式:(这样写是为了防止重复定义) #ifndef _...原创 2019-07-22 13:30:58 · 1032 阅读 · 0 评论