STM32
文章平均质量分 85
介绍STM32开发技术,各种常用芯片,常用协议,实战项目。
石头嵌入式
专注于嵌入式开发,人工智能领域,长期分享嵌入式、linux、网络、arm知识。
展开
-
STM32中SPI的使用
在STM32标准外设库中,结构体用于配置SPI模块的初始化参数。这些参数设置涵盖了SPI通信方式的多个关键方面,包括数据方向、主从模式、数据大小、时钟极性和相位、NSS信号管理方式、波特率预分频、数据传输顺序和CRC校验多项式。以下是: 设置SPI数据通信方向。:全双工,同时使用MISO和MOSI线进行数据接收和发送。:仅接收模式,使用MISO线接收数据,常用于节约引脚。:单线接收模式。:单线发送模式。SPI_Mode: 指定SPI的工作模式。:主设备模式。:从设备模式。原创 2024-05-20 17:05:29 · 1260 阅读 · 0 评论 -
STM32中usart使用DMA接受数据
在STM32微控制器中,USART(通用同步异步接收发射器)配合DMA(直接存储器访问)用于接收数据,可以大幅提升数据处理的效率,尤其是在接收大量数据时。通过利用DMA,CPU可以从数据传输过程中解放出来,专注于其他任务。原创 2024-05-09 21:58:46 · 1772 阅读 · 0 评论 -
STM32中的Systick的使用
SysTick,全称System Tick Timer,是Cortex-M microcontrollers内核中提供的一个简单而有效的系统定时器,设计用来给操作系统提供时间基准,或用于生成周期性的中断。STM32系列微控制器,作为基于ARM Cortex-M内核的设备,也内置了这一功能模块。原创 2024-05-08 22:22:04 · 2328 阅读 · 1 评论 -
ILI9341显示驱动芯片的使用
ILI9341是一种常见的TFT LCD显示驱动芯片,它在众多的应用中都有广泛的使用。这种芯片的一个显著特点是它支持16位RGB565颜色,这意味着它可以显示多达65536种不同的颜色。这使得ILI9341能够提供鲜艳、生动的色彩效果,对于需要表现丰富色彩的应用来说是极好的选择。此外,ILI9341还支持最高240x320像素的分辨率,这使得它能够显示清晰、细腻的图像。无论是用于显示文本,还是用于显示图片或者视频,ILI9341都能提供优秀的显示效果。原创 2024-05-07 22:34:31 · 1840 阅读 · 0 评论 -
用软件分层思想编写ESP8266的驱动
编写ESP8266和STM32的AT指令通信代码是一项复杂的任务,但是通过使用软件分层技术,我们可以更好地管理这个过程并提高代码质量。软件分层技术是一种编程方法,它将软件系统分解为多个独立的层,每个层都有特定的职责。这种结构可以帮助我们更好地组织代码,使其更易于理解和维护。下面我们详细讨论如何在编写ESP8266和STM32的AT指令通信代码时应用这种方法。首先,我们需要将程序分为三个主要层次:硬件层,协议层和应用层。原创 2024-05-06 10:22:21 · 585 阅读 · 1 评论 -
深入解析I2C协议:通讯简化之道
在现代电子系统中,组件间的通信是必不可少的。而I2C协议(Inter-Integrated Circuit),由Philips Semiconductor(现为NXP Semiconductors)在1980s初期发明,已成为一种广泛使用的串行通信协议。其设计目的是允许一个芯片能够与其他芯片通过简单的双线总线进行通信,这样不仅能够简化了物理布线,还能提高系统的扩展性。本文将深入介绍I2C协议的工作原理、特点以及应用场景。原创 2024-05-04 22:25:32 · 963 阅读 · 0 评论 -
不怕没项目做!github上的STM32 优秀开源项目和初学者项目
Go语言编译器,适用于微控制器、WebAssembly、命令行工具,基于LLVM。语言:Go星标数:14,267+描述:TinyGo带来了Go语言在嵌入式系统的实现,使得STM32等微控制器编程更加多样化。- Flipper Zero的固件源码。语言:C星标数:10,699+描述:为Flipper Zero多功能设备提供固件支持,包含了许多和STM32相关的驱动和协议实现。- 嵌入式编程的精选列表。语言:多种星标数:4,834+原创 2024-03-11 21:58:49 · 8844 阅读 · 1 评论 -
理解STM32的低功耗模式
STM32的低功耗模式是特别设计来减少微控制器在不活跃状态下的能耗。这些模式允许STM32在保持核心功能的同时尽可能减少电力消耗,适合用在电池供电或需长期运行的场景。:在微控制器非活跃阶段关闭CPU和不必要外围设备的时钟信号,减少硬件运行所消耗的能量。:通过降低微控制器的工作频率,减少能量消耗。停止不必要的外围设备:如果外围设备(如ADC,通讯接口)暂时不需要,将它们关闭或设置成低能耗状态。原创 2024-03-10 19:54:10 · 1844 阅读 · 0 评论 -
STM32的RCC原理(复位和时钟控制)
STM32微控制器的RCC(Reset and Clock Control)模块是一个非常重要的部分,它负责管理微控制器的时钟系统和复位系统。以下是一些基本的原理和概念:时钟源:STM32微控制器的时钟系统有多个时钟源,包括内部的HSI(High Speed Internal)时钟,外部的HSE(High Speed External)时钟,以及PLL(Phase-Locked Loop)时钟。这些时钟源可以根据需要进行选择和配置。原创 2024-03-06 12:55:35 · 1651 阅读 · 0 评论 -
STM32 DMA入门指导
DMA,全称直接存储器访问(Direct Memory Access),是一种允许硬件子系统直接读写系统内存的技术,无需中央处理单元(CPU)的介入。下面是DMA的工作原理概述:数据传输触发:DMA传输可以由CPU指令触发,也可以由硬件事件(如一个外设准备好数据)自动触发。外设和内存之间的数据交换:一旦DMA传输开始,DMA控制器会将数据从源地址直接传送到目的地址。源地址常常是外设的数据寄存器,目的地址通常是内存中的一个缓冲区;反之亦然。原创 2024-03-02 21:58:21 · 1287 阅读 · 0 评论 -
STM32 的ADC使用指南
ADC,即模数转换器(Analog-to-Digital Converter),是一种在微控制器(如STM32)中常见的设备,它能够将模拟信号转换为数字信号。简单来说,我们的现实世界中大部分的信号都是模拟的,比如声音、光线强度、温度等,它们的变化是连续的。而微控制器是数字设备,它处理的是0和1的数字信号。ADC让我们可以读取模拟信号的值,然后将这个连续变化的信号转换成一系列数字,微控制器就可以读取这些数字进行进一步的处理了。原创 2024-02-29 14:36:00 · 1846 阅读 · 0 评论 -
STM32定时器原理和使用
STM32微控制器提供了一系列的定时器模块(TIM),不同型号的STM32有不同数目和类型的定时器。原创 2024-02-28 17:47:30 · 1120 阅读 · 0 评论 -
物联网芯片ESP8266 介绍
ESP8266是一款由Espressif Systems所开发的低成本的Wi-Fi微控制器芯片,它具有内置的TCP/IP网络协议栈,可以提供任何微控制器访问到Wi-Fi网络的能力。原创 2024-02-19 15:11:18 · 2485 阅读 · 0 评论 -
MPU6050使用指南
MPU6050是由InvenSense公司生产的一款六轴运动跟踪设备,它集成了一个三轴陀螺仪和一个三轴加速度计。这个小巧的芯片能够通过I2C总线与微控制器通信,广泛用于需要运动或方向检测的设备中。:可以测量设备绕三个空间轴的旋转速度。):可以测量设备在三个空间轴的加速度,即快速运动和倾斜。数字运动处理(DMP):MPU6050内置的DMP可以处理复杂的运动融合算法,减轻主控制器的负担。:可以测量设备的环境温度,并用于陀螺仪和加速度计的温度补偿。原创 2024-02-20 16:18:36 · 1925 阅读 · 0 评论 -
STM32 USART入门指南
USART是一种串行通讯接口,它支持同步和异步通信。在STM32微控制器中,USART是一个非常灵活的功能模块,可以在多种通信标准下工作,如RS232、RS485、LIN和IrDA。想象一下,有两个设备要通过串口线进行通信。我们称它们为设备A(发送方)和设备B(接收方)。设备准备:开始时,设备A和设备B都设置了相同的波特率。这就像是它们同意按相同的节奏跳舞,确保彼此步调一致。开始传输:设备A想要发送一个字符,比如字母“A”。在ASCII码中,“A”对应的二进制是01000001。原创 2024-02-18 21:04:22 · 1534 阅读 · 0 评论 -
STM32固件库简介与使用指南
STM32官方标准固件库是由STMicroelectronics(ST)提供的一套软件开发工具,旨在简化STM32微控制器的软件开发过程。该固件库提供了丰富的功能和模块,涵盖了STM32微控制器的各种外设,包括但不限于GPIO、USART、SPI、I2C、定时器、中断控制器等。CMSIS文件夹core_cm3.h:CMSIS核心文件,提供了与Cortex-M3内核的接口。system_stm32f1xx.h:片上外设接入层系统头文件,用于设置系统及总线时钟相关的函数。原创 2024-02-17 18:09:50 · 2930 阅读 · 0 评论 -
最详细STM32 启动流程
这三种启动模式为STM32芯片提供了灵活性和可靠性,使其适用于各种不同的应用场景。开发人员可以根据实际需求选择合适的启动模式来确保系统的正常运行和维护。STM32的启动流程比较简单,从这个流程可以学习通用的的ARM系统的启动模式。这段启动代码实现了STM32的启动流程,一、STM32三种启动方式。二、常规启动模式分析。原创 2024-02-15 20:53:51 · 5936 阅读 · 0 评论 -
STM32中断优先级原理及应用
抢占优先级用于确定中断的响应优先级,而子优先级用于确定中断的实际执行优先级。当多个中断同时触发时,系统会优先处理抢占优先级较高的中断,而在相同抢占优先级的情况下,会根据子优先级来确定中断的执行顺序。NVIC的中断优先级由优先级寄存器NVIC_IPRx的4位决定,这4位可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均相同的按中断号排队。根据中断的重要性和响应时序,确定中断的抢占优先级和响应优先级。原创 2024-02-06 22:49:10 · 2744 阅读 · 1 评论 -
STM32外部中断原理及应用
对于嵌入式系统开发者而言,STM32系列微控制器是一个强大而灵活的选择,而外部中断作为其中一项重要的功能,为实时响应外部事件提供了关键支持。本文将带领初学者深入理解STM32外部中断的原理和应用,让你能够轻松地在你的项目中使用它。原创 2024-02-04 19:38:45 · 1793 阅读 · 0 评论 -
STM32的GPIO的详细配置指南
IO引脚的速度设置用于控制引脚的输出信号变化速率,其主要目的是优化系统性能和电气特性。具体来说,速度设置可以影响到引脚输出信号的上升时间和下降时间,从而影响到信号的稳定性、功耗和电磁兼容性等方面。高速输出可以使得信号在引脚之间传输更快,从而提高系统的响应速度和通信带宽。特别是在高频率通信或者快速数据传输的应用中,选择较高的速度设置可以确保信号传输的及时性和准确性。原创 2024-01-30 18:03:13 · 3031 阅读 · 0 评论 -
STM32的分类和选型
以上是一些常见的STM32微控制器系列和型号,每个系列又包含多个具体的型号和封装类型。开发者可以根据具体的应用需求和性能要求选择合适的型号和系列。原创 2024-01-29 21:02:35 · 3579 阅读 · 0 评论 -
STM32完全学习手册
开始编写一些简单的STM32程序,如LED闪烁、按键检测等,以熟悉STM32的编程和外设操作。学习常用的通信协议,如UART、SPI、I2C、CAN等,在STM32上实现通信功能。尝试开发一些简单的项目,如智能家居控制、小车控制、传感器数据采集等,以应用所学知识。学习嵌入式系统和微控制器(ARM)的基础知识,包括处理器架构、外设、时钟和中断等。通过实验学习如何操作不同的外设,如GPIO、UART、SPI、I2C等。寻找合适的学习资源,如官方文档、教程、视频教程和网络论坛等。原创 2024-01-27 22:04:50 · 475 阅读 · 0 评论 -
STM32+ESP8266 实现物联网设备节点
本设备利用STM32F103ZE和ESP8266实现了一个基本的物联网节点,所需硬件如下。1、STM32F103ZE开发板。4、USB转串口模块(调试用)3、ST-LINK(下载用)2、ESP8266模组。原创 2024-01-27 21:34:58 · 1106 阅读 · 0 评论