自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蓝桥杯嵌入式组复习过程

由于是第一次创建工程,这里要做一个添加,如图。然后使用EDA中状态机的方法开始模拟按键的状态,最后输出不同的结果,要知道,使用状态机的过程中,各个过程之间的转化是需要时间的,而这个时间就是设置的定时器时间,当按键按下进入第一个状态,等10ms过后依然是这个状态,则进入第二个状态,最后按键松开进入第三个状态,输出结果为主函数所利用。接着,在KEIL工程里添加一个新的文件夹,也叫BSP,然后添加已存在的文件,将c文件放进去,最后一步,找到魔术棒里的C/C++选项,将BSP头文件路径添加进去,这样就大功告成了。

2024-04-10 17:58:52 915

原创 如何使用HAL库手动配置一个可输出可输入的引脚

在使用CubeMX配置GPIO口时的时候,对于某一个引脚只能选择用来输出或者输入。而有时我们需要在STM32上使用一些外设,比如DHT11温湿度传感器,其中的DATA口需要既能接收信号又能发送信号,所以我们可以参照CubeMX自动生成的GPIO初始化来进行配置。举个例子,此时我需要对DHT11进行时序分析,我们如何使用这里的PB7口来启动DHT11。下面就是照葫芦画瓢。

2023-08-09 20:44:55 672

原创 LCD1602相关

LCD1602是一种工业字符型液晶,能够同时显示16*02即32字符(16列2行)要注意在写函数之前定义引脚,如果使用CubeMX需要配置引脚以及所需宏定义等。为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。为读写信号线,高电平时进行读操作,低电平时进行写操作。根据引脚接口说明,以及时序图,我们可以写如下函数。端由高电平跳变成低电平时,液晶模块执行命令。同为低电平时可以写入指令或者显示地址,当。为高电平时可以读忙信号,为低电平时可以写入数据。时对比度最高,对比度。,使用时可以通过一个。

2023-08-08 21:09:11 610

原创 通过STM32内部ADC将烟雾传感器发送的信号值显示在OLED上

在定时器中断回调函数中对ADC进行打开,转换取样等操作,将烟雾传感器发送的电压进行转化,使用sprintf获得实时变化的值,并将其乘3.3/2的12次方。在Keil5中添加好oled的显示库,以及用来显示的函数、初始化函数、清屏函数等。// 等待ADC转换完成。

2023-07-25 21:12:41 1198

原创 STM32中PWM概述

上文提到的CCRx使用以下语句配置,第三个参数pwmVal为自己定义的变量,它的大小就是CCRx的大小。其中CH Polarity为极性,因为LED灯点亮为低电平,所以设置为Low。首先找到单片机中LED灯对应的通道,我的是TIM4,通道3。PWM占空比:由TIMx_CCRx寄存器决定。通用定时器(TIM2~TIM4):各4路。*PWM模式1:在向上计数时,一旦。*PWM模式2:在向上计数时,一旦。我们使用PWM实现一个呼吸灯效果。高级定时器(TIM1):7路。以启动定时器PWM。

2023-07-20 19:34:06 331

原创 STM32定时器

3.高级定时器(TIM1和TIM8):除剧本通用定时器的所有功能外,还具备带死区控制的互补信号输 出,刹车输入等功能(可用于电机控制,数字电源设计等)。2.通用定时器(TIM2-TIM5):具有多路独立通道,可用于输入捕获/输出比较,也可用作石基。A.更新:计数器向上/向下溢出,计数器初始化(通过软件或者内部/外部触发)定时器的工作原理:使用精准的时基,通过硬件的方式,实现定时功能,定时器的核心就是计数器。

2023-07-20 15:02:33 164

原创 STM32中的震动传感器使用

震动传感器是作为一个输入的外设,当发生震动时,DO引脚会向单片机引脚发送低电平,当其不震动时,持续向单片机输出高电平。在STM32中可以将其发送的低电平作为一个中断信号。触发c程序中的callback函数。将优先级设置为最高,并将其他中断源优先级改为低级。注:HAL_Delay使用的是滴答定时器,容易被其他中断源打断,所有有时要在主函数中加上。

2023-07-17 11:11:41 791

原创 独立看门狗IWDG

由于单片机在工作过程中可能会受到干扰,造成程序跑飞,陷入死循环,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于检测单片机程序运行状态的模块或者芯片俗称”看门狗“。独立看门狗工作在主程序之外,能够完全独立工作,它的时钟是专用的低速时钟(LSI),由VDD供电,在停止模式和待机模式下仍能工作。需要在时间溢出之前进行喂狗,否则单片机会一直复位。比如要设定溢出时间为1s,可以在CubeMX里设置PSC=64,RLR=625。提供,即使主时钟发生故障它仍然有效,非常独立。独立看门狗的时钟由独立的。

2023-06-14 00:06:11 61

原创 使用STM32进行串口实验(非中断+中断)

到最后使用中断的方法做出来的效果和使用超时函数做出来的效果是一样的,代码和USART_RX_STA的解释需要 的可以私我。但是当单片机接收到一个数据后,它会进入while循环无限返回数据.当我们使用中断的方式接收发送指定数据我们需要使用到一个变量。这里我们进行一个优化,我们使用printf发送数据。作用:以阻塞的方式发送指定字节的数据。作用:以中断的方式接收指定字节的数据。:要发送的数据大小,以字节为单位。是要接收的数据大小,以字节为单位。串口接收数据,使用超时管理机制。:指向要发送的数据地址。

2023-06-08 18:46:58 935

原创 继电器相关知识

这个就是继电器,左边有三个接口,VCC(3.3v),GND,IO右面有COM,NO,NC。左侧的IO口如果接受到低电平,继电器内部线圈就会工作,然后供电,开关由NC端闭合到NO端,NO开始闭合,例如:可以将喇叭的负极与电源负极连接,喇叭的正极和继电器的com连接,电源的正极和继电器的NO连接,当IO口提供了低电平的时候,NO和com形成回路喇叭就会工作。其实,我们可以把继电器理解为一个条件开关,当满足一定的条件的时候继电器自动工作,就像这个喇叭,它连接的是常开端,但是喇叭是否工作是由继电器决定的。

2023-05-25 23:05:58 718

原创 中断相关概念并利用中断实现按键点亮LED灯

抢占优先级和响应优先级的区别: 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。产生中断线路目的是把输入信号输入到 NVIC,进一步会运行中断服务函数,实现功能,这样是软 件级的。所有中断的中断服务程序入口地址构成一个表,称为中断向量表;前面我们说过,中断可以使程序停下当前的工作立刻转去中断的程序,那么,我们可以把按键按下作为一个中断点亮LED。

2023-05-20 12:22:04 1327

原创 复位和时钟控制(RCC)

1.软件复位,备份区域复位可由设置备份区域控制寄存器(RCC_BDCR)中的BDRST位产生。2.在VDD和VBAT两者掉电的前提下,VDD或VBAT上电将引发备份区域复位。1. HSI振荡器时钟(高速内部时钟)2. HSE振荡器时钟(高速外部时钟)3. PLL时钟(锁相环倍频时钟)1.上电/掉电复位(POR/PDR复位)1.NRST引脚上的低电平(外部复位)2.窗口看门狗计数终止(WWDG复位)当以下事件中之一发生时,产生备份区域复位。4.软件复位(SW复位)

2023-05-18 23:18:33 420

原创 使用STM32点亮LED灯(软件的使用等)保姆级流程

定义一个返回无符号类型的函数,参数有GPIO口的指针类型,以及它的第几号引脚。好了,判断按键是否按下的函数已经写完了,我们在主函数的while(1)循环里要进行指令执行,按下,对应的灯状态翻转。接下来进行IO口的配置,照着一步一步来(单片机学习板每个公司产品型号都不同,根据自己的单片机最小原理图点亮LED,我这里按键设置在了PA0和PA1两个按键,分别控制PB8、PB9两个LED灯)接下来就是写代码了,需要一些C语言的基础(函数,宏定义等)根据我们的需求,按下按键,灯的状态进行翻转,如何控制gpio口。

2023-05-18 22:02:43 631

原创 如何在STM32CubeMX上生成工程文件

下一步点击Code Generator。并选择Copy only the necessary library files,只复制需要的库文件。在Generate files中勾选第1.3.4个选项,然后点击右上角的GENERATE,出来一个弹窗,打开工程就将工程文件创建完毕了。打开我们的STM32CubeMX,找到上方的Project Manager 自定义工程名称并且选择存放地址。*注意:Toolchain/IDE要切换成MDK-ARM.需要的工具:Keil5,STM32CubeMX。

2023-05-16 00:38:16 665

原创 循迹模块(应用于小车)

由于黑色具有较强的吸收能力,当循迹模块发射的红外线照射到黑线时,红外线将会被黑线吸收,导致循迹模块上光敏三极管处于关闭状态,此时模块上一个LED熄灭。在没有检测到黑线时,模块上两个LED亮。红外接收管一直处于关断状态,此时模块的输出端为高电平,指示二极管一直处于熄灭状态。被检测物体出现在检测范围内时,红外线被反射回来且强度够大,红外接收管饱和,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,TCRT5000传感器的红外发射二极管不断发射红外线。此时模块的输出端为低电平,指示二极管被点亮。

2023-05-15 15:34:22 1806

原创 令51单片机上的数码管显示数据(共阳极)

根据各自不同厂商的单片机原理图,去寻找哪几个引脚是数码管位控制,我这个板子的数码管控制位是P10-P13,所以我在代码中要定义。注:数码管要显示小数点可以在对应位后加& 0x7f。共阴极数码管 对应位 | 0x80,可将dp位点亮。且要注意,我的单片机P00-P07是共阳数码管LCD数据并行总线。在代码中要注意赋值。至此,数码管显示函数就写好了,主函数中根据自己的需求进行定制设计。今天我们探讨如何让单片机右上角这个数码管显示数据呢?玩过51的开发者们一定对这种板子很熟悉。

2023-04-27 00:21:43 1032 1

原创 蓝牙模块开发

蓝牙模块对于普通的开发者来说,只需要知道如何使用,利用蓝牙模块做些项目等。因为蓝牙方向是需要深层学习的,需要专业的人去研究。使用蓝牙模块后,我们可以通过手机向单片机发送数据指令,就像在串口助手上发送指令一样,只不过是在手机上就能够实现,不懂串口编程的可以看这篇文章(我们可以向蓝牙发送指令,将单片机上的LED点亮,让小车改变行进方向等。在串口助手发送区写入“AT+NAME=想要的名字”,即可。开发蓝牙模块的准备工作:在手机上下载蓝牙助手。先来看看蓝牙模块(HC-08)长什么样。将蓝牙名字修改为DX666。

2023-04-24 23:37:34 258

原创 在OLED上显示各种各样的数据(文字、字母、图片)

首先思考,一个OLED屏有那么大,我们如何在一个自己想要的地方显示一个点呢?我们可以看到,这里Page共有8行,并且每一个Page里有8位(bit),也就是一个Page的一列代表一个字节。比如这里我们想要定为页寻址模式,我们可以在代码的发送cmd并写入0x20,再发送0x02,成功进入页寻址模式。因为OLED是有写入指令/数据的操作的,至于为什么有在后面编写程序的时候就能知道。这里有三个寻址方式(前两种最常见),图还是比较形象的不做过多解释。在学习OLED之前需要知道IIC协议,不了解的可以看(

2023-04-19 21:02:37 1909

原创 IIC协议相关

所有接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线SCL上对于并联在一条总线上的每个IC都有唯一的地址。由于接口直接在组件之上,因此IIC总线占用的空间特别小,减少了电路板的空间和芯片管脚的数量,降低了互联成本,总线的长度可高达25英尺,并且能够以。其中任何能够进行发送和接收的设备都可以成为主线,一个主控能够控制信号的传输和时钟频率。IIC总线在传输数据的过程中一共有三种类型信号,分别为:开始信号、结束信号和应答信号,这些信号中,起始信号是必须的。

2023-04-15 23:46:47 169

原创 数字温湿度传感器DHT11

顾名思义,通过开发DHT11能够进行温湿度检测,是一个非常实用且有趣的模块,下面我们先对DHT11基本信息做一个了解,然后进行开发。再往后我们就开始读取数据,无非两种数据1或0,根据时序图判断对应时间是高电平还是低电平。我们可以发现,在传输完最后一个bit的数据,就会进入空闲状态,所以我们要重新进入高速模式。到此对DHT11的单独开发已经结束,往后我们可以将得到的数据传输到PC端或者LCD.------------待更新------------今天我们来说说一个新的模块DHT11——温湿度传感器。

2023-04-14 14:53:58 518

原创 串口通信编程

经常听说的UART:异步串行是指UART(Universal Asynchronous Receive/Transmitter),通用异步接收/发送,UART包含TTL电平的串口和RS232电平的串口。传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。串口接口简称串口,也称串行通信接口或串行接口(通常指COM接口),是采用串行通信方式的扩展接口,串行接口是指数据。PC端通过串口点亮LED(非中断)

2023-04-08 13:06:33 1087

原创 感应垃圾桶项目设计

时间怎么算,根据Echo口发送波到接收波的时间(也就是高电平持续时间),因为需要算时间,我们设置一个定时器1。get_distance函数写完,我们测距的功能就已经实现了,接下来,我们要分情况在main函数中判断距离,如果距离

2023-04-01 23:29:55 223

原创 超声波测距传感器认知

HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可高达3mm,模块包括超声波发射器、接收器与控制电路。(参考引脚:Trig-P1.5,Echo-P1.6)Echo引脚维持高电平的时间,波发出去的那一下开始启动定时器,波回来的那一下,我们开始停止定时器,计算出中间经过多少时间。Echo信号,由低电平跳转到高电平,表示开始发送波。Echo,由高电平跳转回低电平,表示波回来了。Trig提供一个至少10us的高电平。距离=速度(340m/s)*时间。注释写的很详细不多做解释。

2023-03-29 21:07:16 259

原创 初识PWM

PWM 英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%.1.5ms------------90度:7.5%对应函数中占空比为750。0.5ms------------0度:2.5%对应函数中占空比为250。搞个50Hz频率PWM。

2023-03-28 20:56:21 112

原创 定时器基本常识

定时器

2023-03-26 14:43:49 725

原创 433M无线射频信号控制喇叭

433M

2023-03-24 23:35:35 351

原创 震动传感器使用

震动传感器

2023-03-23 16:22:02 374

原创 按键控制LED灯

控制LED灯

2023-03-22 20:09:31 121

原创 如何让LED灯闪烁

LED如何闪烁

2023-03-22 18:57:59 455

原创 点亮一个LED灯

点亮一个LED灯

2023-03-21 16:11:32 83

原创 Hex程序烧写到单片机

烧写程序到单片机

2023-03-21 14:21:25 1135

原创 keil手把手创建文件

keil工程创建

2023-03-21 13:38:51 1492

原创 typedef常见的用法

typedef

2023-03-21 00:09:43 33

原创 枚举类型。

枚举类型

2023-03-20 23:34:23 25

原创 共用体/联合体

共同体/联合体

2023-03-20 19:04:05 37

原创 C语言--函数、指针、结构体结合

结构体小应用

2023-03-20 10:28:22 107

原创 结构体的指针

C语言结构体指针基础认知

2023-03-16 20:44:40 50

原创 什么是结构体

结构体

2023-03-13 22:44:43 33

原创 C语言字符串相关

C字符串相关

2023-03-12 21:33:51 39

原创 使用Linux共享Windows文件夹

Linux与Windows文件共享

2023-03-07 21:43:57 114

空空如也

空空如也

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

TA关注的人

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