第一步 学习GPIO,以按键控制跑马灯为例
GPIO 是相对于 stm32 来说的,也就是芯片上的 IO 引脚,如 C51 上的 P0 口。但是 stm32 上的 io 口拥有更强大的功能,有 GPIOA~G。每个GPIOx 共 15 个引脚,刚开始学习时对于每个 IO 口的 N 多个功能没必要深究,但要记住几个重要的功能:输入上拉,输入下拉,推挽输出。这是本次试验用到的。输入上拉:当IO口作为输入时,比如按键输入,而按键是与地连接,按下时为低电平,则没按下时该IO口应为高电平,上拉即是该IO口通过一个电阻与电源相连,则没按下时为高电平,按下即为低电平。
输入下拉:同理此时按键与电源相连,按下即为高电平,下拉就是该IO口通过一个电阻与地相连,没按下为低电平,按下为高电平。(这是我个人的简单理解哦,有大神有更深的理解的话可以在下面留言哦!共同进步嘛!)
推挽输出:作为普通的IO口输出高低电平。
工程配置好后,可以写代码点亮LED灯了:
首先讲下几个控制IO口的寄存器:
Stm32每个IO口都由7个寄存器来配置, CRL 和 CRH、IDR 和 ODR