目录
(3)复用功能模式(Alternate function mode)
(5)推挽输出模式(Push-pull output mode)
(6)开漏输出模式(Open-drain output mode)
(7) 外部中断模式(External interrupt mode)
(8) 模拟中断模式(Analog interrupt mode)
总体来说,STM32单片机比51单片机更先进、更强大。但由于其复杂性较高,开发难度也相应较大。
一.STM32F103系列芯片的地址映射和寄存器映射原理
1.什么是寄存器
寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。 按照功能的不同,可将寄存器分为基本寄存器和移位寄存器两大类。基本寄存器只能并行送入数据,也只能并行输出。移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,或串行输入、并行输出,十分灵活,用途也很广。
2.地址映射原理和寄存器映射原理
存储器本身并不含地址,给存储器分配地址的过程叫存储器映射。
给寄存器地址起名字的过程叫寄存器映射。
在存储器的区域单元中,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通过 C 语言指针的操作方式来访问这些单元,如果每次都是通过这种地址的方式来访问,不仅不好记忆还容易出错,这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。
(此段摘抄自:https://blog.youkuaiyun.com/qq_46467126/article/details/120737655)
二.GPIO端口的初始化设置步骤
1.单片机的时钟
(1)时钟的定义:
stm32的时钟是由内部或外部振荡器产生的“频率”,而被人们形象的称为“系统时钟”。最大为
72MHz换成周期T为:1/72MHz≈13.9ns。
(2)为什么要用时钟
因为耗电量,stm32功能强大,能做很多事,但与之同时带来的消耗也越严重,当stm32不引
入时钟的话,就像51一样外设全开,相应耗电就很严重了,所以厂家(st公司)为了解决这个问
题,引入了“时钟概念”,即使用哪个外设就给哪个外设时钟(频率),不使用的就关掉(不震
荡)。此做法大大降低了功耗,续航持久。
2.GPIO简介
GPIO(英语:General-purpose input/output),通用型之输入输出的简称,功能类似8051的P0—P3,其接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO),如当clk generator, chip select等。
既然一个引脚可以用于输入、输出或其他特殊功能,那么一定有寄存器用来选择这些功能。对于输入,一定可以通过读取某个寄存器来确定引脚电位的高低;对于输出,一定可以通过写入某个寄存器来让这个引脚输出高电位或者低电位;对于其他特殊功能,则有另外的寄存器来控制它们。
3.GPIO模式
GPIO(General Purpose Input/Output)端口是STM32的核心功能之一,可以实现控制外设、输入输出数据等多种功能。GPIO端口具有八种不同的工作模式,输入模式,输出模式,复用功能模式,模拟模式,推挽输出模式,开漏输出模式,外部中断模式,模拟中断模式
(1)输入模式(Input mode)
输入模式是GPIO端口最基本的工作模式,用于接收外部信号并读取其电平状态。在输入模式下,GPIO端口通常具有三种状态:高电平、低电平和浮空状态。当外部信号为高电平时,GPIO端口会输出高电平;当外部信号为低电平时,GPIO端口会输出低电平;当外部信号未接入时,GPIO端口处于浮空状态。
输入模式广泛应用于各种传感器、开关等场合,例如读取温度传感器、检测按键状态等。
(2)输出模式(Output mode)
输出模式是GPIO端口另一个基本的工作模式,用于控制外部设备的状态。在输出模式下,GPIO端口可以输出高电平或低电平信号,从而控制外部设备的开关状态。
输出模式广泛应用于各种控制场合,例如控制LED灯、继电器等。
(3)复用功能模式(Alternate function mode)
STM32微控制器内部集成了多种外设模块,例如串口、SPI、I2C等。在复用功能模式下,GPIO端口可以通过设置复用功能模式,将其与这些外设模块进行连接,从而实现与外设模块的通信功能。
复用功能模式广泛应用于各种通信场合,例如串口通信、SPI通信等。
(4)模拟模式(Analog mode)
模拟模式是GPIO端口的一种特殊工作模式,用于输入或输出模拟信号。在模拟模式下,GPIO端口可以通过DAC(数字模拟转换器)输出模拟信号,或通过ADC(模拟数字转换器)输入模拟信号。
模拟模式广泛应用于各种模拟信号处理场合,例如音频信号处理、传感器信号采集等。
(5)推挽输出模式(Push-pull output mode)
推挽输出模式是GPIO端口的一种特殊输出模式,用于控制需要较大输出电流的设备。在推挽输出模式下,GPIO端口可以输出高电平或低电平信号,并通过内部电路将输出电流放大,从而控制外部设备的状态。
推挽输出模式广泛应用于各种高电流控制场合,例如驱动电机、继电器等。
(6)开漏输出模式(Open-drain output mode)
开漏输出模式是GPIO端口的另一种特殊输出模式,也用于控制需要较大输出电流的设备。在开漏输出模式下,GPIO端口可以输出低电平信号,并通过内部电路将输出电流放大,从而控制外部设备的状态。但是,当输出高电平信号时,GPIO端口不会输出电流,而是处于高阻态。
开漏输出模式广泛应用于各种高电流控制场合,例如驱动LED灯、I2C通信等。
(7) 外部中断模式(External interrupt mode)
外部中断模式是GPIO端口的一种特殊输入模式,用于检测外部信号的边沿变化并触发中断。在外部中断模式下,GPIO端口可以配置为上升沿触发、下降沿触发或双边沿触发模式,并在信号变化时触发中断,从而进行相关处理。
外部中断模式广泛应用于各种事件触发场合,例如检测按键状态、检测传感器信号等。
(8) 模拟中断模式(Analog interrupt mode)
模拟中断模式是GPIO端口的一种特殊输入模式,用于检测模拟信号的变化并触发中断。在模拟中断模式下,GPIO端口可以通过设置阈值,当模拟信号超过阈值时触发中断,并进行相关处理。
模拟中断模式广泛应用于各种模拟信号处理场合,例如音频信号处理、传感器信号采集等。
三.思考
为什么51单片机的LED点灯编程要比STM32的简单?
-
STM32单片机采用了Cortex-M系列的处理器架构,而51单片机则采用了传统的8位处理器架构。Cortex-M系列的处理器具有更高的性能和更低的功耗。
-
性能
由于采用不同的处理器架构,STM32单片机具有更高的运行速度和更好的性能,可以运行更复杂的任务。而51单片机的性能较低,只适合一些简单的任务。 -
存储
STM32单片机采用闪存来存储程序,而51单片机则使用EPROM或OTPROM。闪存具有更大的存储容量和更高的读写速度。 -
接口
STM32单片机具有更多的外设接口,包括USB、CAN和以太网等。而51单片机的接口较少,只能支持一些基本的外设。 -
开发环境
STM32单片机的开发环境比51单片机更加成熟和完善,具有更多的工具和库。同时,STM32单片机的资料和文档也更加丰富。 -
总体来说,STM32单片机比51单片机更先进、更强大。但由于其复杂性较高,开发难度也相应较大。