- 博客(148)
- 收藏
- 关注
原创 4.STM32通信接口之SPI通信(含源码)---硬件SPI与W25Q64存储模块通信实战《精讲》
根据上一节对STM32的SPI介绍!本节将进行硬件SPI的实现,片选用软件实现!跟着Whappy走起!W25Q64的驱动层,我们不需要更改,仅仅需要更改一下SPI的协议,即:由软件实现改成硬件实现。跟着Whappy同志步伐学起来!
2024-12-06 20:53:46 1203
原创 4.STM32通信接口之SPI通信---硬件SPI的介绍
上一节,我们学会软件的SPI,本节,我们将学习STM32的SPI硬件收发电路,虽然STM32的硬件收发电路很强大,但是,很多我们都用不到,我们只需会最基本的就可以。硬件的好处就是稳定,功能模块都被定死了。同步,全双工,高位先行!刚好与USART串口通信相反!本节还是配置STM32为主模式!软件SPI加了延时,数据采样都是在数据变化期间采样,硬件数据采样都是紧贴始终时序的边沿。
2024-12-06 15:26:50 463
原创 4.STM32通信接口之SPI通信(含源码)---软件SPI与W25Q64存储模块通信实战《精讲》
初始化 SPI 接口:配置微控制器上必要的 GPIO 引脚,将 MOSI、SCK 和 CS 设置为输出模式,MISO 设置为输入模式。根据 SPI 时钟极性(CPOL)的配置,设置 SCK 引脚的初始状态。将 CS 引脚设置为高电平,取消对 W25Q64 芯片的选择。选择 W25Q64 芯片:将 CS 引脚拉低,选择 W25Q64 芯片,开始通信。发送命令:在 MOSI 线上移位发送命令字节,同时切换 SCK 线。命令指示要执行的操作类型,如读、写或擦除。
2024-12-04 21:20:16 1534
原创 3.STM32通信接口之SPI通信---SPI实战(W25Q64存储模块介绍)《精讲》
W25Q40BV 支持标准串行外设接口(SPI)、高性能双/四路输出以及双/四路 I/0 SPI:串行时钟、芯片选择、串行数据 IO0 (DI)、I/01(DO)、I/02(/WP)和 I/03 (/HOLD)。页可按 16 个一组(4KB 扇区擦除)、128 个一组(32KB 块擦除)、256 个一组(64KB 块擦除)或整个芯片(芯片擦除)进行擦除。上一节介绍了SPI的通信过程和方法,接下来就要进行STM32与外围模块通信了,这个模块是一块非易失型存储芯片,能够提供8MB的存储空间。
2024-12-03 14:26:08 415
原创 2.STM32通信接口之SPI通信---SPI实战《精讲》
向指定地址读入数据,刚开始MOSI和MISO一直在交换数据,通过三个字节的交换成功读取到从机的地址,由于是交换数据,从机可以选择不接收主机的数据。接下来,就是接收数据,主机会发送一个随便一个数据(一般是)0XFF),然后,从机会把数据发送给主机,主机就成功读取到从机的数据了,(MISO一直处于高电平,每个从机芯片手册不一样)向指定地址写入数据,MOSI和MISO一直在交换数据,通过三个字节的交换成功将23位地址写入到了从机,由于是交换数据,主机可以选择不接收从机的数据。SN=0,代表正在和某个主机通信。
2024-12-03 10:42:31 376
原创 《第十一部分》1.STM32通信接口之SPI通信---SPI介绍《精讲》
SPI通信有4种不同的操作模式,不同的从设备可能在出厂是就是配置为某种模式,这是不能改变的;Mode0:CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿(准备数据),(发送数据)数据发送是在下降沿。的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
2024-12-02 10:34:55 784
原创 IIC、SPI、USART、RS485、RS232、CAN外设通信总结《面试必备》
硬件上为4根线。主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。串行移位寄存器通过MOSI信号线将字节传送给从机,也将自己的串行移位寄存器中的内容通过MISO信号线返回给主机。这样,两个移位寄存器中的内容就被交换。外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。
2024-12-02 09:46:12 1337
原创 6.STM32之通信接口《精讲》之IIC通信---硬件IIC(STM32自带的硬件收发器)
上一节,完成了对IIC软件的实验程序,也就是说只要我们编程能够模拟IIC协议规定的时序,所有IIC的外设就能解析IIC的读出我们数据,就能和相关IIC外设进行交互,然后,STM32自带硬件收发电路,接下来我们就进行硬件IIC的学习,(这个插播一句,USART可以用软件实现吗?
2024-11-26 21:25:52 351
原创 5.STM32之通信接口《精讲》之IIC通信---软件IIC与外设MPU6050通信《深入浅出》终结版(源码免费)
本节,目的很明确,就是利用软件IIC通信协议来实现STM32与MPU6050的通信,说白了,就是我们就是要控制MPU6050,来实现我们的既定目标,(目标:读取MPU6050的6个轴传感器姿态数值)。上一节,我们完成对IIC通信的时序以及IIC的通信的讲解和代码实现,接下来,我们正式进入,利用上一节软件实现的IIC通信协议来对外设MPU6050进行读写操作。例如,读取加速度计、陀螺仪的输出数据,或检查特定寄存器的状态。向 MPU6050 的指定寄存器写入配置值,用于修改传感器的设置或发送命令。
2024-11-25 12:02:37 1057
原创 程序为什么要初始化,只要是程序开始之前都是初始化操作,为啥?《面试必备》
在嵌入式开发中,尤其是像 I²C 这样的通信协议,对 GPIO 和时序要求严格,正确的初始化是确保系统稳定可靠运行的基础。: 如果程序之前运行过,或者设备重启后有缓存数据,初始化可以清除这些状态,避免程序行为异常。: 初始化会分配必要的内存、打开文件或网络连接等,确保程序的运行有足够的资源。为啥所有的程序都需要初始化,初始化作用是啥,不初始化会怎样,举几个例子。为啥所有的程序都需要初始化,初始化作用是啥,不初始化会怎样,举几个例子。例子:这个初始化函数,初始化作用是啥,不初始化会怎样。
2024-11-25 11:39:50 1194
原创 4.STM32之通信接口《精讲》之IIC通信---软件实现IIC《深入浅出》面试必备!
接下正式,进入软件编写IIC时序了,并实现对MPU6050的控制,既然是软件实现,那么硬件方面,我仅需两根控制线即可,即:数据控制线SDA,时钟控制线SCL。(人为软件层面定义的,就是把单片机的GPIO模拟成IIC时序)在单片机上,我们只需两个普通的GPIO即可。目前实现的逻辑是STM32是主机,MPU6050是从机,一主一从。座右铭:我们何必为人生的部分片段而哭泣,我们整个人生都催人泪下!(软件实现IIC的好处就是端口不受限,可以任意指定)
2024-11-23 23:31:37 977
原创 3.STM32之通信接口《精讲》之IIC通信---MPU6050介绍
MPU中文数据手册MPU-6000/MPU-6050运动传感技术规格及应用解析资源-CSDN文库【免费】中文版MPU-6000/MPU-6050寄存器映射与功能详解资源-CSDN文库本文件是关于 MPU-6000 和 MPU-6050 运动处理单元的产品规格文档,涵盖以下内容:产品概述:关键特性:电气特性:通信接口:应用信息:可编程中断:应用领域:
2024-11-22 20:38:28 580
原创 2.STM32之通信接口《精讲》之IIC通信---软件实现IIC《深入浅出》面试必备!
一句话,所有的外设模块,只要你能读指定地点的寄存器和写指定地点的寄存器,你就能对这个外设模块进行了完全控制。
2024-11-22 14:47:51 1122
原创 STM32编程小工具FlyMcu和STLINK Utility 《通俗易懂》破解
ISP是的缩写,意思是在系统内编程。它指的是在不将芯片从电路板上拆下的情况下,通过特定的接口对芯片进行编程或更新固件的一种方法。
2024-11-20 21:06:24 672
原创 6.STM32之通信接口《精讲》之USART通信(PC串口与OLED交互)---多字节数据收发(数据包的模式:HEX数据包和文本数据包)
为所有状态创建一个统一接口或抽象类,定义公共行为。USART 逐字节触发中断(RXNE基于硬件缓冲能力和实时性需求,确保每个字节都能被及时处理。提供通用性和灵活性,适用于多种通信协议。如果需要高效传输大量数据,可以使用 DMA 模式或专用硬件 FIFO,但这些是更高级的扩展功能,单字节触发中断仍是最基础、可靠的实现方式。4o。
2024-11-20 15:25:05 1335
原创 7.STM32之通信接口《精讲》之USART通信---多字节数据收发(数据包的模式:HEX数据包和文本数据包)
根据上一节的HEX数据包的设计完成,本节将完成文本数据包的编写,(HEX数据包其实本质就是原始数据,文本数据包我么要接收到还要对照ASCll进行解析封装)有不懂的可参考上一节的讲解!
2024-11-19 22:02:02 331
原创 5.STM32之通信接口《精讲》之USART通信---实验串口接收程序
串口通信在嵌入式系统中的应用非常广泛,不仅用于设备间的简单数据交换,还能支持各种外设的控制与调试。通过适当的配置和使用,串口通信可以实现有效的数据传输和设备控制。
2024-11-19 15:50:40 1214
原创 4.STM32之通信接口《精讲》之USART通信---实验串口发送程序
在嵌入式开发中,串口通信(UART)是最常用的通信方式之一,常用于调试和数据传输。今天我们先带大家梳理一下整个串口通信的过程和原理。通信原理 串口通信是一种异步的串行数据传输方式,数据通过起始位、数据位、校验位和停止位逐位传输。STM32 的串口模块(USART/UART)将这些数据串行发送出去,而接收端则按相同协议解析接收到的数据。硬件连接STM32 的 TX 引脚:负责发送数据。电脑的 RX 引脚:负责接收数据。共地:STM32 和电脑需要连接 GND 确保信号参考一致。软件流程。
2024-11-18 14:08:08 1540
原创 3.STM32之通信接口《精讲》之USART通信
停止位的作用标识数据帧的结束。提供接收端缓冲时间,确保数据接收不重叠。保证数据同步,避免接收错误。提高通信的稳定性,特别是在高速传输时。合理设置停止位数量,可以有效提升通信的稳定性与可靠性,尤其在长时间或高速的串行数据传输中至关重要。一般我们,就选择一位停止位。这张图片展示了 STM32 微控制器中 USART (通用同步异步收发器) 的波特率寄存器 (USART_BRR) 结构。波特率寄存器用于配置 USART 接口的数据传输速度。
2024-11-15 20:20:35 864
原创 槽型光耦工作原理与应用解析《电子工控人的必备知识点》
镜头容易受有机尘土等的影响镜头免受污染后,光会散射或被遮光,所以在有活水蒸汽、尘土等较多的环境下使用的场合,需施加适当的保护装置。与接近开关等比较,光电开关的检测距离非常长,且是无接触式的,所以不会损伤检测物体,也不受检测物体的影响。到输出端的光电耦合器,由于它具有体积小、寿命长、无触点,抗干扰能力强,输出和输入之间绝缘,单向传输信号等优点,在。它与接近开关同样是无接触式的,受检测体的制约少,且检测距离长,应用广泛。槽型光耦对输入、输出电信号有良好的隔离作用,所以,它在各种电路中得到广泛的应用。
2024-11-15 15:41:57 574
原创 2.STM32之通信接口《精讲》之USART通信
有关通信详解进我主页观看其他文章!【免费】SPIIICUARTRS232/485-详细版_UART、IIC、SPI资源-CSDN文库
2024-11-14 11:35:22 344
原创 第九部分 :1.STM32之通信接口《精讲》(USART,I2C,SPI,CAN,USB)
USART:适合点对点通信,适用于调试和低速无线模块通信。SPI:适合高速点对多通信,广泛应用于传感器、存储、显示等场景。I2C:适合中低速点对多通信,常用于传感器和LCD等模块。USB:支持将MCU作为USB从设备连接到PC,便于通信和调试。在设计中需要根据具体应用场景选择合适的接口,并关注各接口的电平、速率、抗干扰等设计要求。USART和UART区别?
2024-11-14 11:25:57 1424
原创 第七部分:2. STM32之ADC实验--ADC多通道采集传感器的模拟信号(AD采集4路传感器模块实验:对射式槽型传感器、热敏传感器、反射式传感器附赠温湿度传感器教程)
代码实验:
2024-11-08 21:54:30 400
原创 通俗易懂讲STM32为GPIO的8种模式(上拉输入、下拉输入、模拟输入、浮空输入,开漏输出,推挽输出)
这一种输入模式的电平会完全取决于外部电路而与内部电路无关。有时候会用作对开关按键的读取。但是在没有外部电路接入的时候,IO脚浮空会使得电平不确定。
2024-11-07 16:33:37 626
原创 2-2.STM32之定时器TIM---输入捕获--实验2( PWMI模式测频率占空比)
来利用一个GPIO的定时器的两个通道进行捕获占空比和频率,看出可以看出。TI1FP1和TI2FP2,计数值分别在CCR1和CCR2中取,
2024-11-05 18:21:35 235
原创 第八部分:1.STM32之DMA实验--DMA数据转运& DMA+AD多通道
DMA:直接存储器存取,主要是为了帮助CPU暂存外设处理的数据,如ADC,TIM处理后的数据。实验1:现象将数据从一个数组通过DMA转到另一数组(DMACPU的搬运小助手)学完这个我就往南走,~~~~Whappy!
2024-11-05 13:23:01 358
原创 6. STM32之TIM实验--编码器接口 --实验:编码器测速
这篇文章是通用定时器的最后一章节,也就是编码器接口,主要是用来进行对精确测量旋转角度或速度的负载进行精确控制。
2024-11-02 19:18:01 347
原创 5. STM32之TIM实验--输出比较(PWM输出,电机,四轴飞行器,智能车,机器人)--(实验5:PWM驱动直流电机)
直流电机的控制就比较简单了,只有数据线和地线,正接正转,反接反转,为了方便,本实验采用H桥电路来控制电机的正反转,H桥电路也很简单,就是4个MOS管构成的2路推挽输出电路.作者:Whappy,日期:2024.10.29,决战STM32。
2024-10-29 22:14:33 442
原创 4. STM32之TIM实验--输出比较(PWM输出,电机,四轴飞行器,智能车,机器人)--(实验2:PWM驱动舵机)
总结:其实舵机(齿轮控制减速机,直流电机,驱动器)就是一个山寨般的伺服电机(伺服电机可以说是一个系统:一个伺服电机包括控制器,编码器,电机,传感器等),其实很多单片机都配置了控制电机的GPIO,这个控制也很简单,只需要一个信号线即可,由图可知:通过调节占空比,来改变输出角度.
2024-10-29 22:14:29 1010
原创 3. STM32之TIM实验--输出比较(PWM输出,电机,四轴飞行器,智能车,机器人)--(实验1:PWM驱动LED呼吸灯)
CNT>=CCR1时:--->给输出模式控制器传递一个信号,然后通过参考信号OC1ref,最后通过极性选择,选择相关的高低电平通过输出使能电路通过OC1输出相对应的PWM波形,下表为控制ref输出控制表。输出比较功能是驱动电机的必要条件,输出比较共有三个实验,3 4 5 三个主题讲解,如何感兴趣的同学对电机感兴趣,可以认真学一下TIM的输出比较功能(其实输出比较就是输出一个PWM波形的)代码:配置步骤:配置时钟-->配置时基单元-->配置输入输出捕获CCR-->配置输出模式-->极性选择--GPIO输出。
2024-10-29 21:30:54 814
原创 2.STM32之定时器TIM---输入捕获--实验1(输入捕获模式测频率)
主要是利用一个通道PA0发出PWM信号,然后通过PA6进行进行这个波形的测量。总结:一句话,不太难,很基础。
2024-10-29 10:28:27 122
原创 1.STM32之定时器TIM---第一部分(基本定时器)(功能最强大结构最复杂的一个外设)(实验基本定时功能)-----定时器定时中断(利用内部时钟72M)
总结:配置一下最简单的内部时钟触发定时器计数,5步走,就可以完成配置(从代码中参考定时器中断基本结构图进行配置)定时器TIM是STM32外设中功能最强大结构最复杂的一个外设!STM32F103C8T6总共由一个高级定时器3个通用定时器。
2024-10-26 15:56:38 361
原创 STM32之外部中断旋转编码器
总结:也是利用外部中断触发的,利用两个EXTI0和EXTI1来控制编码器的正转和反转。STM32之旋转编码器自己学。
2024-10-25 22:04:31 251
原创 STM32之外部中断(实验对射式传感器计次实验)
实验总结:本实验主要利用外部中断来对传感器模块进行计次,外部中断触发计次累计,通过检测B14的下降沿来触发计次!
2024-10-24 22:03:04 329
STM32 与 W25Q64 闪存芯片的 SPI 通信
2024-12-04
W25Q64(中英文数据手册)
2024-12-03
总结: 这是一个针对STM32F10x微控制器的MPU6050传感器驱动程序,主要功能包括: 硬件配置 初始化I2C通信接口 配置GPIO引脚 设置MPU6050传感器工作参数 总结:
2024-11-30
本人初学C语言第一位人生导师!幽默风趣且好玩
2024-11-26
. STM32与MPU6050通信流程 I2C初始化:通过配置STM32的GPIO和I2C硬件接口,使其能够支持I2C通信 此过程包括: 启用I2C的时钟 配置I2C的SCL和SDA引脚为开漏输出模
2024-11-26
中文版MPU-6000/MPU-6050寄存器映射与功能详解
2024-11-22
MPU-6000/MPU-6050运动传感技术规格及应用解析
2024-11-22
是一个简单的C语言游戏,名为“飞机大战” 它使用了 easyx 图形库来实现一个飞行射击游戏的图形界面,代码的整体功能包括窗口创
2024-09-10
本笔记是由本人在2024年期间通过纯手写笔记,以及总结,未经允许禁止外传其他资源库!仅提供学习使用(内含线性代数笔记)
2024-09-10
马克思主义原理-20套卷
2023-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人