本文不特殊说明都以stc32F103C8为例,软件平台为KEIL5V5.15
首先这次我们用寄存器直接点亮LED灯
LED电路图如下图:
可以看出如果需要点亮一盏LED灯只需要IO口输出高电平即可,本次以GPIOB为例子。
点亮LED灯
控制IO输出高电平通常需要三步:
1.开启时钟:因为STM32为了节约消耗,故上电时候外设时钟默认不开启。故我们需要开始GPIO的时钟。
2.设置GPIO输出模式:stm32F103提供了4种输出模式和3种输出速度:
- 通用输出推挽
- 通用输出开漏
- 复用输出推挽:串口输出
- 复用输出开漏:IIC
推挽输出电路如下图:
两个三极管都是半个周期导通,轮流导通。从而减低了功耗,提高了每个管的承受能力。又由于不论走哪一路,管子导通电阻都很小,使RC常数很小,转变速度很快。因此,推拉式输出级既提高电路的负载能力,又提高开关速度。所以推挽输出可以输出高低电平,但输出幅度取决于输入,不可控。
开漏输出电路如下图:
从图中