自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32F407——I2C

I2C(Inter-Integrated Circuit,又称为I2C或I²C)是一种串行通信协议,用于连接微控制器和外部设备,例如传感器、存储器、显示器等。它是一种简单而灵活的通信协议,由飞利浦公司(现在的恩智浦半导体)在1982年开发。I2C(内部集成电路)总线接口用作微控制器和I2C串行总线之间的接口。它提供多主模式功能,可以控制所有I2C总线特定的序列、协议、仲裁和时序。它支持标准和快速模式。它还与SMBus 2.0兼容。它可以用于多种用途,包括CRC生成和验证、

2024-06-19 15:08:11 551

原创 STMF407——通讯

STM32通信的基本概念涉及到微控制器与外部设备或其他微控制器之间进行数据交换的过程。通信可以是单向的,也可以是双向的,可以是同步的,也可以是异步的。在计算机和嵌入式系统中,通讯通常用于连接不同的设备、模块或者系统,使它们能够相互交换数据、控制信号或者其他信息。数据交换:在现代系统中,许多设备和模块需要相互之间传递数据。例如,传感器采集的数据可能需要传输到控制器或者处理器进行分析和处理,或者控制器生成的控制信号可能需要发送到执行器或者驱动器以执行相应的动作。系统集成。

2024-04-18 16:38:17 696 1

原创 STM32F407——看门狗

看门狗就像是一个守护者,专门监视电子设备的运行状态。它的工作方式类似于定时器,会周期性地计时。如果设备一直正常运行,就会定时“喂狗”,保持看门狗沉默;但如果设备出现了故障或者停顿,没有及时“喂狗”,看门狗就会发出狗叫产生警报,甚至执行重启操作,让设备重新启动,从而恢复正常工作。看门狗就像是设备的“保护神”,确保设备在任何情况下都能保持稳定运行。STM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗。

2024-04-10 18:34:08 2079 1

原创 STM32F407——PWM输出比较、输入捕获

脉冲宽度调制(PulseWidthModulation,PWM)简称脉宽调制。通俗讲,PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。在模拟电路中,模拟信号的值可以连续进行变化,在时间和值的幅度上都几乎没有限制,基本上可以取任何实数值,输入与输出也呈线性变化。所以在模拟电路中,电压和电流可直接用来进行控制对象,例如家用电器设备中的音量开关控制、采用卤素灯泡灯具的亮度控制等等。

2024-04-10 14:28:00 2224 1

原创 STM32F407——定时器

在之前的文章中有介绍STM32芯片时钟体系,了解了芯片的工作频率,比如stmf407芯片的主频是168Mhz,代表着每秒钟能产生168000000次脉冲信号;物质在1s内完成周期性变化的次数叫做频率,常用f表示。周期与频率的关系:f=1/T。周期,物体作往复运动或物理量作周而复始的变化时,重复一次所经历的时间。我们在前面的代码里,有采用while循环计数来大致产生一段时间的间隔,但是非常不准确,那么如何得到一段精确的时间间隔呢?我们不可能随意去降低主频,所以肯定需要另外一种手段去控制时间。

2024-04-09 20:39:54 3769

原创 STM32F407——中断

异常主要是指来自CPU内部的意外事件,比如执行了未定义指令、算术溢出、除零运算等发生在CPU内部的意外事件,这些异常的发生,会引起CPU运行相应的异常处理程序;中断一般来自硬件(如片上外设、外部I/O输入等)发生的事件,当这些硬件产生中断信号时,CPU会暂停当前运行的程序,转而去处理相关硬件的中断服务程序。但无论是异常还是中断,都会引起程序执行偏离正常的流程,转而去执行异常/中断的处理函数。如果中断信号的产生原因来自CPU内部,则称之为异常;如果中断信号来自CPU外部,则称之为中断。

2024-04-03 11:15:48 945 1

原创 STM32F407——时钟

时钟就是CPU的脉搏,决定cpu速率,像人的心跳一样 只有有了心跳,人才能做其他的事情,而单片机有了时钟,才能够运行执行指令,才能够做其他的处理 (点灯,串口等等其他操作),时钟的重要性不言而喻。可以由有源晶振或者无源晶振提供,频率从4-26MHZ 不等,我们的开发板使用的是8MHZ的晶振,当HSE 故障时,高速的内部时钟信号HSI会作为备用的系统时钟,直到HSE恢复正常。时钟就是具有周期性的脉冲信号,相当于单片机的心脏,给单片机提供一个统一的信号,要想使用单片机的外设必须开启相应的时钟。

2024-03-30 17:06:24 791

原创 实验STM32F407------GPIO_LED/KEY

`RCC_AHB1Periph_GPIOF`:这是一个宏定义,指定了要控制时钟的外设,这里是GPIOF。在STM32的库函数中,RCC模块提供了多个这样的函数来控制不同总线上外设的时钟,如AHB1、AHB2、APB1等。开漏输出最主要的特性就是高电平没有驱动能力,需要借助外部上拉电阻才能真正输出高电平,这 一特性一个明显的优势就是可以很方便的调节输出的电平,因为输出电平完全。开漏输出和推挽输出的区别最普遍的说法就是开漏输出无法真正输出高电平,即高电平时没有驱动 能力,需要借助外部上拉电阻完成对外驱动。

2024-03-25 20:16:29 771

原创 static关键字

static关键字介绍c语言中,静态数据有两种:- 全局变量:定义在函数体外的变量- 静态局部变量:定义在函数体内部,且被static修饰的变量为什么需要静态数据全局变量在默认的情况下,对所有文件可见,为某些需要在各个不同文件和函数之间访问的数据提供操作上的方便。static修饰的全局变量,只能在本文件使用,如果未被static修饰的全局变量,所有的文件都能使用,此时会出现命名污染。当我们希望一个函数退出后依然能保留局部变量的值,以便于下一次调用时还能用,静态局部变量可以帮助实现这样的功能。

2024-03-20 19:32:37 818 1

原创 三大经典排序:冒泡排序(Bubble Sort)、快速排序(Quick Sort)、插入排序(Insertion Sort)

在计算机编程中,特别是在使用C语言这样的底层语言时,排序算法是非常基础且重要的。在众多排序算法中,有三种被广泛认为是经典的,它们各自在不同的场景下有着不同的应用和优势。这三种经典的排序算法是:冒泡排序(Bubble Sort)、快速排序(Quick Sort)、插入排序(Insertion Sort)。

2024-03-13 20:29:57 1027

原创 数据结构之链表

与无头单向链表相比较,需要定义一个链表的头节点;一个first指向第一个节点;一个last指向最后一个节点;一个nodeNumber记录链表节点数。// 定义数据节点// 数据域// 指针域,存放(指向)下一个节点的地址// 定义头节点// 指向第一个数据节点// 指向最后一个数据节点// 记录链表节点数。

2024-03-12 20:45:49 763 1

原创 预处理——宏定义

有些时候,宏参数中的符号并非用来传递数据,而是用来形成多种不同的字串,例如在某些系统函数中,系统本身规范了函数接口的部分标准,形如// demo// 向用户提供一个方便整合字串的宏定义;定义粘贴宏printf("切换到wifi模式\n");printf("切换到飞行模式\n");printf("切换到5g模式\n");printf("切换到4g模式\n");int main()// 编译出错的时候查找问题,需要观察预编译的结果// gcc 4_粘贴宏.c -o a.i -E。

2024-02-29 19:17:49 785 1

原创 C语言结构体

char sex;// 定义结构体初始化,静态区.datareturn 0;结构体相当于一个集合,内部包含了众多成员,每个成员实际上是独立的变量,都可以被独立的引用,引用结构体成员非常简单,只需要使用一个成员引用符即可:结构体.成员。

2024-02-28 20:20:34 356

原创 学C的半个月

回忆一下这一个多星期学了些啥,这就当是个笔记吧。感觉会记的比较乱。有用的信息称为数据。定义一个整型数组// 申请5块连续的空间,将a称为数组int a[5];// 将这5块空间逐一赋值,注意,数组下标从0开始// 赋值的时候只能一个一个元素赋值a[0] = 1;a[1] = 20;a[2] = 30;a[3] = 40;a[4] = 50;// 越界,无法使用// 循环给数组a赋值i < 5;// 遍历输出i < 5;

2024-02-23 13:07:18 779 2

原创 学C的第一天

想要有一份稳定的高薪工作,那就得跟上时代发展的浪潮,C语言近年来也是最流行的编程语言之一,学好C为以后建立基石。提示:以下是本篇文章正文内容,下面案例可供参考。

2024-01-12 20:30:33 356

实验STM32F407-工程项目模板

通过官方固件库包STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\进行模版搭建 序号 子文件夹名称 用途 1 USER 存放用户编写的应用层程序文件、工程文件 2 HARDWARE 存放硬件外设驱动程序文件 3 FWLIB 存放STM32F4 标准外设库文件 4 CORE 存放Cortex-M4 内核相关文件、启动文件 5 OBJ 存放编译产生的各种中间文件

2024-03-20

空空如也

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

TA关注的人

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