 
        
        
    .png) STMCU小助手
                    
                        发布时间:2021-11-30 21:17
                        STMCU小助手
                    
                        发布时间:2021-11-30 21:17                        
                | GPIO最经典应用:LED灯。 先看电路。声明:参考正点原子战舰开发板。       与LED串联的电阻称为限流电阻。 限流电阻计算公式:R=(U-LED压降)/20ma。 U为LED工作电压,LED一般最大电流为20ma。 在此R=(3.3-0.7)/0.02=130Ω。 因此本次示例中限流电阻阻值大于130Ω,才不会烧坏LED。 再看代码。 GPIO初始化。 
 LED应用 
 思考:为什么IO输出低电平时LED亮,而不是输出高电平? 思路: 1、由于单片机的I/O口的结构决定了它灌电流能力较强,而拉电流能力比较弱(即IO口的低平驱动能力较强而高电平驱动能力较差); 2、为了简化单片机接口的设计。高电平驱动和低电平驱动是同样的效果,另外,低电平驱动也简化了控制代码,避免了单片机上电复位时端口置高电平后对led的影响; 从STM32中文参考手册内得知,STM32的GPIO可配置为八种模式。 1、浮空输入(Input floating) 2、上拉输入(Input pull-up) 3、下拉输入(Input pull-down) 4、模拟输入(Analog) 5、开漏输出(Output open-drain) 6、推挽式输出(Output push-pull) 7、推挽式复用功能(Alternate function push-pull) 8、开漏复用功能(Alternate function open-drain) 
 驱动LED使用的是推挽输出。推挽电路(push-pull)就是两个不同极性晶体管间连接的输出电路。   简单理解推挽和开漏的区别:驱动能力不同。推挽驱动能力强。 复用意思是GPIO不作为普通IO,而是特殊功能使用,比如ADC、USART等。 引脚输出速度有3种: 
 GPIO的速度应该与应用匹配。速度配置越高,噪声越大,功耗越大。 比如配置为串口应用,波特率为115200,此时GPIO的速度配置为2MHz就够了,既省电也噪声小。 I2C接口,400K波特率,若想把余量留大些,可以配置为10MHz。 SPI接口,18M或9M需要选用50MHz的GPIO速度。 | 
 微信公众号
                微信公众号
             手机版
                手机版
            