STM32基础
文章平均质量分 80
购买的正点原子的开发板,丢在角落里面好多年了。主要的原因是配套的视频不适合零基础的人,学习起来贼操蛋。重新学习STM32,使用STM32CubeMX进行配置硬件,学习起来简单多了。
颖川初尘
纸上得来终觉浅,绝知此事要躬行
展开
-
STM32基础13--直接存储器访问(DMA)
前言 在前面无论是串口,ADC,还是DAC。我们都需要CPU去将数据读回来,然后发送出去。DMA(Direct Memory Access,直接存储器访问)...原创 2022-05-19 23:48:59 · 1289 阅读 · 0 评论 -
STM32基础12--数模转换(DAC)
目录前言DAC框图功能需求硬件电路STM32CubeMx配置DAC功能代码实现串口输出前言 在做51单片机项目时,如果需要对外围电路的压输出,往往会在51单片机上面外挂一个DAC转换芯片(例如DAC0808)。但在STM32F407中,不再需要这么干了,因为在STM32的内部就已经集成了DAC电路。 STM32中,DAC 模块是 12 位电压输出数模转换器。DAC 可以按 8 位或 12 位模式进行配置,并且可与DMA ...原创 2022-05-08 16:21:31 · 3350 阅读 · 1 评论 -
STM32基础11--模数转换(ADC)
目录前言ADC框图ADC测量的硬件电路功能需求STM32CubeMx配置ADC功能代码实现前言 在做51单片机项目时,如果需要对外围电路进行电压测量时,往往会在51单片机上面外挂一个ADC转换芯片(例如ADC0809)。但在STM32F407中,不再需要这么干了,因为在STM32的内部就已经集成了ADC电路。 STM32中有3个最高分辨率为12 位 ADC 是逐次趋近型模数转换器。它具有多达 19 个复用通道,可测量来自 16 个外部源...原创 2022-05-04 14:26:03 · 2741 阅读 · 1 评论 -
STM32基础10--实时时钟(RTC)
目录前言RTC框图STM32实时时钟电路功能需要STM32CubeMx配置RTC配置RCC配置RTC配置时间,闹钟,唤醒开启中断设置中断优先级功能代码实现STM32Cude生成RTC初始化自定义触发闹钟次数变量重写周期唤醒回调函数重写闹钟中断函数前言在做51单片机项目时,如果需要年月日时分秒的时间记录,会在51单片机上面外挂一个DS1302的时钟芯片,再加上时间芯片的外围电路。但在STM32F407中,不再需...原创 2022-05-02 20:12:40 · 10995 阅读 · 2 评论 -
STM32基础9--串口通信(UART)
串口基本通讯的方式原创 2022-05-01 19:55:58 · 3866 阅读 · 0 评论 -
STM32基础8--通用定时器(PWM控制LED)
目录PWM控制LED硬件电路PWM周期与LED闪烁PWM低电平与LED的亮度等级PWM实现256个等级的LED亮度呼吸灯STM32CubeMx配置通用定时器 代码功能实现从STM32基础7--通用定时器,STM32通用定时器可以产生PWM波形,从而控制LED亮度。下面我们更加详细的了解一下,PWM对LED的控制。PWM控制LED硬件电路在下面的原理图中,可以看到LED0与LED1连接到STMF407的PF9与PF10引...原创 2022-04-30 19:49:25 · 3775 阅读 · 0 评论 -
STM32基础7--通用定时器(PWM输出)
STM32 通用定时器(PWM输出)原创 2022-04-25 00:38:36 · 2028 阅读 · 0 评论 -
STM32基础6--基本定时器
目录基本定时器框图设置定时时间STM32CubeMx配置基本定时器HAL库中基本定时器初始化HAL库中实现基本定时器中断服务过程STM32F407中有基本定时器,通用寄存器,高级寄存器。其中TIM6与TIM7是基本定时器。基本定时器框图在基本定时器中,内部时钟(CK_INT)经过控制器到达预分频器(PSC),经过分频后进入计数器(CNT COUNTER)。当计数值与自动重装寄存器的值一样,触发自重重装重新计数,同时可以触发中断 、DM...原创 2022-04-17 17:35:57 · 1480 阅读 · 0 评论 -
STM32基础5--外部中断
目录外部中断/事件控制框图23根外部中断线 STM32CubeMx配置外部中断HAL库中实现函数中断服务过程外部中断/事件控制框图 在下面的外部中断/事件控制框图中,可以看到输入线到NVIC的过程,如图中的1线。 1)外部信号由输入线进入进入边沿检测电路(需要设设置上升沿触发选择寄存器或者选择下降沿触发选择寄存器,图中的2线,3线) 2) 软件中断事件寄存器,这个寄存器与边沿检测电路共同经过一个"或门",也就是既可以...原创 2022-04-16 17:43:22 · 3058 阅读 · 0 评论 -
STM32基础4--中断系统
目录为什么需要中断中断系统的功能中断控制器与中断向量表为什么需要中断在使用单片机时,最开始我们会使用一个Main函数,然后所有的功能都往里丢。在任务少的时候,并没有什么问题。例如在main函数添加点亮LED,添加延时函数,添加KEY扫描。 一切都好像完美运行,但是如果我们将延时的时间加长,然后去KEY,这时候我们可以发现,我们按的KEY时好是坏。这时候我们就会很痛苦了,我们需要长时间的延时,但是又想我们的KEY功能正常,我们不得不想办法解决这个问题,如果...原创 2022-04-16 10:38:46 · 3861 阅读 · 0 评论 -
STM32基础3--GPIO控制(LED&KEY)
在SMT2基础1,生成文件后。其实就可以调用HAL库中的"stm32f4xx_hal_gpio.h"的GPIO控制函数,对GPIO进行操控了。HAL_GPIO_ReadPin 该函数,对引脚的电平的读取,也就是输入电平,返回值是电平的状态。GPIO_PIN_RESET 为低电平,GPIO_PIN_SET为高电平。typedef enum{ GPIO_PIN_RESET = 0, GPIO_PIN_SET}GPIO_PinState;函数第1个...原创 2022-03-26 17:59:41 · 4613 阅读 · 0 评论 -
STM32基础2--SMT32CubeMX的 code目录
目录1.0:Code的目录结构2.0:main.h3.0:main.c4.0 :gpio.h5.0 :gpio.c1.0:Code的目录结构在上一篇文章生成代码后,通过MDK打开项目,可以看到如下的项目结构。对于GPIO来说,我们只需要关注两个文件"main.h","main.c" ,"gpio.h","gpio.c"。2.0:main.h main.h 可以看到引入头文件#include "stm32f4xx_hal.h",以及对...原创 2022-03-20 15:16:31 · 659 阅读 · 0 评论 -
STM32基础1--STM32CubeMx项目配置
目录1.0:选择STM芯片2.0:设置RCC3.0:设置SYS4.0:硬件配置5.0:配置引脚1)设置引脚功能2)配置引脚初始化状态6.0:配置时钟树7.0:项目配置1)配置项目号名,项目保存路径,使用工具链2)配置 ".c"与".h" 文件7.0:生成代码与编译 1)生成code 2)编译1.0:选择STM芯片启动STM32CubeMx之后,点击File-&...原创 2022-03-20 12:52:33 · 2102 阅读 · 0 评论