stm32
文章平均质量分 55
dxdlnu
这个作者很懒,什么都没留下…
展开
-
蓝桥杯嵌入式组复习过程
由于是第一次创建工程,这里要做一个添加,如图。然后使用EDA中状态机的方法开始模拟按键的状态,最后输出不同的结果,要知道,使用状态机的过程中,各个过程之间的转化是需要时间的,而这个时间就是设置的定时器时间,当按键按下进入第一个状态,等10ms过后依然是这个状态,则进入第二个状态,最后按键松开进入第三个状态,输出结果为主函数所利用。接着,在KEIL工程里添加一个新的文件夹,也叫BSP,然后添加已存在的文件,将c文件放进去,最后一步,找到魔术棒里的C/C++选项,将BSP头文件路径添加进去,这样就大功告成了。原创 2024-04-10 17:58:52 · 894 阅读 · 0 评论 -
如何使用HAL库手动配置一个可输出可输入的引脚
在使用CubeMX配置GPIO口时的时候,对于某一个引脚只能选择用来输出或者输入。而有时我们需要在STM32上使用一些外设,比如DHT11温湿度传感器,其中的DATA口需要既能接收信号又能发送信号,所以我们可以参照CubeMX自动生成的GPIO初始化来进行配置。举个例子,此时我需要对DHT11进行时序分析,我们如何使用这里的PB7口来启动DHT11。下面就是照葫芦画瓢。原创 2023-08-09 20:44:55 · 584 阅读 · 0 评论 -
LCD1602相关
LCD1602是一种工业字符型液晶,能够同时显示16*02即32字符(16列2行)要注意在写函数之前定义引脚,如果使用CubeMX需要配置引脚以及所需宏定义等。为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。为读写信号线,高电平时进行读操作,低电平时进行写操作。根据引脚接口说明,以及时序图,我们可以写如下函数。端由高电平跳变成低电平时,液晶模块执行命令。同为低电平时可以写入指令或者显示地址,当。为高电平时可以读忙信号,为低电平时可以写入数据。时对比度最高,对比度。,使用时可以通过一个。原创 2023-08-08 21:09:11 · 474 阅读 · 0 评论 -
通过STM32内部ADC将烟雾传感器发送的信号值显示在OLED上
在定时器中断回调函数中对ADC进行打开,转换取样等操作,将烟雾传感器发送的电压进行转化,使用sprintf获得实时变化的值,并将其乘3.3/2的12次方。在Keil5中添加好oled的显示库,以及用来显示的函数、初始化函数、清屏函数等。// 等待ADC转换完成。原创 2023-07-25 21:12:41 · 1093 阅读 · 0 评论 -
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 · 307 阅读 · 0 评论 -
STM32定时器
3.高级定时器(TIM1和TIM8):除剧本通用定时器的所有功能外,还具备带死区控制的互补信号输 出,刹车输入等功能(可用于电机控制,数字电源设计等)。2.通用定时器(TIM2-TIM5):具有多路独立通道,可用于输入捕获/输出比较,也可用作石基。A.更新:计数器向上/向下溢出,计数器初始化(通过软件或者内部/外部触发)定时器的工作原理:使用精准的时基,通过硬件的方式,实现定时功能,定时器的核心就是计数器。原创 2023-07-20 15:02:33 · 101 阅读 · 0 评论 -
STM32中的震动传感器使用
震动传感器是作为一个输入的外设,当发生震动时,DO引脚会向单片机引脚发送低电平,当其不震动时,持续向单片机输出高电平。在STM32中可以将其发送的低电平作为一个中断信号。触发c程序中的callback函数。将优先级设置为最高,并将其他中断源优先级改为低级。注:HAL_Delay使用的是滴答定时器,容易被其他中断源打断,所有有时要在主函数中加上。原创 2023-07-17 11:11:41 · 751 阅读 · 0 评论 -
独立看门狗IWDG
由于单片机在工作过程中可能会受到干扰,造成程序跑飞,陷入死循环,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于检测单片机程序运行状态的模块或者芯片俗称”看门狗“。独立看门狗工作在主程序之外,能够完全独立工作,它的时钟是专用的低速时钟(LSI),由VDD供电,在停止模式和待机模式下仍能工作。需要在时间溢出之前进行喂狗,否则单片机会一直复位。比如要设定溢出时间为1s,可以在CubeMX里设置PSC=64,RLR=625。提供,即使主时钟发生故障它仍然有效,非常独立。独立看门狗的时钟由独立的。原创 2023-06-14 00:06:11 · 54 阅读 · 0 评论 -
使用STM32进行串口实验(非中断+中断)
到最后使用中断的方法做出来的效果和使用超时函数做出来的效果是一样的,代码和USART_RX_STA的解释需要 的可以私我。但是当单片机接收到一个数据后,它会进入while循环无限返回数据.当我们使用中断的方式接收发送指定数据我们需要使用到一个变量。这里我们进行一个优化,我们使用printf发送数据。作用:以阻塞的方式发送指定字节的数据。作用:以中断的方式接收指定字节的数据。:要发送的数据大小,以字节为单位。是要接收的数据大小,以字节为单位。串口接收数据,使用超时管理机制。:指向要发送的数据地址。原创 2023-06-08 18:46:58 · 894 阅读 · 0 评论 -
继电器相关知识
这个就是继电器,左边有三个接口,VCC(3.3v),GND,IO右面有COM,NO,NC。左侧的IO口如果接受到低电平,继电器内部线圈就会工作,然后供电,开关由NC端闭合到NO端,NO开始闭合,例如:可以将喇叭的负极与电源负极连接,喇叭的正极和继电器的com连接,电源的正极和继电器的NO连接,当IO口提供了低电平的时候,NO和com形成回路喇叭就会工作。其实,我们可以把继电器理解为一个条件开关,当满足一定的条件的时候继电器自动工作,就像这个喇叭,它连接的是常开端,但是喇叭是否工作是由继电器决定的。原创 2023-05-25 23:05:58 · 635 阅读 · 0 评论 -
中断相关概念并利用中断实现按键点亮LED灯
抢占优先级和响应优先级的区别: 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。产生中断线路目的是把输入信号输入到 NVIC,进一步会运行中断服务函数,实现功能,这样是软 件级的。所有中断的中断服务程序入口地址构成一个表,称为中断向量表;前面我们说过,中断可以使程序停下当前的工作立刻转去中断的程序,那么,我们可以把按键按下作为一个中断点亮LED。原创 2023-05-20 12:22:04 · 1269 阅读 · 0 评论 -
复位和时钟控制(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 · 402 阅读 · 0 评论 -
使用STM32点亮LED灯(软件的使用等)保姆级流程
定义一个返回无符号类型的函数,参数有GPIO口的指针类型,以及它的第几号引脚。好了,判断按键是否按下的函数已经写完了,我们在主函数的while(1)循环里要进行指令执行,按下,对应的灯状态翻转。接下来进行IO口的配置,照着一步一步来(单片机学习板每个公司产品型号都不同,根据自己的单片机最小原理图点亮LED,我这里按键设置在了PA0和PA1两个按键,分别控制PB8、PB9两个LED灯)接下来就是写代码了,需要一些C语言的基础(函数,宏定义等)根据我们的需求,按下按键,灯的状态进行翻转,如何控制gpio口。原创 2023-05-18 22:02:43 · 587 阅读 · 0 评论 -
如何在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 · 614 阅读 · 0 评论