TTL电平
在默认情况下。接口是TTL电平的。其高低电平的阈值如下
举个例子。当电源电压为3.3V的时候。IO口电压为1V是。MCU就认为是低电平。当为1.08V是,IO口就认为是高电平。连个阈值的宽度只有0.08V。非常小。
、
斯密特电平
有些项目需要把阈值拉宽,防止误触发和抖动。可以使用斯密特电平来实现。
举例。斯密特触发下。如在3.3V供电的情况。低于0.99V为低电平。高于2.31V为高电平。这里有个很重要的。规格书只是给出了最大值和最小值,没有给典型值。
我实测是高于2.8V为高电平。 低于2.1V为低电平
至于要使用TTL还是斯密特电平。需要根据电路的电器特性。信号波形来判断。
=============================================================
如何使用
以PB4 这个IO口为例
1.TTL输入模式
SYS->GPB_MFP = (SYS->GPB_MFP & ~SYS_GPB_MFP_PB4MFP_Msk) | SYS_GPB_MFP_PB4_GPIO;
GPIO_SetMode(PB, BIT4, GPIO_PMD_INPUT);
2.斯密特触发模式
SYS->GPB_MFP = (SYS->GPB_MFP & ~SYS_GPB_MFP_PB4MFP_Msk) | SYS_GPB_MFP_PB4_GPIO;
GPIO_SetMode(PB, BIT4, GPIO_PMD_INPUT);
PB->SMTEN |= 0x0010;
使能斯密特触发器的寄存器是如下寄存器。每一列IO口都有对应的一个。如下所示。
规格书有note。对于port B。n最大只能到4.是因为IO口最大是PB4.其他的也是一个意思。具体看IO口的描述就清楚。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zhu378287521/article/details/116117676
|