
stm32F1使用简述
文章平均质量分 70
stm32F1基本外设使用笔记。
云-生
茕茕孑立,形影相吊。
展开
-
STM32F1----SPI
SPI1、硬件SPI初始化流程(1)初始化通讯使用的目标引脚及端口时钟;(2)使能 SPI外设的时钟;(3)配置 SPI外设的模式、地址、速率等参数并使能 SPI外设;(4)编写基本 SPI按字节收发的函数;2、硬件SPI结构体SPI 初始化结构体详解跟其它外设一样,STM32 标准库提供了 SPI 初始化结构体及初始化函数来配置 SPI 外设。1 typedef struct2 {3 uint16_t SPI_Direction; /*设置 SPI 的单双向模式 */4 uint原创 2021-05-12 23:37:39 · 1500 阅读 · 0 评论 -
STM32F1----WWDG
1、WWDG初始化流程<1>使能窗口看门狗的时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);<2>设置窗口看门狗时钟分频系数WWDG_SetPrescaler(WWDG_Prescaler_8);<3>设置窗口的上限值WWDG_SetWindowValue(80);<4>设置计数值的初值WWDG_Enable(127);<5>配置WWDG的NVIC//略&l原创 2021-05-03 20:41:11 · 432 阅读 · 1 评论 -
STM32F1----IWDG
1、独立看门狗初始化流程<1>使能看门口寄存器IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);<2>设置看门狗的时钟分频,(例:分频32kHz/200=125Hz,就是一秒完成125次计数)IWDG_SetPrescaler(IWDG_Prescaler_256);<3>设置看门狗计数值125 一秒内没有刷新计数值,就会复位一次IWDG_SetReload(125);<4>刷新独立看门狗的计数值,原创 2021-05-03 20:10:38 · 378 阅读 · 0 评论 -
STM32F1----TIM_ADVANCED
1、高级定时器带死区初始化流程<1>定时器IO口配置。<2>配置时基结构体:TIM_TimeBaseInitTypeDef<4>配置输出比较结构体:TIM_OCInitTypeDef<5>配置断路和死区结构体:TIM_BDTRInitTypeDef<6>启动定时器,输出使能。2、高级定时器结构体定时器基本初始化结构体 >> TIM_TimeBaseInitTypeDeftypedef struct{ uint原创 2021-05-03 19:14:01 · 459 阅读 · 0 评论 -
STM32F1----TIM_GENERAL
1.通用定时器PWM模式初始化流程<1>建立GPIO、时基、输出比较结构体 GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure;<2>使能定时器以及相关IO口时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_原创 2021-04-17 17:25:56 · 527 阅读 · 0 评论 -
STM32F1----TIM_BASE
1.基本定时器定时初始化流程<1>建立时基初始化结构体与中断NVIC结构体TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;<2>打开定时器外设的时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);<3>配置定时器初始化与NVIC结构体并初始化/* NVIC结构体并初始化原创 2021-04-17 14:20:28 · 1464 阅读 · 0 评论 -
STM32F1----ADC
1.ADC初始化流程<1>建立GPIO、ADC初始化结构体GPIO_InitTypeDef GPIO_InitStructure;ADC_InitTypeDef ADC_InitStructure;<2>打开相应的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);<3>配置GPIO、ADC初始化原创 2021-04-17 01:36:00 · 938 阅读 · 0 评论 -
STM32F1----I2C
1.硬件I2C的初始化流程<1>建立GPIO、I2C初始化结构体GPIO_InitTypeDef GPIO_InitStructure; I2C_InitTypeDef I2C_InitStructure;<2>打开GPIO和I2C挂载的时钟/*启动时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);原创 2021-04-13 20:02:20 · 628 阅读 · 1 评论 -
STM32F1----USART
1.USART初始化流程<1>建立GPIO、USART、NVIC初始化结构体USART_InitTypeDef USART_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;<2>打开对应的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB1PeriphClockC原创 2021-04-12 23:50:57 · 708 阅读 · 1 评论 -
STM32F1----SysTick
1.SysTick定时器初始化流程<1>调用SysTick_Config函数配置SysTick定时器计数频率。<2>定义SysTick定时器中断函数,每次中断时对递减某一个变量,当变量等于0时,定时时间到。<3>封装延时函数2.SysTick定时器中断延时例程#include "systick.h"#include "misc.h"#include "core_cm3.h"static __IO uint32_t delay_ticks; //__I原创 2021-04-12 00:04:34 · 636 阅读 · 0 评论 -
STM32F1----NVIC
1.NVIC初始化流程<1>配置中断优先级分组void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);<2>建立NVIC初始化结构体NVIC_InitTypeDef NVIC_InitStructure;<3>配置NVIC结构体并初始化NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;NVIC_InitStructure.NVIC_IRQCha原创 2021-04-11 17:35:56 · 1443 阅读 · 0 评论 -
STM32F1----EXTI
1.EXTI初始化流程<1> 建立EXTI、GPIO、NVIC初始化结构体。 EXTI_InitTypeDef EXTI_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure;<2> 打开GPIO与AFIO时钟 /* 使能 GPIOA 时钟 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GP原创 2021-04-10 17:29:25 · 1576 阅读 · 0 评论 -
STM33F1----GPIO
1.GPIO初始化流程 <1>建立gpio初始化结构体 GPIO_InitStructure <2>打开gpio外设的时钟 RCC_APB2Periph_GPIOx <3>结构体变量初始化 (Pin、Mode、Speed) <4>结构体初始化GPIO_Init(GPIOx,&GPIO_InitStructure)2. GPIO初始化结构体typedef struct{ uint16_t GPIO_Pin;原创 2021-04-10 15:58:49 · 282 阅读 · 0 评论 -
STM32F1----RCC
【stm32学习总结】 rcc篇——————————芯片基于stm32f103vet6———————————想了想时间过的真快啊,转眼间就大二了啊。昨天看见大一新生,在他们身上我依稀看见了我那个时候的模样。 <1>时钟树(重要的时钟节点用彩色标注)<2>主时钟控制框图 对于STM32来说,时钟源一共有四个,分别为 LSI 、LSE 、HSE 、HSI。另外一种说法为五个,加上PLL。个人认为,根据上面这个时钟树也可以看出,PLLCLK是HSE或者HSI经过锁原创 2020-09-14 16:05:51 · 575 阅读 · 1 评论