stm32系列-标准库
文章平均质量分 81
stm32系列-标准库
gavin's home
这个作者很懒,什么都没留下…
展开
-
9章-STM32笔记-库函数雏形
外设寄存器结构体定义:GPIO#define __IO volatile//易变的量,一般寄存器IO口寄存器typedef unsigned int uint32_t;//无符号32整型typedef unsigned short uint16_t;//无符号16短整型typedef struct { __IO uint32_t CRL; // 端口配置低寄存器, 地址偏移0X00 __IO uint32_t CRH; // 端口配置高寄存器, 地址偏移0X04 __IO uint3原创 2021-06-08 20:28:33 · 73 阅读 · 0 评论 -
12/13/14章-GPIO输出输入-点亮LED和按键检测
宏定义 // R-红色 #define LED1_GPIO_PORT GPIOB #define LED1_GPIO_CLK RCC_APB2Periph_GPIOB #define LED1_GPIO_PIN GPIO_Pin_5 // G-绿色 #define LED2_GPIO_PORT GPIOB #define LED2_GPIO_CLK RCC_APB2Periph_GPIOB #define LED2_GPIO_PIN GPIO_Pin_0 // B-蓝色 #define原创 2021-06-07 11:12:07 · 837 阅读 · 0 评论 -
16章-RCC—使用HSE/HSI 配置时钟
RCC—使用HSE/HSI 配置时钟HSE 是高速的外部时钟信号,可以由有源晶振或者无源晶振提供HSI 系统内部时钟在STM32F103 系列中,PA8 可以复用为MCO 引脚,对外提供时钟输出原创 2021-06-08 20:21:43 · 210 阅读 · 0 评论 -
17/18章-中断
中断中断-1 NVIC 结构体定义,来自固件库头文件:core_cm3.h typedef struct { __IO uint32_t ISER[8]; // 中断使能寄存器 uint32_t RESERVED0[24]; __IO uint32_t ICER[8]; // 中断清除寄存器 uint32_t RSERVED1[24]; __IO uint32_t ISPR[8]; // 中断使能悬起寄存器 uint32_t RESERVED2[24]; __IO uint3原创 2021-06-07 11:13:38 · 341 阅读 · 0 评论 -
19章-SysTick—系统定时器
SysTick 简介SysTick—系统定时器是属于CM3 内核中的一个外设,内嵌在NVIC 中。系统定时器是一个24bit的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK,一般我们设置系统时钟SYSCLK等于72M。当重装载数值寄存器的值递减到0的时候,系统定时器就产生一次中断,以此循环往复。系统定时器一般用于操作系统,用于产生时基,维持操作系统的心跳。寄存器名称寄存器描述CTRLSysTick控制及状态寄存器LOADSysTick重装载数值寄存器VA原创 2021-06-07 11:14:17 · 483 阅读 · 0 评论 -
21章通讯(USART)
基础理论知识串行和并行通讯比喻为单车道和多车道全双工、半双工及单工通讯通讯方式说明全双工在同一时刻,两个设备之间可以同时收发数据半双工两个设备之间可以收发数据,但不能在同一时刻进行单工在任何时刻都只能进行一个方向的通讯,即一个固定为发送设备,另一个固定为接收设备同步通讯与异步通讯根据通讯过程中是否有使用到时钟信号进行简单的区分。实时性要求不高多用异步通信同步通讯中,收发设备双方会使用一根信号线表示时钟信号;异步通讯中不使用时钟信号进行数据同步,它们直原创 2021-06-07 11:10:21 · 1484 阅读 · 0 评论 -
22章DMA
DMA(Direct Memory Access)—直接存储器存取,是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用CPU,即在传输数据的时候,CPU 可以干其他的事情,好像是多线程一样。数据传输支持从外设到存储器或者存储器到存储器,这里的存储器可以是SRAM 或者是FLASH。DMA 控制器包含了DMA1 和DMA2,其中DMA1 有7 个通道,DMA2 有5 个通道,这里的通道可以理解为传输数据的一种管道。要注意的是DMA2 只存在于大容量的单片机中。DMA 功能框图从编程的角度来看,原创 2021-06-07 11:13:18 · 288 阅读 · 0 评论 -
24章 I2C
I2C 物理层它的物理层有如下特点:(1) 它是一个支持设备的总线。“总线”指多个设备共用的信号线。在一个I2C 通讯总线中,可连接多个I2C 通讯设备,支持多个通讯主机及多个通讯从机。(2) 一个I2C 总线只使用两条总线线路,一条双向串行数据线(SDA) ,一条串行时钟线(SCL)。数据线即用来表示数据,时钟线用于数据收发同步。(3) 每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问。(4) 总线通过上拉电阻接到电源。当I2C 设备空闲时,会输出高阻态,而当原创 2021-06-07 11:10:46 · 600 阅读 · 0 评论 -
25章 SPI—读写串行FLASH
SPI 协议简介通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在ADC、LCD 等设备与MCU 间,要求通讯速率较高的场合。可与I2C 章节对比阅读,体会两种通讯总线的差异以及EEPROM 存储器与FLASH存储器的区别。物理层SPI 通讯使用3 条总线及片选线,3 条总线分别为SCK、MOSI、MISO,片选线为SS1、2、3(1) ( Slave Select):从设备选择信号线,常称为片选信号线,也称为NS原创 2021-06-07 11:09:41 · 2245 阅读 · 1 评论 -
30章 ADC
STM32f103 系列有3 个ADC,精度为12 位,每个ADC 最多有16 个外部通道。其中ADC1 和ADC2 都有16 个外部通道,ADC3 根据CPU 引脚的不同通道数也不同,一般都有8 个外部通道。电压输入范围ADC 输入范围为:VREF- ≤ VIN ≤ VREF+。由VREF-、VREF+ 、VDDA 、VSSA、这四个外部引脚决定。我们在设计原理图的时候一般把VSSA 和VREF- 接地,把VREF+ 和VDDA 接3V3,得到ADC 的输入电压范围为:0~3.3V。如果我们想让原创 2021-06-07 11:11:19 · 1299 阅读 · 0 评论 -
31章-定时器
基本定时器TIMSTM32F1 系列中,除了互联型的产品,共有8 个定时器,分为基本定时器,通用定时器和高级定时器。基本定时器TIM6 和TIM7 是一个16 位的只能向上计数的定时器,只能定时,没有外部IO。通用定时器TIM2/3/4/5 是一个16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,每个定时器有四个外部IO。高级定时器TIM1/8 是一个16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,还可以有三相电机互补输出信号,每个定时器有8 个外部IO。原创 2021-06-07 11:12:35 · 884 阅读 · 0 评论