STM32笔记
文章平均质量分 89
花园宝宝小点点
虚心学习,永远做一个初学者
(找实习ing,可以从事嵌入式,二进制安全,物/车联网安全,可联系rui6737321@gmail.com,或者私信)
展开
-
(49)STM32——照相机实验
本节我们学习的是照相机实验,主要的功能就是将照片拍下,然后把数据解码,最后将图片数据保存到SD卡里,在运用上节课的图片显示实验来显示。原创 2022-11-06 10:03:59 · 1023 阅读 · 0 评论 -
(48)STM32——图片显示实验
本节要学习的是使用单片机来显示图片,但是因为目前SD卡还没有图片,暂时做不了实验,等我把图片放到SD卡之后再把实验补上。原创 2022-10-30 21:10:16 · 1844 阅读 · 1 评论 -
(47)STM32——汉字显示实验(基于正点原子F407)
本节我们需要学习的是汉字显示实验,之前一直只能显示英文和数字,我们今天就来显示一下汉字。其实原理和显示字符差不多,只不过引入了一个字库的概念,好了,就让我们开始吧!原创 2022-10-24 20:30:10 · 3757 阅读 · 4 评论 -
(46)STM32——FATFS文件系统实验
我们要来介绍的是FATFS文件系统,这是一个为嵌入式设计的文件系统,甚至8051系列也可以使用,好了,我们开始介绍吧!文件系统,目前感觉用不太到,而且都是偏向工程类的,其实不能像例程写的这么简单,但用来了解一下还是可以的。文件系统常用系统FATFS特点结构图移植步骤disk_initializedisk_statusdisk_readdisk_writedisk_ioctlget_fattime原创 2022-10-23 20:22:51 · 1382 阅读 · 0 评论 -
(45)STM32——SDIO实验
我们接下来要讲解的是有关SD卡的一些知识,因为单片机内部的存储容量比较小,一些数据什么的也无法保存,所以这个时候就需要我们使用SD卡来解决这个问题。目前SD卡还在路上,就无法做实验,等SD卡到了再把实验补上。原创 2022-10-07 22:43:15 · 1748 阅读 · 0 评论 -
(44)STM32——内存管理实验
本节我们要来学习的是内存管理实验,主要用来解决的问题其实和C语言中数组遇到的问题类似,就是我们不知道到底需要多少内存,为了避免数组越界,我们只能定义一个很大的数组,但是在单片机这种“寸土寸金”的地方就很不现实了,所以我们必须引入C语言中的内存管理函数malloc和free了。原创 2022-10-05 10:36:25 · 1886 阅读 · 0 评论 -
(43)STM32——触摸屏实验笔记
本次实验我们讲解的是有关触摸屏的知识,原理是和我们的手机是一样的,采用电容型的方式,可以实现在显示屏上多点触摸并且划线。但是因为触摸芯片坏了,所以实验展示无法展示,等以后补上。原创 2022-10-04 12:01:48 · 2434 阅读 · 0 评论 -
(42)STM32——LCD显示屏实验笔记
今天我们要讲解的是有关LCD显示屏的知识,其实这部分知识之前就学习过了,但是因为没有LCD显示屏,就没有做实验,所以我们今天就当是来复习一下之前的知识点了。主要的内容就是关于LCD的原理,与学会使用LCD。原创 2022-10-03 19:15:16 · 4145 阅读 · 0 评论 -
(41)STM32——外部SRAM实验笔记
今天我们要学习的是有关外部SRAM实验,其实F4内部也是有一个192K字节的SRAM的,相比于51的512个字节来说,实在是好太多了,但是因为32可能需要跑一些需要大内存的场景的话可能就不够用了。所以我们就需要使用外部SRAM芯片来实现相应功能,这里我们使用的是IS62WV51216,容量为1M,这样就能满足大多数情况了。个人觉得手机电脑什么的内存应该也是使用这样的方式来组成的,但是没有过多了解,只是一个猜测。原创 2022-09-18 22:52:38 · 1550 阅读 · 0 评论 -
(40)STM32——OV2640摄像头实验
今天我们要学习的是OV2640摄像头实验,采用的是DCMI接口,进行传输。个人觉得难度较大,加上没有相应的串口线,导致实验无法进行,所以就先讲解理论知识,等串口线到了再把实验补上。原创 2022-09-16 10:52:00 · 12404 阅读 · 43 评论 -
(39)STM32——FLASH闪存
本节我们要来介绍一下关于FLASH闪存的知识,也是有关存储部分的知识,和之前学的EEPROM类似。FLASH结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。原创 2022-09-10 15:11:22 · 5253 阅读 · 2 评论 -
(38)STM32——NRF24L01无线通信
本节我们要学习的是NRF24L01无线通信,NRF24L01无线通信采用的是SPI通信,SPI的内容我们之前学过,也算是一个加强的过程吧。然后我们会使用两个单片机来实现通信过程,最后的结果会通过串口打印到电脑上。原创 2022-09-08 21:57:57 · 9269 阅读 · 0 评论 -
(37)STM32——DHT11数字温湿度传感器实验
今天我们要学习的内容是有关DHT11数字温湿度传感器的实验,采用的原理是单总线通信原理,和我们的DS18B20是一样的通信方式,但是比DS18B20要简单许多,被广泛用来测量湿度。原创 2022-09-05 21:37:02 · 3526 阅读 · 0 评论 -
(36)STM32——DS18B20温度传感器与红外遥控
本节我们要介绍的是关于DS18B20的知识,这一部分也在51中详细介绍过,所以在此次就不做详细介绍了。原创 2022-09-04 11:55:45 · 1957 阅读 · 2 评论 -
(34)STM32——CAN通讯实验笔记
这个CAN通信实验比较的难,而且内容较多,并且大都是新的知识点(加上老师只念PPT),所以学习起来有亿点点困难,但是我们还是要来简单的介绍一下。 本节CAN的知识特别多,而且特别难,测试也就测试了一下回环模式。内容特点物理层帧数据帧帧起始仲裁段控制段数据段CRC 段ACK 段帧结束位仲裁bxCAN特点框图模式工作模式测试模式调试模式标识符筛选器发送流程接收流程时序中断...原创 2022-08-31 19:47:15 · 2693 阅读 · 1 评论 -
(33)STM32——485实验笔记
本节内容我们要学习的是485通信,这个是在51上没有的,但是知识不是特别复杂,而且和我们之前学的串口知识是相似的。485通信就介绍到这里,实验结果的话需要两块单片机,在操作的时候把线扯坏了,后面的CAN实验也做不了了。...原创 2022-08-30 19:56:35 · 1134 阅读 · 0 评论 -
(32)STM32——SPI实验
本节学习的是SPI通信原理,其实在之前51学习AD的时候接触过一下,但并未深入,32的SPI相对详细一点。本次实验用到的是W25Q128,是一种FLASH存储器,所以实验结果没什么好看的,就是简单的读写操作。等买了一些SPI的传感器再细细琢磨一下这个SPI的功能。...原创 2022-08-26 22:54:47 · 2684 阅读 · 0 评论 -
(30)STM32——DMA笔记
本节我们来学习有关DMA的知识,这部分知识在51中是没有接触的,也算是一个新的概念,简而言之,DMA就是一个不需要CPU的传输方式。好了,接下来我们就开始介绍有关DMA的知识吧!DMA,全称为:Direct Memory Access,即直接存储器访问。DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,能为CPU减负,使 CPU 的效率大为提高。原创 2022-08-22 17:06:44 · 1309 阅读 · 0 评论 -
(29)STM32——PWM DAC实验笔记
本节内容讲解的是有关PWM转DAC的知识点,其实这种做法我们已经不陌生了,因为在学习51单片机的时候,DA也是通过PWM来实现的。51单片机——AD/DA转换,好了,接下来就让我们开始吧!原创 2022-08-20 16:26:07 · 1672 阅读 · 2 评论 -
(28)STM32——DAC数模转换笔记
本节学习的是有关DAC的知识点,主要进行的是数字信号到模拟信号的转换,内容其实和我们之前学51的时候是类似的,在此就不做过多介绍,如果对AD/ DA有不太了解的同学还是建议先去看一下51的AD/DA转换。原创 2022-08-20 10:59:52 · 1170 阅读 · 1 评论 -
(26)STM32——内部温度传感器笔记
本节内容是内部温度传感器,其实主要原理还是ADC,和我们上节内容相似,只不过改动了一点点,不过在这之前我们需要先来介绍一下内部温度传感器的原理,这个与学51单片机时接触的DS13B20不太相同。原创 2022-08-19 16:54:06 · 4002 阅读 · 4 评论 -
(25)STM32——ADC模数转换笔记
今天我们来学习一下有关ADC模数转换的知识,STM32中并未对AD/DA做出讲解,更多的是让我们如何去配置,所以建议先学习一点有关AD的知识,再来理解一下,可能会好一点。之前51的笔记如下:51单片机——AD/DA转换原创 2022-08-19 12:10:10 · 1944 阅读 · 0 评论 -
(24)STM32——待机唤醒(低功耗)笔记
本节我们讲解的是有关待机唤醒的知识,这部分知识在51中并未涉及到,我感觉还是有点意思的,有点类似与我们手机的锁屏功能和关机功能,只是选择了不同的低功耗模式。好了,接下来我们就来介绍一下待机唤醒的相关知识吧!......原创 2022-08-18 16:36:09 · 2996 阅读 · 3 评论 -
(23)STM32——硬件随机数发生器
本节我们来介绍一下有关硬件随机数发生器的知识,这一节可以说是我遇到32中最简单的一节内容了,只要只用几个函数就好了,不需要繁琐的配置,和软件中的随机数一样舒服。原创 2022-08-18 11:54:48 · 1319 阅读 · 3 评论 -
(22)STM32——RTC时钟笔记(基于正点原子探索者)
今天我们要介绍的有关PTC时钟的相关知识,其中包括了RTC日历、RTC时钟和RTC周期性自动唤醒。其实我们在51单片机的时候利用过DS1302完成过时钟的实验,但因为51单片机本身的精度原因,导致有一点点误差,当我接触到32的时钟时,觉得特别精准,虽然繁琐了一点点(其实51也好麻烦)。好了,接下来就让我们开始介绍一下32的RTC时钟吧!......原创 2022-08-18 10:58:00 · 2530 阅读 · 1 评论 -
(21)STM32——通过键盘控制舵机和LED灯(利用正点原子USMART实现)
本节我们来学习有关正点原子USMART的章节,简而言之,USMART是一种调试工具,具体的工作过程就是通过串口发送命令给单片机,然后单片机收到命令之后调用单片机里面对应的相关函数,并执行,同时支持返回结果。好了,就让我们来简单介绍一下USMART调试吧!......原创 2022-08-17 16:32:52 · 1331 阅读 · 1 评论 -
(十九)STM32——输入捕获
本节内容我们要介绍的是输入捕获,其实也和定时器那部分知识是有关系的,所谓输入捕获,通俗一点来讲,其实就是通过检测上升沿和下降沿来计算你的输入持续时间。具体怎么去检测和捕获呢?我们来慢慢介绍。...原创 2022-08-15 18:15:07 · 13041 阅读 · 12 评论 -
(十八)STM32——呼吸灯与舵机的使用(PWM)
本节内容我们来介绍关于STM32中有关PWM的使用,其实这部分在51中我们已经接触过,再次在32中接触,第一感觉就是繁琐,特别繁琐,在51中几行代码就能解决的东西,这里还要各种模式配来配去。不过好在原理都是一样的,也没有复杂多少,而且32的PWM配置给我一种很踏实的感觉,并且精度也更高,所以繁琐一点也没事。...原创 2022-08-14 18:20:13 · 892 阅读 · 4 评论 -
(十七)STM32——定时器
本节内容我们来介绍一下有关定时器的知识,其实这个定时器,和我们日常接触的定时器没有什么区别,都是到了一定的时间就去做指定的事情。和51单片机的定时器也没有很大区别,就是数量和功能明显变多了许多,那我们就开始吧!STM32F4 的定时器功能十分强大,有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5,TIM9~TIM14 等通用定时器,还有 TIME6 和 TIME7 等基本定时器,总共达 14 个定时器之多。我们今天就只介绍一下通用定时器,日后要用到其他定时器的话再来介绍...原创 2022-08-13 20:40:54 · 7667 阅读 · 1 评论 -
(十六)STM32——尝试把窗口看门狗当成游戏中的困难模式来理解
本节我们还在上一篇文章上的基础来用一个虚构的游戏来讲解窗口看门狗的知识点,在此先给出上篇文章的链接:把独立看门狗当成一款游戏来学习个人浅显的理解,窗口看门狗相当于我们独立看门狗的加强版,也就相当于我们游戏的困难模式。于是我们现在就来讲讲这个困难模式!窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在 T6 位变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位。如果在递减计数器达到窗口寄存.....原创 2022-08-12 22:13:47 · 883 阅读 · 2 评论 -
(十五)STM32——尝试把独立看门狗当成一款游戏来理解
本节我们来学习有关独立看门狗的知识,我觉得这节知识有点好玩,因为是之前学51时没有接触过的东西。我觉得独立看门狗就像是一个偷东西的游戏,但是主人家里养了一条狗,为了避免惊动其他人,你必须每隔一段时间去喂狗,不然就会惊动其他人,导致游戏重开。(不怎么玩游戏,不知道是不是真有这样的一个游戏)好了,我们接下来开始讲解独立看门狗吧!.........原创 2022-08-12 11:30:39 · 1503 阅读 · 3 评论 -
(十四)STM32——外部中断(EXTI)
本节内容我们将介绍一下外部中断,STM32F4 的每个 IO 都可以作为外部 中断的中断输入口,这点也是 STM32F4 的强大之处。本节我们将使用 STM32F4 的 IO 口作为外部中断输入,实现独立按键的外部中断功能。和独立按键类似,只不过是用中断完成的。...原创 2022-08-11 23:12:51 · 3803 阅读 · 1 评论 -
(十三)STM32——串口通信(UART)
本节我们要学习的的是STM32的通信部分,主要介绍UART(通用异步收发器),是一种异步、全双工的通信方式。目录学习目标内容通信方法并行通信串行通信通信方向通信方式 UART特点串口参数通信流程寄存USART_SRUSART_DR USART_BRR过程代码运行结果运行结果遇到的问题总结 运行结果32串口通信 运行结果32串口通信1......原创 2022-08-11 14:23:24 · 11711 阅读 · 1 评论 -
(十二)STM32——NVIC中断优先级管理
今天我们要学习的是NVIC中断管理,CM4 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256 级的可编程中断设置。但 STM32F4 并没有使用 CM4 内核的全部东西,而是只用了它的一 部分。STM32F40xx7总共有 92 个系统运行开始的时候设置中断分组。学习目标主要内容中断分组优先级寄存器ISERICERISPRICPRIABRIP...原创 2022-08-10 11:45:19 · 1995 阅读 · 1 评论 -
(十一)STM32——IO引脚复用与映射
STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。那我们如何去寻找我们所需要的串口引脚呢?例如串口1的发送接收引脚是PA9,PA10,当我们把PA9,PA10不用作GPIO,而用做复用功能串口1的发送接收引脚的时候,叫端口复用。对于GPIO_PinAFConfig()函数,第一个参数是哪个GPIO,第二个参数为GPIO几,第三个就是确定哪个功能的,还是蛮好理解的。...原创 2022-07-23 11:10:07 · 5253 阅读 · 0 评论 -
(十)STM32——Systick滴答定时器
这节主要来讲解一下Systick定时器基础知识Systick寄存器库函数CTRLLOADVALCALIBSysTick_CLKSourceConfig()SysTick_Config()delay延时函数voiddelay_init()delay_us()delay_ms()delay_xms()Systick定时器基础知识Systick定时器常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。Systick定时器就是系统滴答定时器,...原创 2022-07-16 17:10:55 · 5611 阅读 · 2 评论 -
(九)STM32——Systemlnit初始化函数讲解
首先,我们需要了解一个东西,就是Systemlnit初始化函数会在main函数调用之前被执行,可以简单理解为,Systemlnit初始化函数在启动程序时在main函数之前,如下图所示: 接下来我们就正式开始介绍Systemlnit初始化函数了,先上代码,我们后面来慢慢讲解这个函数: 我们是一行一行代码详细的讲解,不过只要理解了第一行代码,后面的都是类似的,所以我们现在来讲解第一行代码: 现在要介绍SetSysClock函数,原创 2022-07-10 14:51:38 · 2601 阅读 · 0 评论 -
(八)STM32——时钟系统介绍
目录LSI时钟输出LSE时钟输出输入HSI时钟输出HSE时钟输出输入PLL时钟主PLL输入专用 PLL编辑输出输入PLL时钟频率计算系统时钟 输入输出RCC寄存器RCC_CRRCC_PLLCFGRRCC_CFGR 相比于51来说,STM32F4的时钟比较难一点,我也是没想到,都有时钟树这种东西出来了,并且还有5个时钟,不过好在以前有51的基础,学习起来稍微轻松一点,就是要自己配置许多的东西和了解以及使用不同的时钟,个人觉得正点原子的课程讲的有点乱,所以这是我自己整理之后的笔记,按照每一原创 2022-07-07 21:20:43 · 2406 阅读 · 0 评论 -
(七)STM32基础——C语言知识复习
这个地方有一些和C语言是不一样的,就是关键字的定义不同,稍微注意一下就可以了。原创 2022-07-06 19:56:31 · 1101 阅读 · 0 评论 -
(五)STM32基础——基于库函数的蜂鸣器
上节我们介绍了一下如何点亮LED灯,写好了我们的第一个代码,接下来,我们就来编写一下蜂鸣器的程序,其实蜂鸣器的代码与LED灯极其相似,所以如果如果理解了之前的代码,蜂鸣器的代码也能轻易了解。 首先,我们要来了解一下三极管的知识,因为我们的蜂鸣器用到了三极管来控制,起到放大电压的作用。 在三极管电路中,当输人为低电平,三极管处于截止状态,输出为高电平。当输人为高电平,三极管处于饱和导通状态,输出为低电平。所以蜂鸣器在输入为0的不响,在输入为1的时候才响。 然后我们要初原创 2022-06-03 19:35:06 · 7897 阅读 · 5 评论