![](https://img-blog.csdnimg.cn/20190819125704663.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
STM32
文章平均质量分 92
STM32的知识集合
飘飘仙儿__
可以不成功,不能不成长
展开
-
STM32的总线矩阵
STM32的各种总线与总线矩阵介绍转载 2022-12-02 17:05:41 · 1334 阅读 · 0 评论 -
STM32F407HAL库-8.串口数据收发-DMA
串口数据收发(DMA)初始化步骤:第一步:调用HAL_DMA_Init函数初始化DMA参数,函数传入结构体参数如下:typedef struct __DMA_HandleTypeDef{ DMA_Stream_TypeDef *Instance; // DMA数据流地址 DMA_InitTypeDef Init; // DMA通讯的参数 HA...原创 2019-08-24 11:04:59 · 7704 阅读 · 1 评论 -
STM32F407HAL库-7.串口数据收发-中断
串口数据收发(中断)初始化步骤:第一步:调用HAL_UART_Init函数初始化串口参数,函数传入结构参数如下: typedef struct{ USART_TypeDef *Instance; // 传入串口的基地址 UART_InitTypeDef Init; // 传入串口初始化参数,波特率、奇偶校验等 uint8_t ...原创 2019-08-22 19:33:29 · 3858 阅读 · 0 评论 -
STM32F407HAL库-6.串口数据收发-轮询
串口数据收发(轮询)初始化步骤:第一步:调用HAL_UART_Init函数初始化串口参数,函数如下:HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart);函数传入结构参数如下: typedef struct{ USART_TypeDef *Instance; // 传入串口的基地址 UAR...原创 2019-08-17 11:52:37 · 3245 阅读 · 0 评论 -
STM32F407HAL库-5.串口原理
串口作为MCU的重要外部接口,同时也是软件开发重要的调试手段。通用同步异步收发器(USART)能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准 NRZ 异步串行数据格式的要求。USART 通过小数波特率发生器提供了多种波特率,通过配置多个缓冲区使用DMA可实现高速数据通信。任何 USART 双向通信均需要至少两个引脚:接收数据输入引脚(RX)和发送数据输出引脚(TX)。在同步模式...原创 2019-08-22 18:52:54 · 2431 阅读 · 0 评论 -
STM32F407HAL库-4.中断管理及按键中断
中断是指当CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂停正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程就称为中断,我们把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。CM4内核支持256个中断,其中包含了16内核中断和240个外部中断,并且具有256级的可编程中...原创 2019-08-17 10:37:49 · 4643 阅读 · 0 评论 -
STM32F407HAL库-3.GPIO初始化
在使用HAL库时,GPIO初始化函数定义在stm32f4xx_hal_gpio.c文件中,如下:void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init);由这个函数可以看出,在初始化GPIO时,需要向函数传入2个结构体,第一个“GPIO_TypeDef”,这个结构体主要定义了需要初始化的GPIO分组,比较简...原创 2019-08-17 10:18:15 · 5300 阅读 · 0 评论 -
STM32F407HAL库-2.系统时钟配置
在系统启动之后,程序会先执行HAL库定义的SystemInit函数,进行系统一些初始化配置。SystemInit程序如下:void SystemInit(void){ // FPU 设置 #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3...原创 2019-08-17 09:44:39 · 3063 阅读 · 0 评论 -
STM32F407HAL库-1.启动文件解析
1、启动文件简介启动文件由汇编语言编写,是系统上电复位后第一个执行的第一段程序。主要做了以下工作:初始化堆栈指针 SP = _initial_sp 初始化PC指针 = Reset_Handler 初始化中断向量表 配置系统时钟 调用C库函数_main初始化用户堆栈,从而最终调用main函数。2、查找ARM汇编指令在启动文件中,会涉及到ARM的汇编指令和Cortex内核的指令。...原创 2019-08-17 09:39:52 · 3042 阅读 · 1 评论 -
STM32F407HAL库-10.滴答定时器
SysTick定时器也叫滴答定时器,是属于CM4内核中的一个外设,内嵌在NVIC中。滴答定时器是一个24bit的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK等于 180M。当重装载数值寄存器的值递减到 0的时候,系统定时器就产生一次中断,以此循环往复。SysTick定时器有4个寄存器,在使用SysTick产生定时的时候,只需要配置CTRL、L...原创 2019-08-27 19:28:58 · 3748 阅读 · 0 评论 -
STM32F407HAL库-11.定时器
定时器(Timer)最基本的功能就是定时了,比如定时发送 USART 数据、定时采集 AD 数据等等。如果把定时器与 GPIO 结合起来使用的话可以实现非常丰富的功能,可以测量输入信号的脉冲宽度,可以生产输出波形。定时器生产 PWM 控制电机状态是工业控制普遍方法,这方面知识非常有必要深入了解。STM32F4xx系列控制器有2个高级控制定时器、10个通用定时器和2个基本定时器,还有两个看门狗定...原创 2019-08-30 20:01:46 · 4984 阅读 · 0 评论 -
STM32F407HAL库-12.PWM输出
通过配置STM32F407定时器来实现呼吸灯。PWM输出就是通过定时器通道对外输出脉宽(即占空比)可调的方波信号,信号频率由定时器自动重装寄存器 ARR 的值决定,占空比由定时器比较寄存器 CCR 的值决定。PWM模式分为两种,PWM1和 PWM2,具体区别如下表: 模式 计数器CNT计算公式 说明 PWM1 ...原创 2019-08-30 20:10:04 · 7302 阅读 · 4 评论 -
STM32F407HAL库-9.待机唤醒
电源对电子设备的重要性不言而喻,它是保证系统稳定运行的基础,而保证系统能稳定运行的同时,又有低功耗的要求。在很多应用场合中都对电子设备的功耗要求非常苛刻,如 某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。因此,STM32有专门的电源管理外设...原创 2019-08-27 19:16:41 · 4636 阅读 · 0 评论