自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 按键控制LED-STM32电控学习笔记12

而我们知道,按键无非就两种模式,要么1要么0,所以本篇大致介绍一下通过两个按键控制LED的颜色和状态。查阅原理图我们发现,两个按键对应的IO口是PA0和PC13,既然芯片要从按键读取状态,我们在cubex中将这两个引脚配置成INPUT模式,然后将其设置成下拉模式(在这些注释直接填写的代码,在重新配置生成后,将自动保留,不会被覆盖,所以一些常用的函数和初始化可以写在这些地方。2、按下KEY2,抬起后亮起红色,熄灭,再按下亮起绿色,三种颜色顺次切换。之间书写相关宏定义和函数(接下来我们实现如下功能。

2022-12-20 22:13:21 1399 1

原创 野火霸道V2的LED点亮-STM32电控学习笔记11

,因此个人推荐首先看小蜜蜂老师的基于CubeMx开发stm32的系列视频,那个比较通俗易懂,野火老师的课对初学者或者电路小白可能不大友好。因此首先我们在CubeMX里面按照野火老师给的HAL库电子教材对芯片和时钟进行相关配置,既然我们要点亮板子上的LED灯,那么我们就要知道这个灯对应的GPIO口是哪一个。之前学习stm32纯粹因为兴趣,现在报名了电赛(大学生电子设计大赛),需要从0开始学习stm32,恰好最近广东的大学都提前放假了,正好有时间好好学习一下。大二太忙了,每天忙着学(gao)习(qian)

2022-12-20 20:49:37 977

原创 PWM控制LED亮度(2-呼吸灯)-STM32电控学习笔记10

第二步:我们既然需要开灯,就要在while循环内部设置相关引脚进行输出,而我们在前面配置时,将LED灯的RGB三个引脚设置为了PWM输出模式,因此我们可以利用下面这个函数进行引脚输出。之间,因为是向上计数,因此脉宽越大,占空比越大,我们将三个引脚的脉宽都设置为100,就可以得到一个占空比为50%的PWM信号,相对于LED灯的亮度为最大值的一半。打开源代码后,可以找到我们设置的预分频值、重载值、脉宽等,后续操作如需改变相关参数,只需要直接在源代码里修改即可,无需重新配置。在while循环内部输入。

2022-09-29 14:49:21 4682

原创 PWM控制LED亮度(1)-STM32电控学习笔记09

例如时钟的上限是200,每次计数1ms,那么计数器值就是200ms,我们设置捕获值(CRR)为100,那么当定时器跑到100时就会拉高/降低电平,也就是说,200ms内有100ms为高电平,那么占空比就是50%,周期就是200ms,脉宽就是100ms。),当定时器走到CCR这个位置之前,我们的单片机给引脚持续输出低电平,当定时器跑到CCR之后时,那么就转换为高电平,因此在不断的循环往复之间,便形成了我们的PWM信号。在上一篇我们知道了PWM的基本概念,那么我们的stm32单片机是如何产生PWM波的呢?

2022-09-28 17:05:51 2887

原创 PWM概述-STM32电控学习笔记08

脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。这是百度文库摘抄的对与PWM的解释,是不是很晦涩难懂?

2022-09-26 19:55:40 298

原创 STM32定时器的配置-STM32电控学习笔记07

将代码烧录进入单片机可以发现,LED灯以500ms为半周期闪烁,这样我们就实现中断回调函数闪烁LED灯的功能了,中断在我们平时调试机器人时会用到,但是并不会用的很深,只有到后期对电机要求精准把控时才需要多一些操作,因此我们会用就行,够用就行。对于APB2的总线,我们知道其时钟频率是168MHZ,因此我们的预分频值一般设置为16799,然后套公式计算出重装载值即可,例如我们要配置一个1000ms 的定时器,那么频率就应该为1HZ,那么就有公式。借此公式我们即可配置我们需要的定时器。

2022-09-26 18:31:15 996

原创 STM32中断回调函数&定时器-STM32电控学习笔记06

在 STM32 中,对信号的处理可以分为轮询方式和中断方式,轮询方式就是不断去访问一个信号的端口,看看有没有信号进入,有则进行处理,中断方式则是当输入产生的时候,产生一个触发信号告诉STM32有输入信号进入,需要进行处理。中断顾名思义,就是在一个程序A执行过程中,触发了某一条件,或者到了预定的时间,机器自动停止正在执行的程序A,中间插入另一个待处理程序B,待B处理完后,再继续处理程序A。

2022-09-26 01:07:42 3160

原创 翻转电平函数实现LED闪烁-STM32电控学习笔记05

在前面帖子大致了解了一下HAL_GPIO_WritePin()函数和HAL_Delay()函数的用法和功能,实现了LED灯的常亮/闪烁效果,那么除了上一篇帖子提到的函数改变引脚的高低电平,中间衔接延迟的方法以外,还有没有其他办法实现LED的闪烁呢?那便是这篇将提到的翻转电平函数HAL_GPIO_TogglePin(),这个函数的作用是翻转对应引脚的电平,实现高低电平的转换,用法和函数差不多我们看一下代码While(1){//初始状态是低电平,那么执行完下面的函数后,引脚就会翻转成高电平。

2022-09-25 13:35:11 5656 1

原创 延时函数HAL_Delay实现LED闪烁-STM32电控学习笔记04

我们传统的STM32开发中,都是直接对寄存器操作,从而实现功能,然而这种方式虽然编译效率很高,但是对单片机底层的知识要求也很高,操作前要查询各个外设的寄存器地址也很麻烦(大佬除外啊啊大佬除外),因此ST公司在后来开发了HAL库并大力推荐使用,在HAL库中封装着许多函数,它将最底层的东西封装起来,我们只需要调用一个个HAL库函数即可实现所需要的功能,例如上一篇帖子说的点灯,我们只有一行函数就实现了引脚的高电平输出,如果小伙伴想深入学习STM32底层原理的话,可以着重学习一下寄存器等,笔者觉得够用就行,大家自行

2022-09-25 13:18:25 2606

原创 点亮LED-STM32电控学习笔记03

LED的全称是Light Emitting Diode,意思是发光二极管,所以本质上LED也属于二极管的一种,由含镓(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成,就拿普通的二极管来说,比如当我们给他加正向电压时,电阻很小,他就能导通,加反向电压的话,二极管的电阻就贼tnd大,这个二极管就会截止,电流很小,自然就看不到发光现象了。接下来的学习都以这手册为例(这手册是好东西,但是有些地方写的太tm不友好了,小白容易在里面消磨信心~但是不慌好吧,啥玩意多啃几次就啃下来了)图二:Keil5软件页面。

2022-09-25 00:41:22 399

原创 HAL库开发准备工作-STM32电控学习笔记02

stm32是半导体厂商ST(意法半导体)生产的基于Arm Cortex的单片机系列,目前被广泛应用于工业,物联网,科创竞赛等。大学生机器人竞赛Robomaster和Robocon主要使用的是stm32f4系列单片机,该系列基于Cortex-M4内核,具有较高的性能,CPU工作频率可以达到168MHz,基本可以满足比赛中所有的控制需求。stm32的主流开发方式包括寄存器开发,标准库开发,HAL库(LL库)开发。寄存器开发即直接控制32的寄存器,工程运行效率高,但是开发难度大,可读性与可移植性差;

2022-09-24 17:00:57 600

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除