自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于HAL库的stm32的can收发实验

STM32的bxCAN,即基本扩展CAN(Basic Extend CAN),是STM32微控制器系列中集成的CAN控制器模 块。1. 协议支持:支持CAN协议2.0A和2.0B的主动模式。2. 高波特率:波特率最高可达1兆位/秒。3. 时间触发通信:支持时间触发通信功能,CAN的硬件内部定时器可以在TX/RX的帧起始位的采样点位置 生成时间戳。4. 发送功能:具有3个发送邮箱,发送报文的优先级特性可软件配置。记录发送SOF(Start Of Frame,帧起始)时刻的时间。

2024-12-22 12:09:17 2004 1

原创 基于stm32的HAL库的低功耗及其实验

STM32具有运行、睡眠、停止和待机四种工作模式。上电后默认是在运行模式,当内核不需要继续运行时,可以选择后面三种低功耗模式。4.寄存器及库函数介绍如果编程是没有加#include “sys.h”定义GPIO_InitTypeDef 就会疯狂报错为什么激活后速度变得非常慢3.2 停机模式(stop mode) 在停机模式下,CPU和核心外围设备的时钟会停止,但部分唤醒源(如外部中断和某些定时器)仍然运行。这适用于需要长时间等待外部事件唤醒的应用,如等待用户输入或外部信号。

2024-12-21 23:31:29 892

原创 RTC实时时钟

实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历 的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后, RTC的设置 和时间维持不变。复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟。

2024-12-20 23:45:27 1095

原创 基于w25q128的智能门禁

1. 矩阵键盘输入密码,正确则开锁,错误则提示,三次错误蜂鸣器响3秒;2. 按下#号确认输入,按下*号修改密码;3. 密码保存在 W25Q128 里;4. OLED 屏幕显示信息。

2024-12-20 22:06:11 153

原创 w25q128实验封装命令接口(二)

正常来讲我们发送90后会接收什么样的数据呢(MF7 - MF0)接收到EFh会接收到EF17没写的。

2024-12-20 21:18:53 316

原创 W25Q128读写实验(一)

1. IIC 是半双工通讯,无法同时收发信息;SPI 是全双工通讯,可以同时收发信息;2. IIC 通讯协议较复杂,而 SPI 通讯协议较简单;3. IIC 需要通过地址选择从机,而 SPI 只需一个引脚即可选中从机;4. IIC 通讯速率一般为 100kHz 左右,而 SPI 可以达到 50MHz;5. IIC 需要的通讯线较少,而 SPI 需要较多。

2024-12-20 19:06:36 1248

原创 IIC相关介绍及oled实验(二)

这种 OLED 屏幕模块通常用于嵌入式系统和小型电子设备中,可以显示文本、图像和其他类型的信息。1. 显示寿命短:与 LCD 显示屏相比,OLED 的显示寿命相对较短,因为它的有机材料会随着时间的推移 而逐渐失效;1. 高对比度和高亮度:OLED 屏幕模块可以提供深黑色背景和明亮的字色,因此可以实现高对比度和高亮 度的显示效果;2. 显示面积小:0.96 寸 OLED 屏幕模块的显示面积相对较小,因此不适合用于需要大屏幕的应用。驱动 OLED 屏幕,显示点、线、字符、字符串、汉字、图片等内容。

2024-12-05 00:08:02 870

原创 IIC通讯介绍及其实验(一)

接收一个字节:SCL低电平期间,从机将数据位依次放到SDA线上(高位先行),然后释放SCL,主机将在 SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收 一个字节(主机在接收之前,需要释放SDA)发送一个字节:SCL低电平期间,主机将数据位依次放到SDA线上(高位先行),然后释放SCL,从机将在 SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可发送 一个字节。:数据传输和地址设定由软件设定,非常灵活。

2024-12-03 16:44:37 960

原创 基于stm32的HAL库的adc采集实验

单通道采集,通道封装 操作的哪个adc,指定那个通道ch 通道放在那个规则组中rank 哪个位置, 采集时间多少。使用 ADC1 采集通道 1 的电压值+DMA读取,通道 1 连接光敏电阻传感器。使用 ADC1 采集通道 1 的电压值,通道 1 连接光敏电阻传感器。底层代码配置NVIC、GPIO,CLOCK。小实验2:ADC单通道采集实验+DMA读取。底层代码配置NVIC、GPIO,CLOCK。由于是adc_dma也要初始化。

2024-10-27 23:23:26 974

原创 基于stm32的HAL库的ADC实验(一)

规则通道中的转换顺序由三个寄存器控制:SQR1、SQR2、SQR3,它们都是32位寄存器。SQR寄存器控制 着转换通道的数目和转换顺序,只要在对应的寄存器位SQx中写入相应的通道,这个通道就是第x个转换。12.5个周期是固定的,一般我们设置 PCLK2=72M,经过 ADC 预分频器能分频到最大的时钟只能是 12M, 采样周期设置为 1.5 个周期,算出最短的转换时间为 1.17us。和规则通道转换顺序的控制一样,注入通道的转换也是通过注入寄存器来控制,只不过只有一个JSQR寄存器 来控制,控制关系如下。

2024-10-26 23:59:02 956

原创 基于stm32的HAL库的dma实验

STM32F103 有 2 个 DMA 控制器,DMA1 有 7 个通道,DMA 2 有 5 个通道。这里的外设指的是spi、usart、iic、adc 等基于APB1 、APB2或AHB时钟的外设,而这里的存储器包括 自身的闪存(flash)或者内存(SRAM)以及外设的存储设备都可以作为访问地源或者目的。硬件: 如果2个请求,它们的软件优先级相同,则较低编号的通道比较高编号的通道有较高的优先权。实 验 目 的 使 用 D M A 将 一 个 大 数 组 的 数 据 通 过 串 口 1 发 送。

2024-10-21 21:28:21 1803

原创 基于stm32的4G模块点灯实验

网络调试2 助手在协议类型为TCP Client打不开的情况则,需连接WiFi模块的wifi使其处在同一网段下,如果电脑连接路由器家庭WiFi则与服务器不是同一网段。内网穿透的原理就像在内网和外网之间搭建了一座桥梁,使得外部网络可以穿过内网的障碍,直接访问内部 的设备。4G模块可以左边能接收到,但是右边收不到。右边是通过官网的方式来连接的。不用自己敲指令,有专门的上位机。重启之后就默认进入透传模式。有时候是连接的但是确实断的。4G模块功能代码及指令。填入的是映射出来的地址。就会出现连接不了的情况。

2024-10-20 23:01:16 966

原创 基于stm32的esp8266的WIFI控制风扇实验

电脑通过esp8266模块远程遥控风扇。实验案例WIFI控制风扇。

2024-10-20 22:35:52 430

原创 stm32实现esp8266连接到TCP服务器(二)

AT+CIPSTART="TCP","192.168.1.18",8080 //指令,注意双引号逗号都要半角(英文)输入 CONNECT //结果:成功 OK //结果:成功。+IPD, 0, n: xxxxxxxxxx //+IPD是固定字符串 0是通道,n是数据长度,xxx是数据。AT+CIPSEND=0,4 // 发送4个字节在连接0通道上 >abcd//输入数据,//注意,这种情况下,每次发送前都要线发送AT+CIPSEND=长度,的指令,在发数据!AT+CIPSEND //带回车。

2024-10-20 18:02:39 1574

原创 stm32的f103---esp8266模块(一)

wifi模块

2024-10-20 10:33:54 877

原创 基于stm32的HAL库的蓝牙遥控插座项目(六 串口)

项目需求。

2024-10-14 00:47:04 470 2

原创 基于stm32的蓝牙模块实验(串口 五)

baudrate: 波特率, 根据自己需要设置波特率值。在此使用接收中断及空闲中断,实现不定长数据收发。

2024-10-13 20:45:13 416

原创 基于stm32的HAL库的串口实现不定长中断(空闲中断)(四)

空闲中断是在监测到数据接收后(即串口的RXNE位被置位)开始检测,当总线上在一个字节对应的周期内未再有新的数据接收时,触发空闲中断IDLE位被硬件置1.

2024-10-13 17:13:26 1183

原创 基于stm32的HAL库的串口实现不定长数据收发(三)(接收中断)

【代码】基于stm32的HAL库的串口实现不定长数据收发(三)(接收中断)

2024-10-13 00:41:01 738

原创 基于stm32的HAL库串口发送/接收一个字符(二)

msp公用的一个函数这里有三个串口,都会调用msp先进行一个判断。

2024-10-12 00:30:36 467

原创 基于stm32HAL库的串口通讯介绍及项目案例(一)

串口,也称为串行接口或串行通信接口(通常指COM接口),是一种采用串行通信方式的扩展接口。它实现 了数据一位一位地顺序传送,具有通信线路简单、成本低但传送速度慢的特点。只要一对传输线,串口就可 以实现双向通信。串口通信的接口类型包括TTL、CMOS、RS-232和RS-485等,它们分别代表了不同的电平标准。通用同步异步收发器通用异步收发器。

2024-10-11 23:51:47 897

原创 stm32的两条狗---(第二条)窗口看门狗

当递减计数器等于 0x40 时可产生提前唤醒中断 (EWI)。在窗口期内重装载计数器的值,防止复位,也就是所谓的喂狗。窗口看门狗用于监测单片机程序运行时效是否精准,主要检测软件异常,一般用于需要精准检测程序运行时 间的场合。当递减计数器值从 0x40 减到 0x3F 时复位(即T6位跳变到0)窗口看门狗的本质是一个能产生系统复位信号和提前唤醒中断的6位计数器。//取消预分频器及重装载寄存器写保护,预分频系数,重装值,窗口值。计数器的值大于 W[6:0] 值时喂狗会复位。W[6:0]值时喂狗会复位。

2024-10-02 11:05:14 358

原创 STM32中的两条狗---(第一条)独立看门狗

独立看门狗(Independent Watchdog,通常缩写为IWDG)主要作用是主要用于检测外界电磁干扰,或硬 件异常导致的程序跑飞问题。IWDG本质上是一个12位的递减计数器。当计数器的值从某个初始值开始递减,并一直减到0 时,系统 会产生一个复位信号(IWDG_RESET)。CPU在接收到这个复位信号后,会重新启动系统,以确保系统 从可能的错误或死锁状态中恢复。

2024-10-02 10:05:49 502

原创 基于stm32的HAL库呼吸灯程序--PWM-分析

PWM波形(Pulse Width Modulation,脉冲宽度调制波形)是一种占空比可变的脉冲波形。这种调制方式通过改变脉冲的宽度来控制电路中的信号强度和频率。具体来说,PWM波形中的高电平持续时间和低电平持续时间可以根据需要进行调整,从而实现对模拟信号电平的数字编码。PWM波形在各种领域都有广泛的应用,包括电源管理、电机控制、LED亮度调节等。此外,生成PWM波形的方法有多种,例如使用波形发生器、单片机或可编程逻辑器件等。频率 = 1/Ts占空比 = Ton / Ts。

2024-09-23 09:31:01 633

原创 基于stm32的HAL库的脉冲计数

将定时器 2 通道 2 输入的低电平脉冲作为定时器 2 的时钟,并通过串口打印脉冲数。外部时钟模式1、触发选择、上升沿触发、不分频、不滤波。3、计数 HAL_GET_COUNTER();使能捕获,并启动计数器。小实验4:脉冲计数实验。1.脉冲计数配置步骤。

2024-09-22 18:40:40 953 2

原创 基于stm32测量按键按下时长---输入捕获及程序案例分析

使 用 定 时 器 2 通 道 2 来 捕 获 按 键 2 按 下 时 间 , 并 通 过 串 口 打 印。计 一 个 数 的 时 间:1 u s , P S C = 7 1 , A R R = 6 5 5 3 5。下 降 沿 捕 获 、 输 入 通 道 2 映 射 在 TI2 上 、 不 分 频 、 不 滤 波。使能捕获、捕获中断及计数器 HAL_TIM_IC_ConfigChannel()更新中断使能__HAL_TIM_ENBALE_IT()输入通道初始化HAL_TIM_IC_Init()

2024-09-22 17:21:28 1250

原创 基于stm32的定时器点灯实验程序分析

1. TIM1:这是一个高级定时器,不仅具备基本的定时中断功能,还拥有内外时钟源选择、输入捕获、输 出比较、编码器接口以及主从触发模式等多种功能。这使得TIM1能够适用于各种复杂的应用场景,为 开发者提供强大的时间控制和信号处理能力。2. TIM2、TIM3和TIM4:这些是通用定时器,同样具有定时功能,但在功能上与高级定时器有所区别。通 用定时器通常用于实现一些基本的定时任务,如LED闪烁、脉冲宽度测量等。每个定时器都由一个16位计数器、预分频器和自动重装寄存器的时基单元组成。

2024-09-16 16:31:15 833

原创 基于stm32排队系统完整代码分析(二)

【代码】基于stm32排队系统完整代码分析(二)

2024-09-15 21:19:42 636

原创 基于stm32的排队系统---定时器(一)

5. 每次允许通过5个人,之后转为不允许通过,3秒后再转为允许通过。3. 允许通过时,LED1闪烁,蜂鸣器不响,继电器不闭合;4. 不允许通过时,LED2闪烁,蜂鸣器响,继电器闭合;例如,要定时 500ms,则:PSC=7199,ARR=4999,Ft=72M。1. 红外传感器检测有人通过并计数;2. 计数值显示在LCD1602。ARR:自动重装载寄存器的值。PSC:预分频器寄存器的值。Tout:定时器溢出时间。Ft:定时器的时钟源频率。

2024-09-15 19:50:42 387

原创 基于stm32HAL库的lcd1602的程序案例分析

/RS引脚定义//RW引脚定义//EN引脚定义。

2024-09-11 23:51:22 1069 4

原创 stm32的 SysTick

要判断某为是否1,平移到该点然后用与等于。但是不确定前一个程序运行后是否被关掉,定时器是否正常,while有两个东西在判断,ctrl有没有被置为1。此外, Systick定时器还可以被用于其他目的,例如作为。当计数器到达自动重载值时,它会自动重新加载并开始。,用于提供系统级的定时服务。且保证第0位1,16位为1两个条件同时成立。在STM32中,Systick通常以。2清空当前计数--不知道之前计的数不知道。Systick定时器的主要功能包括实现。当计数到0时,Systick计数器。并继续计数,同时内部的。

2024-09-09 19:24:25 664

原创 基于STM32的HAL库的项目电动车报警器及相关模块程序

点击遥控器 A 按键,系统进入警戒模式,一旦检测到震动(小偷偷车),则喇叭发出声响报警,吓退小偷。 点击遥控器 B 按键,系统退出警戒模式,再怎么摇晃系统都不会报警,否则系统一直发出尖叫,让车主尴 尬。

2024-09-05 23:19:00 524

原创 03基于stm32的HAL库的中断实验剖析

NVIC,即Nested Vectored Interrupt Controller(嵌套向量中断控制器),是STM32中的中断控制器。它 负责管理和协调处理器的中断请求,是STM32中处理异步事件的重要机制。NVIC提供了灵活、高效、可扩展的中断处理机制,支持多级优先级、多向中断、嵌套向量中断等特性。当一 个中断请求到达时,NVIC会确定其优先级并决定是否应该中断当前执行的程序,以便及时响应和处理该中断请求。这种设计有助于提高系统的响应速度和可靠性,特别是在需要处理大量中断请求的实时应用程序中。

2024-09-05 00:34:32 1595

原创 02基于stm32的HAL库的按键控制led灯的程序分析

两个程序。

2024-09-04 23:19:24 376

原创 基于stm32的HAL库的点灯程序的具体步骤

代码示范//看原理图可得//开漏适用于并联的大量led,推挽适用于反之//上拉,下拉都可以 ---输入//随便选led1_off();

2024-09-03 23:37:20 478

原创 地图规划-第一行打印

地图水平方向上的边界“--“地图竖直方向上的边界“|“贪吃蛇的身子“[]“

2024-08-12 23:48:32 141

原创 贪吃蛇小游戏curses输入代码

调用你cruses库函数,来达到瞬间按键,低延时,有利于游戏的进行。

2024-08-12 23:15:38 142

原创 从链表指定节点前插入链表

【代码】从链表指定节点前插入链表。

2024-08-11 11:20:36 113

原创 查找链表节点是否存在

基本都是老套路,定义一个结构体,然后循环判断是否为空,然后将所指向的数据与输入的数据对比,如果为真则饭回一个一,否则进行下一次遍历。

2024-08-10 21:40:53 123

原创 统计链表节点个数 ----个数统计

【代码】统计链表节点个数 ----个数统计。

2024-08-10 21:30:23 112

基于STM32的HAL库的项目电动车报警器及相关模块程序

将几个功能模块整合就是该项目,此外,通过设置一些逻辑操作既可以完成此项目

2024-09-06

基于STM32的HAL库的项目电动车报警器及相关模块程序

主函数有些逻辑的不同可以参考一下

2024-09-06

空空如也

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

TA关注的人

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