STM32

STM32是STMicroelectronics(意法半导体)推出的一系列基于ARM Cortex-M内核的32位微控制器(MCU)产品。这些微控制器提供了广泛的产品系列,覆盖了多种不同的性能和功能需求,适用于各种应用领域,包括工业控制、汽车电子、消费类电子、医疗设备等。

STM32系列微控制器以其高性能、低功耗、丰富的外设接口和灵活的开发工具而闻名。它们通常具有丰富的存储器、多种通信接口(如UART、SPI、I2C、CAN等)、模拟数字转换器(ADC)、定时器、PWM输出等功能,以满足不同应用场景下的需求。

STM32微控制器通常使用标准的ARM Cortex-M内核,包括Cortex-M0、M0+、M3、M4和M7等,这些内核具有不同的性能和功耗特性,可根据具体应用的需求进行选择。此外,STM32系列还提供了多种封装和引脚配置,以满足不同尺寸和集成度的要求。

STMicroelectronics为STM32系列提供了丰富的开发工具和支持资源,包括基于ARM开发环境的集成开发环境(IDE)、调试器、评估板和参考设计等。这些工具和资源有助于开发人员快速开发和部署他们的应用,并提供了全面的技术支持和文档资料,帮助用户充分发挥STM32微控制器的性能和功能优势。

77条STM32知识,千万不能错过!(二)

39、DAC有两个寄存器,一个是DHR(Data HoldingRegister)数据保持寄存器,一个DOR(Data Output Register)数据输出寄存器。

真正起作用的是DOR寄存器,该寄存器把值给数模转换发生单元输出以VREF+为参考电压的电压值。

如果是硬件触发转换,系统将在1个ABP时钟周期后把值给DOR,如果是软件触发转换,时间为3个APB时钟周期。然后,均等待Tsetting时间(Typical为3us,Max为4us)后真正输出电压值。

40、DAC分8位模式和12位模式,其中后者可以选择左右对齐。

41、DMA仲裁器分为软件和硬件两种。软件部分分为4个等级,分别是很高优先级、高优先级、中等、低。硬件部分由通道的大小来决定优先级,越低优先级越高。

42、DMA有一个实时的传输数据量寄存器叫做DMA_CNDTR,最大值为65535,存放的是当前传输所要传输的数据量。当数据量变为0时,表明传输完成。

43、CAN总线(ControllerArea Network)。CAN控制器根据两根线上的电位差来判断总线电平,总线电平又分为显性电平和隐性电平,二者必居其一。

44、CAN总线具有6个特点:

1、多主控制

2、系统若软性

77条STM32知识,千万不能错过!(一)

1、 SYSCLK时钟源有三个来源:HSI RC、HSE OSC、PLL

“”

2、 MCO[2:0]可以提供4源不同的时钟同步信号。

3、 GPIO口有两个反向串联的二极管用作钳位二极管。

“”

4、 ICode总线,DCode总线、系统总线、DMA总线、总线矩阵、AHB/APB桥

5、在使用一个外设之前,必须设置寄存器RCC_AHBENR来打开该外设的时钟

6、 STM32复位有三种:系统复位、上电复位、备份区域复位。其中系统复位除了RCC_CSR中的复位标志和BKP中的数值不复位之外,其他的所有寄存器全部复位。触发方式例如外部复位、看门狗复位、软件复位等。

STM32单片机按键电路设计

你不知道的STM32知识汇总

STM32是一种功能比较强大的32位单片机,广泛应用于各种嵌入式设备中,由于它的普及性及丰富的资源,受到广大嵌入式开发者的喜欢,但要想学好用好STM32也并非易事,毕竟,相比8位、16位产品,STM32要复杂得多。

STM32的时钟

基于STM32的串口循环队列

先说串口,这个应该都知道吧!(不知道的童鞋,先把基本功学好)大部分单片机或者处理器都会带一个或者多个串口,方便进行数据的通信。

那么串口的循环队列是什么?这里以STM32的串口为例,进行解释说明。

假设串口一次只发一个数据,这倒是简单了,每次只对这一个数据进行判断,然后处理相关指令。但现实不会一直都这么美好,很多时候你收到的可能是一大串数据,你要先小心翼翼的把它们存好,然后再依次判断这里面有哪些指令要处理。

“”

假设你定义了一个30个元素的数组a[30],每次串口收到数据都往里面存,存的时候地址加一。这个操作很简单吧,应该是都会的。

但是取的时候怎么取?你收到的指令可能是2个数据,也可能是3个数据,几种长度不一样的指令混在一起。

一次从数组里读出几个数据?怎么快速腾出已读数据的位置?还是一次都读完,然后整个数组清零?

先说一次读完,然后清零的这个方法为什么不行。

【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)

STM32的GPIO介绍

STM32引脚说明

GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。

STM32F103ZET6芯片为144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。

STM32的大部分引脚除了当GPIO使用之外,还可以复用位外设功能引脚(比如串口),这部分在【STM32】STM32端口复用和重映射(AFIO辅助功能时钟) 中有详细的介绍。

GPIO基本结构

每个GPIO内部都有这样的一个电路结构,这个结构在本文下面会具体介绍。

这边的电路图稍微提一下:

如何使用STM32测量频率和占空比?掌握这三个思路就够了!

(1)测量脉冲信号频率fo,频率范围为10Hz~2MHz,测量误差的绝对值不大于0.1%。

(2)测量脉冲信号占空比D,测量范围为10%~90%,测量误差的绝对值不大于2%。

使用官方STM32F429 Discovery开发板,主频180MHz,定时器频率90MHz。

思路一、外部中断

【精心总结】50条STM32单片机学习笔记

1、AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速设备

2、Stm32f10x.h相当于reg52.h(里面有基本的位操作定义),另一个为stm32f10x_conf.h专门控制外围器件的配置,也就是开关头文件的作用

STM32 ADC应用中信号源特性对转换结果的影响

STM32家族中的所有芯片都内置了逐次逼近寄存器型ADC模块.内部大致框架如下:

一文区分FPGA和STM32,硬件工程师一定用得上!

什么是FPGA?

一、FPGA原理

FPGA中的基本逻辑单元是CLB模块,一个CLB模块一般包含若干个基本的查找表、寄存器和多路选择器资源,因此FPGA中的逻辑表达式基于LUT的。