首页 > 编程知识 正文

stm32总线(stm32can总线通信)

时间:2023-05-04 03:22:25 阅读:87436 作者:1286

今天,有网友私信问我为什么没有更新文章。 我有点不好意思没能马上更新文章。 因为没有太多时间准备,所以更新有点慢,但我决定每天分享一点知识。 我之前说过STM32的表。 钟表结束后,开始谈论外围设备。 我们从基本的GPIO开始。 打开STM32的手册。 让我们来看看第9章:通用辅助终端功能I/OS (GPiosandafios )。 ) STM32的手册网上有很多,可以自己找,不在的朋友也可以私信。 这主要是关于STM32的通用IO和多路IO的知识,我们无论看到哪个芯片,都必须能够看透官方给出的参考手册,从而理解芯片。 首先,让我们来看看IO端口的模型及其模型的相关知识。

输入:浮动输入-上拉输入-下拉输入-模拟输入

输出)开路漏极输出(推挽输出)开路漏极多路输出)开路漏极多路输出

让我们逐一分析这些问题:

首先是浮动输入。 什么是浮动输入? 也就是说,IO的电平状态是不确定的,完全由外部输入决定。 如果此针脚悬空,则无法确定是否要读取该端口的标高,并且此输入通常用作密钥检测。

上拉输入显然是在部件的内部加上了上拉电阻,由于内部有上拉电阻,可以起到电流限制的作用,在我们的使用中也是常见的情况。

下拉输入-在零件内部,通过电阻将此端子链接到GND上,默认情况下将此端子的级别设置为低电平,起到与上拉有点类似的作用。

模拟输入-此输入端口主要用于检测从IO端口输入的电平的电压。 其实,关于输出已经很清楚了。 正如文字所示,在使用中,我们也可以根据实际情况进行设定。 例如,有IO端口,但有外部忘记连接或电阻,没有外部输入时,希望默认为高电平时,可以设定为上拉输入。 先看看输入,再看看输出。 对输出有点讲究。

开放泄漏输出:

从图中可以看出,当我们的外部IO端口没有电压时,其实这个功能是无效的,完全没有用,所以我们在设置泄漏时,一定要在外部连接上拉电阻,通过控制CTRL侧来控制外部输入

推挽输出:

上图为推挽输出,我们的CTRL信号为高电平时,Q1导通,Q3截止,IO端口输出高电平,CTRL信号为低电平时,Q1导通,IO端口输出低电平。

推挽输出的复用和泄漏的复用实际上是作为第二功能的配置说明,使用方法与该方法一致。

说明IO端口的模式后,对与STM32IO端口相关的寄存器进行说明。 从下图的文档中:

各通用IO端口上有时有2个32位配置寄存器、2个32位数据寄存器、1个32位置/复位寄存器、1个16位位置复位寄存器、1个32位位置寄存器首先,让我们来看看通用IO端口。 通用IO端口复位中及复位后不久,复用功能未开启。 IO端口被设定为浮动输入。 因此,必须设计成在接通电源时这些IO的状态不会影响设计。 我以前在设计的时候遇到过这种情况。 手册中有几本特定的总线手册介绍了GPIO的模式构成。 这些构成见第九章的9.1.11节。 今后进行配置时,请务必确认是否按照这些配置进行了配置。 请千万不要弄错。

正式进入GPIO寄存器的相关知识。 首先,让我们来看两个寄存器: GPIOx_CRL和GPIOx_CRH。 这两个寄存器是IO端口配置寄存器,主要由IO输入或输出,以及IO端口的速度构成。

我们先来看看重置的值。 将0x4444 4444分解为二进制数。 他的值是0100010001000100010001000100。 将这些数字一一对应地带入该寄存器的对应位。 如果以MODE0和CNF0为对象,则可以看到CNF0[ 133600 ]=01,01,

ODE0[1:0] = 00,通过这两个数值然后根据下面的图示查询可以得出,默认的状态是InputMode,01:Floating Input状态,与我们之前手册上的一致,这就是我们分析GPIOx_CRL与GPIOx_CRH寄存器的方法。

由于我们的引脚有16个引脚,而每个寄存器只能配置8个引脚,所以我们需要两个寄存器来配置这些引脚。GPIOx_CRL配置的低8个引脚,而GPIOx_CRH配置的高8个的引脚。

分析完模式,我们再来分析端口输入寄存器GPIOx_IDR。

我们从图中可以看出,该寄存器的高16位作为预留位置未使用,而使用了低16位。该寄存器的IDR0~IDR15对应的就是引脚0~15的输入值,而高16位都是0,这些位只能是只读的模式并且只能以字的形式读出。

看完端口输入寄存器我们再来看看端口输出寄存器GPIO_ODR:

与GPIO_IDR相识,端口输出寄存器的高16位也是保留的,而只用了低16位,每一位都可以读也可以写。ODR0控制这GPIOx_Pin0,ODR15控制这GPIOx_Pin15,这些位也只能以字(16位)的形式进行操作。今天有点晚了,该休息了,明天接着写,谢谢大家,大家晚安!!!!!

也希望大家劳逸结合,身体健康,喜欢我的朋友给我加个关注,有需要什么资料的也可以找我,我尽我所能给大家帮助,谢谢大家了!!!!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。