自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32F4学习笔记—GPIO_按键扫描(基于寄存器)

通过上面的原理图分析可知,KEY0、1、2连接方式为共阴极,也就是说当GPIO引脚检测到低电平时,说明按键按下;KEY_UP连接为共阳极,同理,当检测到GPIO引脚为高电平时,说明按键按下。位 5 GPIOFEN: IO 端口 F 时钟使能 (IO port F clock enable)在这个环节里主要注意这几个参数就可以了。0:禁止 IO 端口 F 时钟。1:使能 IO 端口 F 时钟。由软件置 1 和清零。

2023-10-26 09:24:03 392

原创 STM32F4学习笔记—GPIO_点亮LED(基于寄存器)

本教程属于个人开发学习过程,内容尽量做到通俗易懂,直入主题,主打的就是一个话少活多,通过例程让新手玩家快速上手,主要参考资料为STM32F4中文参考手册,开发板为STM32F407ZGT6,开发工具为VS Code+CubeMX。话不多说直接开码。

2023-10-25 00:51:36 380 1

原创 STM32学习笔记—软件SPI读取W25Q64

W25Qxx系列是一种低成本、小型化、使用简单的非易失性存储器,常应用于数据存储、字库存储、固件程序存储等场景存储介质:Nor Flash(闪存)时钟频率:80MHz / 160MHz (Dual SPI) / 320MHz (Quad SPI)存储容量(24位地址):W25Q40: 4Mbit / 512KByteW25Q80: 8Mbit / 1MByteW25Q16: 16Mbit / 2MByteW25Q32: 32Mbit / 4MByteW25Q64: 64M

2023-07-25 21:14:15 2114 1

原创 STM32学习笔记—软件IIC读取陀螺仪(基于标准库)

IIC是一种设备间进行通讯的协议,第一次接触是在51系列单片机上面遇到的(AT24C02、EEPROM),它是由飞利浦公司开发的两线式串行总线,,只用两根线就可以实现主从机之间的信息交流(SDA、SCL),标准的IIC传输速率式100kbps,高速的IIC传输速率可达400kbps。其实现在大部分的MCU板载的都有IIC的硬件资源,虽然使用硬件资源可以大大节省代码量,但是我看网上说,STM32的IIC硬件不仅十分复杂,还特别的不稳定,所以我推荐软件IIC。

2023-07-24 21:42:01 866 1

原创 STM32学习笔记—开发基础知识入门(基于标准库)

首先我们要知道的是STM32要比我们之前学习的51复杂的多,外设也是非常的多,不同的外设所需要的频率也是有所不同的,还有就是对于一个电路来说,时钟越快功率越大,同时带来的影响就是电路的抗电磁干扰的能力也就越弱,所以较为复杂一点的MCU一般都是采取多时钟源的方法来解决这一问题。由上图可知,STM32有5个时钟源,按照时钟频率可以分为高速时钟(HSE、HSI、PLL))低速时钟(LSI和LSE),按照来源可以分为外部时钟源(HSE、LSE)和内部时钟源(HSI、LSI、PLL)④、送给 APB1 分频器。

2023-07-21 21:18:03 186 1

原创 STM32学习笔记—外设GPIO输出(基于标准库)

这是上面讲的GPIO的八种模式,看到这里想必大家也会有疑惑,为什么和上面的不太一样,这个我在学习的时候也有点疑惑,上网查了下也没什么太好的解答。CRH 的作用和 CRL 完全一样,只是 CRL 控制的是低 8 位输出口,而 CRH 控制的是高 8位输出口(PIN8~PIN15)。从图中我们还可以知道的是:CRL控制的是IO口的PIN0~PIN7,本章要实现的是,通过控制IO口输出高低电平去点亮面包板上的两个LED,这个实验的关键在于了解怎么样可控制IO口的输出,这是学习STM32的第一步。

2023-07-21 16:31:30 967 1

原创 STM32学习笔记—定时器触发ADC采集+DMA转运数据(基于标准库)

通过查找数据手册相关内容,我找到了定时器外部触发的条件,这样的外部触发事件一共是有8个,我打算用的是通用定时器2(TIM2)的CC2时间触发(也就是TIM的输出比较模式0),数据手册上说的是,只有它的上升沿可以启动转换,也就是说我们生成的PWM的周期就是我们ADC1的采样周期,通过设置ARR和PSC的值我们可以很方便的控制采样频率。所以我的推荐还是不要写!那就让我们开始代码的编写吧!实验现象我就不放了,因为我把核心板从面包板上拆下来了,不想在弄了,太麻蛋了,你们自己弄着测一下吧,下课!

2023-07-10 11:25:59 7312 19

原创 单片机学习—指针的应用

在学习的最后,我个人认为在接触相对简单的函数来说,定义的一个指针变量p就相当于是某个数据的首地址,*p或者p[]就是查看数据的内容,这样理解起来就是会简单很多。

2023-06-29 19:25:32 425 1

原创 单片机学习—指针详解(C语言)

指针(pointer)作为C语言的一个重要知识点,可以算的上是C语言的灵魂,在C语言中使用也是十分灵活的,在实际应用中,我们可以通过使用指针指向数据的地址,对数据进行间接访问。在了解了指针的基本介绍以及计算机存储单元的存储机制之后,我们再建议不了解一下指针吧!指针即指针变量,不用惊讶,我们通常说的指针就是指指针变量,和上面定义的数据一样都是变量,但是它的作用是用于存放其他数据单元的首地址。

2023-06-28 21:53:55 1082 1

原创 STM32学习笔记—ADC的基础开发(基于HAL库)

通过上节课的学习,我们了解了ADC的工作原理,这节课就让我们学习一下ADC的基础开发吧!在了解ADC相关函数之后让我们开始今天的题目练习吧!现在让我们用非阻塞式写一下程序吧!那我们就先用阻塞式写一下代码吧!

2023-06-28 15:46:44 954

原创 STM32学习笔记—ADC模数转换器的基本原理(基于HAl库)

所以 U = (145*0.0195) = 2.83v。由题可知:分辨率=5/256 = 0.0195。因为(10010001)B = 145;其中,编码值=(量化值/分辨率)B。分辨率 = 量程 / 2的n次方。

2023-06-27 21:23:35 447 1

原创 STM32学习笔记—定时器与串口的综合训练(基于HAL库)

通过上一节课的学习,我们对于数据的接收和发送有了初步的了解,现在需要我们联合定时器做一些进阶的训练。在做题之前,需要了解一点新的知识,就是字符串格式化函数,把格式化的数据写入某个字符串中。3.题签2、3:向上位机发送指定信息 发送完成后Led1作为指示灯闪烁 定时器开始计时。4.题签4:通过对上位机接收到的数据判断,单片机进行指定的动作;现在要将其格式化为字符串”温度是:**摄氏度“并将其通过串口发。现在就让我们开始着手写这道题目吧!打开NVIC(一定要记得打开)!6)配置串口1(非阻塞)

2023-06-27 18:18:22 230 1

原创 STM32学习笔记—串口数据的基本收发(基于HAL库)

数据的接收和发送主要分阻塞式和非阻塞式,由于阻塞式是通过延时来实现的,也就是说在发送和接收的时候,整个系统都在都停下来等待发送或接受数据的完成,这种方式仅适用于像我这样的新手接触和了解串口通讯。非阻塞式,顾名思义,就是通过中断的形式来完成数据的接收和发送,举一个形象的例子,在非阻塞的情况下,串口部分就像是散养的羊,饿了就自己去找东西吃,也不用人管,吃饱了就自己回来了,那我们的羊圈是不是只能让自己家的羊住,这是我们就设置一个限制条件,来区分是不是我家的羊,是自己的羊再进行下一步。

2023-06-27 15:46:23 1348

空空如也

空空如也

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

TA关注的人

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