设为首页 收藏本站 English

当前位置: 折弯机械网 >> 模切机

单片机stm32的学习方法GPIO的八种工作模式与单片机avr的区别讲解丹阳

发布时间:2022-08-23 18:42:22

原标题:单片机stm32的学习方法、GPIO的八种工作模式、与单片机avr的区别讲解

单片机的发展相当的迅速,现在各个厂商们也在速度、内存、功能上此起彼伏,竞争激烈,同时涌现出一大批拥有代表性单片机的厂商:Atmel、TI、ST、MicroChip、ARM,国内的宏晶STC单片机也是可圈可点,单片机STM32很受欢迎,也有很多人想要去学,但是身为初学者你对于单片机STM32是否有相关的了解呢?接下来小编就为大家讲解一下它的相关知识,包括:单片机stm32的学习方法、GPIO八种工作模式、与avr单片机的区别。

单片机STM32的学习方法

一、学习的方式

开发板+配套的视频+开发板配套的教程+开发板配套源码+官方芯片手册,通过组合搭配的方式来学习单片机,只要初学者能够坚持下来,一定可以学会的。

二、如何选择一款开发板呢?

1、开发板硬件性能要稳定、布局要合理、美观(毕竟要陪你好久呢)、其他用户的反馈情况等等;

2、配套的视频;

3、配套的开发板教程(最好是库函数和寄存器版本的);

4、最好有论坛,可以跟志同道合的网友多交流;

5、如果喜欢看书的话,最好还带有书籍。

三、合理的利用网络资料,主要推荐几个网站

1、www.stmcu.org ST中国官方技术网站,ST官方文档发布网站;

2、www.openedv.com 开源电子网和http://firebbs.cn野火论坛,这两个网站目前开发板做的比较好些的;

3、http://jingyan.baidu.com百度网站,有什么问题可以搜索。

四、拿到开发板后,怎么开启学习之旅?

1、先看光盘目录,了解提供的资料情况;

2、 找到核心学习资料,大致了解开发板硬件资源;

3、查看资料,安装开发环境;

4、开启学习之旅,先学基础的,基础要多学多问;

5、 学习过程中不懂的,先找资料,然后提问;

6、高级的知识,可以慢慢来学。

五、学习开发板要参考哪些资料?

1、最底层(了解):CM3权威指南/CM4权威指南(ARM提供);

2、芯片参考手册(芯片功能寄存器描述特性等,详细)(了解):STM32F10x中文参考手册 /STM32F4xx中文参考手册(ST提供);

3、芯片数据手册(datasheet.ds)(了解):STM32F103xCDE_DS_CH_V5、pdf(芯片电气参数,引脚说明等);

4、官方其他资源和教程(了解):固件库包(含参考源码),官方培训PPT、ST官方资料下载地址:www.stmcu.org;

5、特定开发板学习教程(手册,视频,源码)(理解):针对开发板的源码、教程、视频等。

单片机STM32的GPIO八种工作模式详解

一、GPIO浮空输入_IN_FLOATING模式工作原理:

1、以上截图就是浮空输入模式的原理图,图中阴影的部分在浮空输入模式下是处于不工作状态的,尤其是下半部分的输出电路,实际上这时的输出电路与输入的端口处于隔离状态;

2、黄色的高亮部分显示了数据传输通道,外部的电平信号通过左边编号1的I/O 端口进入STM32内部经过编号2的施密特触发器整形以后送入编号为3的“输入数据寄存器”在“输入数据寄存器”的另一端(编号4),CPU通过内部的数据总线可以随时读出I/O 端口的电平变化的状态。

二、GPIO带上拉输入_IPU 模式工作原理:

1、上图是STM32的GPIO带上拉输入模式的原理图;

2、与前面介绍的浮空输入模式相比,仅仅是在数据通道上面,接入了一个上拉电阻,根据STM32的数据手册,这个上拉电阻阻值介于30K~50K 欧姆,同样,CPU可以随时在“输入数据寄存器”的另一端,通过内部的数据总线读出I/O 端口的电平变化的状态。

三、GPIO带下拉输入_IPD 模式工作原理:

对于输入下拉模式的输入,是在数据通道的下部,接入了一个下拉电阻;根据STM32的数据手册,这个下拉电阻阻值也是介于30K~50K 欧姆;对于要加上拉或下拉电阻:

1、当作单片机作为输入时,假设我们直接在IO端口接一个按键到地(或电源),因为按键按,于不按管脚都是悬空的,单片机就很难检测按键是否按下;所以人为的接一个上拉(或下拉),以确定未按下的时候IO输入电平的状态;

2、可以提高芯片的抗干扰能;

3、当单片机的IO口作输出时,如果不接上拉电阻只能提供灌电流,无法输出电流驱动外接设备,这时也需要考虑上拉电阻。这样才可以使IO输出高电平。

四、GPIO模拟输入_AIN 模式工作原理:

1、如果把STM32配置为模拟输入模式时,工作原理就比较简单了,信号从左边编号为1 的端口进从右边编号为2的一端直接进入STM32单片机的AD模块;

2、细心的朋友可以看到数据通道中上拉、下拉电阻和施密特触发器,这时均处于关断的状态,“输入数据寄存器”就不能反映IO端口上的电平变化的状态了,换句话说,也就是在模拟输入状态下,CPU不能通过“输入数据寄存器”读到IO端口变化的数据了。

五、GPIO开漏输出_OUT_OD 模式工作原理

上图是GPIO开漏输出模式的工作原理图

1、当CPU 在编号1 端通过“位设置/ 清除寄存器”或“输出数据寄存器”写入数据后,该数据位将通过编号2的输出控制电路传送到编号4 的I/O端口;

2、如果CPU 写入的是逻辑“1 ”,则编号3 的N-MOS管将处于关闭状态,此时I/O 端口的电平将由外部的上拉电阻决定;

3、如果CPU 写入的是逻辑“0 ”,则编号3的N-MOS管将处于开启状态,此时I/O端口的电平被编号3 的N-MOS管拉到了“地”的零电位;

4、在图中的上半部,施密特触发器处于开启状态,这意味着CPU 可以在“输入数据寄存器”的另一端,随时可以监控I/O端口的状态;

5、通过这个特性,还可以实现了虚拟的I/O端口双向通信:假如CPU 输出逻辑“1 ”;

6、由于编号3 的N-MOS管处于关闭状态,I/O 端口的电平将完全由外部电路决定,因此,CPU 可以在“输入数据寄存器”读到外部电路的信号,而不是它自己输出的逻辑“1 ”;

7、GPIO口的输出模式下,有3 种输出速度可选(2MHz 、10MHz和50MHz) ,这个速度是指GPIO口驱动电路的响应速度,而不是输出信号的速度。

六、GPIO推挽输出_OUT_PP模式工作原理

1、GPIO的推挽输出模式是在开漏输出模式的基础上,在“输出控制电路”之后,增加了一个P-MOS管;

2、当CPU输出逻辑“1 ”时,编号3 处的P-MOS管导通,而下方的N-MOS管截止,达到输出高电平的目的;

3、当CPU输出逻辑“0 ”时,编号3 处的P-MOS管截止,而下方的N-MOS管导通,达到输出低电平的目的;

4、在这个模式下,CPU 仍然可以从“输入数据寄存器”读到该IO端口电压变化的信号。

七、GPIO开漏复用输出_AF_OD模式工作原理

1、GPIO的开漏复用输出模式与开漏输出模式的工作原理基本相同;

2、不同的是编号为2 的输入的源不同,它是和复用功能的输出端相连,此时的“输出数据寄存器”被输出通道给断开了;

3、从上面的这个图,我们还可以看到CPU同样可以从“输入数据寄存器”读取到外部IO端口变化的电平信号。

八、GPIO推挽复用输出_AF_PP模式工作原理

1、编号2“输出控制电路” 输入是与复用功能的输出端相连,此时“输出数据寄存器”被从输出通道断开了,片上外设的输出信号直接与“输出控制电路”的输入端想连接;

2、我们将GPIO配置成复用输出功能后,假如相应的外设模块没有被激活,那么此时IO端口的输出将不确定。

单片机STM32与单片机avr的区别

一、单片机STM32

由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、低成 本、低功耗的嵌入式应用专门设计的ARMCortex-M内核,同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其简单的结构和易用的工具再配合其强大的功能在行业中赫赫有名。

特性:

1、内核:ARM32位Cortex-M3CPU,最高工作频率72MHz,125DMIPS/MHz,单周期乘法和硬件除法;

2、存储器:片上集成32-512KB的Flash存储器,6-64KB的SRAM存储器;

3、时钟、复位和电源管理:2、0-3、6V的电源供电和I/O接口的驱动电压。POR、PDR和可编程的电压探测器(PVD),4-16MHz的晶振。内嵌出厂前调校的8MHz RC振荡电路,内部40 kHz的RC振荡电路,用于CPU时钟的PLL,带校准用于RTC的32kHz的晶振;

4、调试模式:串行调试(SWD)和JTAG接口,最多高达112个的快速I/O端口、最多多达11个定时器、最多多达13个通信接口,使用最多的器件:stm32F103系列、STM32 L1系列、stm32W系列

二、单片机avr

avr单片机是Atmel公司推出的较为新颖的单片机,其显著的特点为高性能、高速度、低功耗。它取消机器周期,以时钟周期为指令周期,实行流水作业,avr单片机指令以字为单位,且大部分指令都为单周期指令,而单周期既可执行本指令功能,同时完成下一条指令的读取,通常时钟频率用4~8MHz,故最短 指令执行时间为250~125ns,avr单片机能成为最近仍是比较火热的单片机。

特点:

1、avr系列没有类似累加器A的结构,它主要是通过R16~R31寄存器来实现A的功能,在avr中,没有像51系列的数据指针DPTR,而是由X(由 R26、R27组成)、Y(由R28、R29组成)、Z(由R30、R31组成)三个16位的寄存器来完成数据指针的功能(相当于有三组DPTR),而且 还能作后增量或先减量等的运行,而在51系列中,所有的逻辑运算都必须在A中进行;而avr却可以在任两个寄存器之间进行,省去了在A中的来回折腾,这些都比51系列出色些;

2、 avr的专用寄存器集中在00~3F地址区间,无需像pic那样得先进行选存储体的过程,使用起来比pic方便,avr的片内RAM的地址区间为 0~00DF(AT90S2313) 和0060~025F(AT90S8515、AT90S8535),它们占用的是数据空间的地址,这些片内RAM仅仅是用来存储数据的,通常不具备通用寄 存器的功能,当程序复杂时,通用寄存器R0~R31就显得不够用;而51系列的通用寄存器多达128个(为avr的4倍),编程时就不会有这种感觉;

3、 avr的I/O脚类似pic,它也有用来控制输入或输出的方向寄存器,在输出状态下,高电平输出的电流在10mA左右,低电平吸入电流20mA。这点虽不如pic,但比51系列还是要优秀的。

以上是小编为大家讲解的单片机stm32的学习方法、GPIO八种工作模式、与avr单片机的区别。学习单片机其实并不难,只要我们用心去写程序,调试后总会得到好结果的,不经一翻彻骨寒,怎得梅花扑鼻香呢?希望小编上述讲解的内容,能够为有需要了解这方面只是的小伙伴们提供帮助哟!

友情链接